STM32CubeIDE配置OpenOCD跳过STLink版本检查 跳过芯片型号检查(免破解,免修改ide任何文件)

时间:2024-02-25 10:39:19

测试思路

最近打算换国产的一些兼容芯片来顶替STM32,比如航顺的HK32F103C8T6
但是我的开发工具是STM32CubeIDE+STLinkv2,在STM32调试的时候会检查芯片是不是STM32,如果不是,就会直接拒绝烧录和调试.会提示Reason: ST-LINK: Could not verify ST device! Abort connection.
想了各种方法尝试绕过,突然想到,我以前进行过另一个研究,关于STM32CubeIDE如何使用其他非stlink下载器(比如DAPLink)进行JTAG烧录调试,
这个检测芯片型号的设定,可能是ST公司独有的指令,其他的JTAG下载器可能对其支持有限,既然STM32CubeIDE在使用openOCD进行烧录调试时,能绕过烧录器型号检测,那么,非常有可能连芯片型号检测也绕过了.
于是掏出DAPLink试了下.果真可以.
第一阶段的验证成功,于是进行第二阶段的验证,上STLINK测试,也成功!以下为操作过程.

操作流程

下载最新版openocd:

http://www.gnutoolchains.com/arm-eabi/openocd/

解压到任意目录,建议路径不带空格或中文
并在bin目录建立STM32F1XTest.bat文件:

修改STM32F1XTest.bat文件内容:

openocd -f interface/stlink.cfg -f target/stm32f1x.cfg

后半部分可选项:
stm32l0.cfg
stm32f0x.cfg
stm32l1.cfg
stm32f1x.cfg
stm32f2x.cfg
stm32f3x.cfg
stm32l4x.cfg
stm32f4x.cfg
stm32f7x.cfg
stm32g4x.cfg
stm32h7x.cfg
更多选项请在里面找个叫做target的目录,在里面能找到

保存后,运行STM32F1XTest.bat看看,如果显示这样就可以了:

如果你的显示不同,stlink先连接开发板,再重新插拔下ST-LINK的usb试试

STM32CubeIDE的调试选项里面这么配置:
(找不到这个界面在哪?调试失败后就会自动提示打开!)

完成~