STM32CubeIDE作为ST生态中重要的一环,必然以支持自家的ST-LINK为第一要务。不过当我们手上没有ST-LINK只有其他调试器时也是可以debug和下载的,只需要做一丢丢的简单操作,下面这个方法个人觉得比网上大多数方法都要简单很多,不需要调用STM32CubeIDE外部的OpenOCD喔(滑稽)。
转载请在醒目位置标注原作者及原文链接
转载请在醒目位置标注原作者及原文链接
转载请在醒目位置标注原作者及原文链接
准备工作
软件:
- 最新版本的STM32CubeIDE
硬件:
- 野火 STM32H743挑战者 开发板(等待调试的目标硬件,我手上有这块板就以他做演示了)
- fireDAP调试器
开始设置
新建工程之类的就不说了,不在本文讨论范围,直接从debug设置开始。
不过需要提醒的是工程路径不能有中文,要不然可能会有一些奇奇怪怪的问题。
- 首先新建一个debug配置。点击debug Configurations,在弹出的窗口中双击STM32 Cortex-M C/C++ Application,新建debug配置。
- 在右侧窗口中选择调试器选项卡,然后按照下图中标注的顺序依次设置。
- 设置完成后,在STM32CubeIDE的界面左侧,能看到刚刚生成的.cfg调试器配置文件,双击打开它,如果双击打不开的话,可以在自己的IDE工程目录下找到它,用notepad++或者vscode都可以打开。
打开之后先另存为一个新的.cfg文件,切记一定要另存!另存!另存! 不然接下来的修改,IDE会直接覆盖掉。
- 打开另存的新的.cfg文件,按照下图修改里面的内容,然后保存退出文件编辑。
- 最后,再次进入debug Configurations界面,在这里把刚才修改的文件添加进来,整个设置工作就做完了。
进入调试
所有工作做完以后就可以愉快的debug啦,点击虫子图标进入debug,如果一切顺利,可以在IDE下方的console窗口看到类似这样的信息。
随着代码运行,IDE界面右侧能看到寄存器值改变就说明配置成功,可以开干了。XD
额外配置
上面的配置主要针对带有硬件rst线的接线方式,有时候rst线不一定会引出来,这时候直接用这个配置就可能出问题,这里说一下其他不依赖硬件rst线的配置步骤。
其实和上面的配置基本差不多,唯一不同的地方在生成.cfg文件之前,具体在上面第2步,执行完第2步图中前两个标号以后找到Configuration Script,点击show generator options。
可以看到多出来一些选项,在Reset Mode下拉框中可以选择不同的复位模式,选择好之后,剩下的步骤就跟上面完全一样了。
一些注意事项
- 市面上的DAP各种各样,有些型号DAP默认需要外部参考电平,所以最好把DAP的VREF接到目标芯片的3.3V
- 尽可能保持CubeIDE在最新版本
- 如果是刚装完CubeIDE,不管是什么系统平台都强烈建议先重启一次系统再配置DAP
- DAP与目标芯片调试接口之间的接线要尽可能短,并且要注意是否有接触不良的情况
- DAP和目标芯片需要保证各自的供电正确且稳定
- 如果是虚拟机运行CubeIDE,请确保DAP正确挂载在虚拟机中
- Linux或MacOS如果在装CubeIDE之前已经安装了其他版本的OpenOCD,可能需要卸载掉之前的OpenOCD后再装CubeIDE
- 如果电脑上插着不止1个DAP,可能进Debug的时候会报错,这个好像是因为OpenOCD的限制,区分不了多个DAP