硬汉嵌入式论坛

 找回密码
 立即注册
查看: 9694|回复: 16
收起左侧

[MDK] 使用DAPLINK给国产MCU下载STM32工程例子提示Not a genuine ST Device! Abort connection,切换到国产FLM算法文件可解决

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
发表于 2021-4-7 08:32:04 | 显示全部楼层 |阅读模式
现在国产的M内核单片机都有自己的MDK软件包和算法文件,将ST版工程切换到国产FLM算法文件即可,否则继续使用STM32工程给国产MCU下会有这个提示。

比如使用ST的FLM算法文件给GD32下载:

下载 (3).png

就会提示:

下载 (4).png

解决办法比较简单,换成GD32自家的FLM算法文件即可:

下载 (5).png







回复

使用道具 举报

5

主题

81

回帖

96

积分

初级会员

积分
96
发表于 2022-6-20 16:42:29 | 显示全部楼层
硬汉哥,你好,关注您很久了。
您说的这个问题,在Keil的低版本中,可以通过将STM32的pack包内的pdsc文件中CheckID功能屏蔽掉来解决,避开检查。
举个栗子:
C:\Keil_v5.25\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Keil.STM32F1xx_DFP.pdsc
(1)先把这个文件的只读属性去掉
(2)找到CheckID函数
[C] 纯文本查看 复制代码
  <sequence name="CheckID">
          <block>
            __var pidr1 = 0;
            __var pidr2 = 0;
            __var jep106id = 0;
            __var ROMTableBase = 0;

            __ap = 0;      // AHB-AP

            ROMTableBase = ReadAP(0xF8) &amp; ~0x3;

            pidr1 = Read32(ROMTableBase + 0x0FE4);
            pidr2 = Read32(ROMTableBase + 0x0FE8);
            jep106id = ((pidr2 &amp; 0x7) &lt;&lt; 4 ) | ((pidr1 &gt;&gt; 4) &amp; 0xF);
          </block>

         // <control if="jep106id != 0x20">  注释掉
        //    <block>
           //   Query(0, "Not a genuine ST Device! Abort connection", 1);
         //     Message(2, "Not a genuine ST Device! Abort connection.");
       //     </block>
      //    </control>
        </sequence>

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
 楼主| 发表于 2022-6-21 01:49:20 | 显示全部楼层
流型 发表于 2022-6-20 16:42
硬汉哥,你好,关注您很久了。
您说的这个问题,在Keil的低版本中,可以通过将STM32的pack包内的pdsc ...

好办法。
回复

使用道具 举报

5

主题

81

回帖

96

积分

初级会员

积分
96
发表于 2022-7-9 12:56:09 | 显示全部楼层
image.png
这个报错有大神知道如何规避吗?  使用DAPLink + 国产芯片,KEIL 5.34(或更高版本)会有这个问题,低版本不存在,感觉是KEIL自身增加了一些MCU身份检查。

PS:Not a genuine ST Device! Abort connection的问题已经规避了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
 楼主| 发表于 2022-7-9 15:53:37 | 显示全部楼层
流型 发表于 2022-7-9 12:56
这个报错有大神知道如何规避吗?  使用DAPLink + 国产芯片,KEIL 5.34(或更高版本)会有这个问题,低版 ...

这个估计是封装在CMSIS-DAP的DLL文件里面。
回复

使用道具 举报

5

主题

81

回帖

96

积分

初级会员

积分
96
发表于 2022-7-9 16:32:30 | 显示全部楼层
eric2013 发表于 2022-7-9 15:53
这个估计是封装在CMSIS-DAP的DLL文件里面。

这种DLL文件有方法可以深入进去分析一下吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
 楼主| 发表于 2022-7-10 00:44:33 | 显示全部楼层
流型 发表于 2022-7-9 16:32
这种DLL文件有方法可以深入进去分析一下吗?

这个不太好扣,属于逆向工程了。
回复

使用道具 举报

5

主题

81

回帖

