基于 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
- 下载好OpenOCD,解压到任意目录,建议路径不带空格或中文
- 并在 bin 目录右键,新建文本文档,并重命名为
DAP-Linkl-stm32F4.bat
(前缀名称可以随意,后缀.bat
不能更改) - 右键编辑或者使用 vs-code 打开
- 输入以下内容:意思是:使用cmsis-dap调试stm32f4,这里默认使用 SWD 接口。通过其他配置,还可以支持 J-link 接口,未做尝试,不再叙述。
1
openocd -f interface/cmsis-dap.cfg -f target/stm32f4x.cfg
后面的stm32f4x.cfg
需要适配你的芯片型号,具体支持型号可以在OpenOCD-20201228-0.10.0\share\openocd\scripts\target
的目录,在里面能找到
可以看到 stm32 大部分型号都支持了。F1系列 的就改为stm32f1x.cfg
,F7系列 的就改为stm32f7x.cfg
,同理类推。 - 单击
DAP-Linkl-stm32F4.bat
执行,会弹出一下窗口,表示连接成功。最小化窗口,保持后台运行。
STM32CubeIDE 配置
- 新建测试工程(我的是 LED 亮灭测试)
- 单击菜单栏 Debug图标(绿色甲壳虫)旁的下拉按钮,单击选择
Debug Configurations
进入配置界面 - 配置如下图所示,
**一定要:取消勾选Live Expressions
**,网上教程都没这一步,导致调试失败。
取消勾选原因:Does STM32CubeIDE not support live variable watching?
- 弹窗单击
Switch
,进入调试界面
仿真测试
进入仿真调试界面,可以看到 GPIOC(LED的 IO 为 GPIOC_13) 的 寄存器 ODR 值会随着程序运行改变。
再看另外两个窗口:现场表达式
和 Expressions
。
可以看到 现场表达式
是无法使用的(由于前面取消勾选了 Live Expressions
),但Expressions
是可以的。而这两者很相似啊,具体区别也未查到,不知道是软件的bug还是什么情况。反正还是可以实时查看表达式值就很开心😀
以后每次调试都需要单击 DAP-Linkl-stm32F4.bat
并保持后台运行。
参考链接
- MuseLab-nanoDAP-资料
- STM32开发/烧录/调试环境搭建 基于:Win10+STM32Cube+openocd+cmsis-dap(dap-link)
- Does STM32CubeIDE not support live variable watching?
- 基于OpenOCD 的 STM32CubeIDE 开发烧录调试环境搭建 DAPLINK/STLINK
- 在STM32CubeIDE中用OpenOCD调试STM32H750
- STM32CubeIDE配置OpenOCD跳过STLink版本检查 跳过芯片型号检查(免破解,免修改ide任何文件)
- STM32CubeIDE 调试配置
- STM32IDE_无线DAP调试下载器不香吗
- DAPLink设计与应用