前言
被自己买的Jlink真是要整烦了
一下连不上,一下固件掉升级,一下说是D版不给调试
于是乎决定,我买了个CMSIS-DAP调试器,决定放弃JLink这等@#$%^&货…
CMSIS-DAP 调试器
这个是开源调试器,硬件软件开源,T宝可以买,自己也可以去Github上搜索源码和固件和原理图自己做。
当然我很懒,我去买了现成的。。。
好家伙,里面拆开其实就是个国产32的最小系统而已。。。哈哈哈哈
这个网上介绍搜索一堆,这里就不废话了
STM32 CubeIDE
STM32自家 eclipse魔改IDE
GNU的底子,eclipse的外皮
我这里以1.7版为例说明
我不知道后面的版本有没有集成这个OpenOCD功能
如果有,那就省了很多事情了。
OpenOCD
这个是一个开源项目,可以连接ST-Link,Jlink,CMSIS-DAP等等各种你知道的不知道的Link调试器,连接各种Cortex芯片
有OpenOCD或者是Python实现的Pyocd,我这里主要介绍OpenOCD,Pyocd辅助【主要是Pyocd有个地方我这里一直不行,不懂弄】
下载链接
改造 CubeIDE,装Openocd插件
这里在线,离线方法我都说一说
在线的
Help->Eclipse Marketplace,等他加载完毕
搜索openocd,装Eclipse Embedded 6.3.1
待会装的方法,我这里就不多介绍了,我这里装了,不好卸载再截图了
这里自己搜索下Eclipse在线安装插件的方法哈
如果网速OK,过一会就会装好,让你重启IDE
离线的
考虑到某些情况,不方便联网装
我这里提供离线下载的链接
把这个ZIP下下来
或者我这里下好了,你来下吧
安装方法网上搜一搜,这里不介绍了,很多人写。
怎么配置呢
之后点击顶部的绿色虫子旁边的小三角,
进入后选这个,看看应该多出来了很多东西
看到这些说明你装成功了
我们选择OpenOCD Debuging,双击自动新建一个调试配置,这里我们分为调试和烧录
我会将涉及到需要配置的分页单独讲解
调试的配置
C/C++ Application这里选择你编译出来的elf文件,一般在Debug文件夹下面
首先Execution Path,这里填写你OpenOCD.exe所在的绝对路径
下面的三个Port,对于单个调试器的情况无需修改,但是对于同时调试多个芯片时,这个需要错开
譬如现在是3333,4444,6666.另一个芯片你就配置一组不一样的就可以。
下面这个Config是最重要的
-c “adapter driver cmsis-dap” -c “adapter serial 12345678” -f “xxxxx\scripts\target\stm32h7x.cfg”
-c "adapter driver cmsis-dap"这个的含义是连接的是CMSIS-DAP
-c "adapter serial 12345678"这个的意思是连接指定序列号,12345678这里我代指序列号,可能是别的哈
如果你只用一个调试器,这段不需要写
如果你不止一个调试器连接在电脑上,这段要写
-f “xxxxx\scripts\target\stm32h7x.cfg” 这个是指定你连接的CPU类型,下载OpenOCD的压缩包里面有这样的cfg文件,找到自己CPU对应的文件,我这里是H743,其他的自行寻找对应的cfg,一般常见的型号都有…
GDB下面的配置
就是需要手动设置下arm-none-eabi-gdb执行文件的位置
这个在CubeIDE安装路径下面,找一找就可以找到
后面的页面保持默认就可以了,不用改
把调试器和芯片板卡相连
我这个调试器是需要接SWCLK SWDIO GND VCC,我没接复位信号
其他情况自行研究
然后不出意外正常进调试应该就可以调试了
如何查询你的调试器序列号
当调试器连接到电脑的时候,会多出一个盘符,打开这个盘符,应该有一个文本文件,里面记录着调试器的基本信息
里面有调试器的序列号。
烧录的配置
烧录的配置和调试的类似
就是Config有点不一样,类似
-c “adapter driver cmsis-dap” -c “adapter serial 12345678” -f “xxxxx\scripts\target\stm32h7x.cfg” -c “program xxxxxxx 你的芯片烧录地址” -c “reset” -c “shutdown”
-c “program xxxxxxx 你的芯片烧录地址”
这里xxxxxxx 是你的编译产物(bin,hex)的绝对地址,注意路径这里需要改成双斜线的写法,他才识别的出来!!!
你的芯片烧录地址 这里填写十六进制的地址,例如H743是0x8000000
-c “reset” 下载完毕后复位芯片
-c “shutdown” 下载完毕之后关闭连接