openocd的安装和使用 - minichao9901/TangNano-20k-Zynq-7020 GitHub Wiki

D1 参考这篇文章可以安装好,至于如何使用还要另外研究

https://blog.csdn.net/qq_44656481/article/details/132415560

D2 openocd编译好的免安装文件路径

https://github.com/openocd-org/openocd/releases

下载后解压即可

D3 如果是使用windows powershell的话,那就设置windows的环境变量

这样子,powershell中输入openocd -v就能够识别到。

D4 不过我还是建议使用MSYS2。

MSYS2是一个工具集合,目标是在windows系统上像linux一样使用命令行和gcc工具。它可以用pacman -S命令安装各种linux软件,例如perl, python3, gvim, git, gcc, tcl等等。用法与linux的terminal完全一样。这个对于习惯了linux的用户,还是非常方便的。我喜欢。

MSYS2安装方法,非常简单。下载即可安装。

https://www.msys2.org/

安装后可以自行安装vim, git, python3, tcl等软件。

pacman -S vim
pacman -S git
pacman -S python3
pacman -S tcl

MSYS2的工作目录是在MSYS2的安装路径下(C:\msys64),有一个\home\xucha

C:\msys64\home\xucha

我们将下载的openocd-179169268-i686-w64-mingw32拷贝到这个工作目录下

配置.cshrc,添加openocd的bin路径

配置完了后,source .bashrc,然后可以openocd -v看版本信息

说明安装好了

D5 openocd调试stm32的方法

http://www.360doc.com/content/23/0328/10/64159776_1074039914.shtml

可以用我的stm32h7b3_discovery进行调试

在一个msys2窗口中开启gdbserver

openocd -f  ./openocd-12ff36bd1-i686-w64-mingw32/share/openocd/scripts/interface/stlink.cfg -f ./openocd-12ff36bd1-i686-w64-mingw32/share/openocd/scripts/board/stm32h7b3i-disco.cfg

在另一个msys2窗口中进行连接和调试,输入help可以看到所有的命令

telnet localhost 4444
help
help bp

常见用法

bp 断点
reg 所有寄存器值
mrb/mrh/mrw address  读一个地址
mdb/mdh/mdw/mdd address [count]  读多个地址
mwb/mwh/mww/mwd address [count]  写多个地址
ms 测量时间
program
reset
poll
step

image

启动openocd

image

连接openocd,读写一段内存地址

image

测量时间,设置断点,读写cpu寄存器组

image

存在问题及解决

之前openocd一直是连接stlinkv3可以,连接stlinkv2不行。 后来,我在ubuntu上安装了cubeide后,openocd就可以连接stlinkv2了。因此我的Nucleo_L4R5也可以使用了。猜测是因为,在安装cubeide的过程中,会安装好所有的驱动程序,于是就可以用了。

新版cubeide非常好用,它同时包含了cubemx和eclipse。配置界面和编程界面在一起,非常的方便。另外eclipse也比mdk好用,这在vivado中已经知道了。