一:首先删除系统原有的openocd
为什么删除原有的openocd呢?
因为之前是直接使用: sudo apt-get install openocd命令行下面
安装的软件,各种连接不上,打不stm32h7x.cfg脚本错误,
所以果断放弃。
使用如下命令卸载:
sudo apt-get install openocd
二:下载github上openocd主线源码自己编译,当然gcc,make这些工具得提前安装好!
因为github网站在国外太慢,先导入到国内的gitee再下载下来:
1):
登入giteee账号,右上角选择“从Github/GitLab导入仓库,2021年这个gitee网站分布是这样,以后不保证还这个布局或功能。
2):然后导入openocd的githu地址;
3:):从gitee上git clone下来源码
4):完成后,更改git子模块的下载地址,因为openocd又引用了其他github上面的源码,一并导入到gitee,并修改到gitee上面的连接,进入opencocd源码目录:
cd openocd
gedit .gitmodules #修改子模块下载地址:
原来内容如下:
[submodule "tools/git2cl"]
path = tools/git2cl
url = https://repo.or.cz/git2cl.git
[submodule "jimtcl"]
path = jimtcl
url = https://github.com/msteveb/jimtcl.git
[submodule "src/jtag/drivers/libjaylink"]
path = src/jtag/drivers/libjaylink
url = https://repo.or.cz/libjaylink.git
#==========================================
更改后如下:
[submodule "tools/git2cl"]
path = tools/git2cl
url = https://gitee.com/daoshengtianxia/git2cl.git
[submodule "jimtcl"]
path = jimtcl
url = https://gitee.com/daoshengtianxia/jimtcl.git
[submodule "src/jtag/drivers/libjaylink"]
path = src/jtag/drivers/libjaylink
url = https://gitee.com/daoshengtianxia/libjaylink.git
5):
在命令下输入:
git submodule init #初始化子模块
git submodule sync #同步子模块
git submodule update --init --recursive #下载子模块资源
三:编译安装openocd源码:
sudo ./bootstrap
sudo ./configure
make
编译这步出来问题如下:
先不研究,最近比较忙日后再仔细研究,如果有谁知道可以评论留言,感谢指导。
暂时先用:
sudo make#编译
编译通过!
sudo make install #安装编译好的源码。
输入:openocd -v
测试版本安装没安装成功,如果不行可以重启试试。
四:连接cmsis-dap测试:
本人使用的cmsis-dap调试器,命令如下:
openocd -f interface/cmsis-dap.cfg -f target/stm32h7x.cfg
如果提示没有找不到cmsis-dap需要执行如下:
1):输入如下命令更改HID权限:
sudo gedit /etc/udev/rules.d/10-hid.rules
2):输入如下内容:
# udev rules file for hid device
SUBSYSTEM=="usb", ATTR{idVendor}=="5000", MODE="0500", GROUP="plugdev"
3):重新载入usb权限:
sudo udevadm control --reload
五:使用调试等命令,
需要保持上图那个窗口打开,另外开一个新窗口;
输入如下命令:
telnet localhost 4444
然后输入halt,reset,等命令停止,重启mcu!