96

积分

初级会员

积分
96
发表于 2022-7-11 16:18:38 | 显示全部楼层
eric2013 发表于 2022-7-9 15:53
这个估计是封装在CMSIS-DAP的DLL文件里面。

硬汉哥,请问您说的这个CMSIS-DAP的DLL文件在哪个目录下?
回复

使用道具 举报

1

主题

73

回帖

76

积分

初级会员

积分
76
发表于 2022-7-11 22:39:47 | 显示全部楼层
流型 发表于 2022-7-9 12:56
这个报错有大神知道如何规避吗?  使用DAPLink + 国产芯片,KEIL 5.34(或更高版本)会有这个问题,低版 ...

这不是DLL的问题,就是Pack里面的判断,屏蔽代码识别即可,DLL不管这个
回复

使用道具 举报

5

主题

81

回帖

96

积分

初级会员

积分
96
发表于 2022-7-12 09:28:06 | 显示全部楼层
neomissing 发表于 2022-7-11 22:39
这不是DLL的问题,就是Pack里面的判断,屏蔽代码识别即可,DLL不管这个

你好,之前CheckID的那部分已经屏蔽了,可以解决Not a genius ST Device!的问题。但是还有这个Connection refused due to device mismatch!问题,目前还没找到应该屏蔽哪里的代码,求大神指点。
开发环境是Keil5.34


1.png
回复

使用道具 举报

5

主题

81

回帖

96

积分

初级会员

积分
96
发表于 2022-7-14 19:26:24 | 显示全部楼层
会不会和ST PACK包里的SVD文件有关。。D:\Keil_v5.34\ARM\PACK\Keil\STM32F4xx_DFP\2.16.0\CMSIS\SVD,也只能瞎猜,STM32F40x.svd   STM32F40x.sfd  STM32F40x.SFR
1.png
回复

使用道具 举报

5

主题

81

回帖

96

积分

初级会员

积分
96
发表于 2022-7-14 19:29:25 | 显示全部楼层
下周再试试装一些老版本的PACK包,会不会就没有这个问题了
回复

使用道具 举报

5

主题

81

回帖

96

积分

初级会员

积分
96
发表于 2022-7-14 19:35:01 | 显示全部楼层
现象和这篇帖子是一样的
https://www.bilibili.com/read/cv12416000/
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
 楼主| 发表于 2022-7-14 19:44:55 | 显示全部楼层
流型 发表于 2022-7-14 19:29
下周再试试装一些老版本的PACK包,会不会就没有这个问题了

真心觉得没必要这样,哪家的芯片,让他们做个FLM文件和svd外设文件。

回复

使用道具 举报

5

主题

81

回帖

96

积分

初级会员

积分
96
发表于 2022-10-25 08:58:45 | 显示全部楼层
eric2013 发表于 2022-7-14 19:44
真心觉得没必要这样,哪家的芯片,让他们做个FLM文件和svd外设文件。

硬汉哥,看到您这篇帖子H7-TOOL已经可以读取IDCODE了,想请教一下,是在daplink代码里什么地方读取的,位置在哪,之前尝试过从源代码里修改IDCODE一直没成功,求指点
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
 楼主| 发表于 2022-10-25 10:30:55 | 显示全部楼层
流型 发表于 2022-10-25 08:58
硬汉哥,看到您这篇帖子H7-TOOL已经可以读取IDCODE了,想请教一下,是在daplink代码里什么地方读取的,位 ...

MDK里面的那个吗,那个是MDK自己发命令读取的。
回复

使用道具 举报

5

主题

81

回帖

96

积分

初级会员

积分
96
发表于 2022-10-25 13:21:20 | 显示全部楼层
是MDK发的命令,H7-TOOL解析了这条命令并且将目标板的IDCODE回复给MDK了,还显示在了液晶屏幕上,H7-TOOL的程序里,想问的是解析命令和回复的地方在哪里
image.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-20 16:15 , Processed in 0.241628 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表