基于 OpenOCD 的 STM32CubeIDE 开发烧录调试环境搭建-DAPLINK

本文最后更新于:2021年1月17日 凌晨

STM32cubeIDE 是ST官方推出的一款用于开发 STM32 的工具,整合了 STM32CubeMX 和 TrueSTUDIO 而成,对于 STM32 的开发这个工具应该会在未来成为主流,毕竟有官方加持又商用免费。但仿真烧录只支持 J-LINK 和 ST-LINK 或 OpenOCD。

CMSIS-DAP/DAPLink 仿真器是硬件软件均开源的仿真器,相比当前市面上流行的jlink/st-link,烧录速度快,不丢固件,无版权风险,功能丰富,价格低廉,外观简洁精致,能较好的满足电子工程师进行日常的开发调试下载需求。

然而 STM32CubeIDE并没有直接支持它,只能通过 OpenOCD 的方式间接支持。本篇就介绍如何通过 OpenOCD 使得 STM32CubeIDE 支持 DAPLINK 调试工具

测试环境与准备

DAPLink 仿真器购买:淘宝-MUSE LAB 型号: DAPLINk
STM32CubeIDE:V1.5.1
OpenOCD下载:Version 20201228
经测试:淘宝-维特智能 的CMSIS-DAP也使用本教程

部署 OpenOCD

  1. 下载好OpenOCD,解压到任意目录,建议路径不带空格或中文
  2. 并在 bin 目录右键,新建文本文档,并重命名为 DAP-Linkl-stm32F4.bat(前缀名称可以随意,后缀 .bat不能更改)
    enter description here
  3. 右键编辑或者使用 vs-code 打开
    enter description here
  4. 输入以下内容:
    1
    openocd -f interface/cmsis-dap.cfg -f target/stm32f4x.cfg
    意思是:使用cmsis-dap调试stm32f4,这里默认使用 SWD 接口。通过其他配置,还可以支持 J-link 接口,未做尝试,不再叙述。
    后面的 stm32f4x.cfg 需要适配你的芯片型号,具体支持型号可以在 OpenOCD-20201228-0.10.0\share\openocd\scripts\target 的目录,在里面能找到
    enter description here
    可以看到 stm32 大部分型号都支持了。F1系列 的就改为 stm32f1x.cfg,F7系列 的就改为 stm32f7x.cfg,同理类推。
  5. 单击 DAP-Linkl-stm32F4.bat 执行,会弹出一下窗口,表示连接成功。最小化窗口,保持后台运行。
    enter description here

STM32CubeIDE 配置

  1. 新建测试工程(我的是 LED 亮灭测试)
  2. 单击菜单栏 Debug图标(绿色甲壳虫)旁的下拉按钮,单击选择 Debug Configurations 进入配置界面
    enter description here
  3. 配置如下图所示,
    **一定要:取消勾选 Live Expressions**,网上教程都没这一步,导致调试失败。
    取消勾选原因:Does STM32CubeIDE not support live variable watching?
    enter description here
  4. 弹窗单击 Switch ,进入调试界面
    enter description here

仿真测试

进入仿真调试界面,可以看到 GPIOC(LED的 IO 为 GPIOC_13) 的 寄存器 ODR 值会随着程序运行改变。
enter description here

再看另外两个窗口:现场表达式Expressions
可以看到 现场表达式 是无法使用的(由于前面取消勾选了 Live Expressions),但Expressions是可以的。而这两者很相似啊,具体区别也未查到,不知道是软件的bug还是什么情况。反正还是可以实时查看表达式值就很开心😀

以后每次调试都需要单击 DAP-Linkl-stm32F4.bat 并保持后台运行。

参考链接


基于 OpenOCD 的 STM32CubeIDE 开发烧录调试环境搭建-DAPLINK
http://lonlypan.com/2021/01/17/基于 OpenOCD 的 STM32CubeIDE 开发烧录调试环境搭建-DAPLINK/
作者
LonlyPan
发布于
2021年1月17日
许可协议