STM32CubeIDE+MSYS2+Openocd+DAPLink调试STM32H750VB

首发ST论坛
http://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=620709&page=1#pid2435569

开源调试方案

既然我们选择了STM32CubeIDE,那么就不要在用盗版的JLINK了。
调试软件选择开源的OpenOCD,调试器使用DAPLink(CMSIS DAP),配合STM23CubeIDE,也能满足我们的调试需求。

MSYS2+OPENOCD

我们还是在盗版的微软下工作(很快,我们就会推出在LINXU开发STM32的指导文档,基于Deepin系统)。
安装OpenOcd有两种方法:
1. 直接安装openocd的exe文件,通过DOS命令行操作。
2. 安装一个linux控制台,通过仿linux终端交互。

我们肯定选择linux。
这种交互软件很多,大家可能都听过cywin,我们这里不选cywin而是选择更好用的msys2。
从网上很容易下载到msys2。我们用的是msys2-x86_64-20180531.exe版本。
一路点击无脑安装。
安装完后,不要使用默认打开的控制台。
要用MSYS2 MinGW 32-bit,并且以管理员身份运行
打开控制台后,运行下面指令安装OPENOCD

pacman -S mingw-w64-i686-openocd-git

中途可能需要输入Y确认安装。
安装结束后敲入openOCD查看版本。

同时查看路径C:\msys64\mingw32\share\openocd\scripts,
看看target是否有stm32h7x.cfg,有则说明支持H750了,否则就不支持。
2019的版本支持,2018的版本不支持。

OpenOCD使用方法

使用OpenOCD需要一个.cfg文件,我们从C:\msys64\mingw32\share\openocd\scripts\board中拷贝一个
st_nucleo_h743zi.cfg到C:\msys64\home,
把名字改为albatross.cfg,并把内容修改如下:

# This is an ST NUCLEO-H743ZI board with single STM32H743ZI chip.
# http://www.st.com/en/evaluation-tools/nucleo-h743zi.html

source [find interface/cmsis-dap.cfg]

transport select swd

source [find target/stm32h7x.cfg]

reset_config srst_only

意思是使用cmsis-dap调试器,使用SWD模式,芯片是stm32h7x。
回到控制台,使用cd命令进入/home目录,使用命令

openocd -f albatross.cfg

连接目标板,如果此时开发板和cmsis dap连接正常,提示如下:

重新打开一个msys2控制终端。
使用命令:

telnet localhost 4444

连接芯片进入调试。

然后通过命令halt挂起芯片、flash write_image烧录程序。

flash write_image erase ./canary.hex


canary.hex放在C:\msys64\home目录
烧录成功,说明OPENOCD+CMSIS DAP+STM32H750这条路已经打通。
使用命令exit退出telnel

第一个控制台退出openocd的方法是Ctrl+C

联合STM32CubeIDE调试

打开IDE,在Run菜单下有Debug Configurations,点击进入配置。

双击最后的STM32 MCU Debuging,生成一个新的Debug配置。
点击Search Project 选择当前工程elf文件。

点击调试器进入调试器配置,调试探头选择OpenOCD,
连接方式选择连接到远程GDB服务器,端口选择3333,
点击右下角Apply应用配置。
在msys2中用OPENOCD连接上目标板的情况下,点击Debug

成功进入调试,点击调试菜单,可以发现,确实能控制程序了。

配置完成,如何使用IDE进行具体调试,大家自行研究。


end

发表评论

电子邮件地址不会被公开。 必填项已用*标注