ubunt16.04安装OpenOCD-支持STM32H7
警告:测试使用官方发布的稳定tag分支 0.10.0 对STM32H7支持还存在一些问题,所以编译了master分支,parent: bd425de3fbb9ba73d4e24573e2b2262ba1b8a3f5
1、获取OpenOCD源码
git clone https://github.com/ntfreak/openocd.git
//加载子模块
git submodule update --init --recursive
小技巧:国内git加速,在github.com后面加 .cnpmjs.org 可以提速。如:
git clone https://github.com.cnpmjs.org/ntfreak/openocd.git
//加载子模块
git submodule update --init --recursive
2、配置JLink连接模式
默认连接方式是使用jatg方式,我们一般都只用SWD模式,线少,方便。修改OpenOCD的jlink配置为swd接口
//注意:路径 /home/xxx/tools/ 是我自己的路径,根据自己存放的实际路径选择,后面的一致
sudo gedit /home/xxx/tools/openocd/tcl/scripts/interface/jlink.cfg
用上面的命令打开jlink.cfg文件进行修改,在其中加入一行并保存
transport select swd
3、配置复位模式
官方默认复位方式不能复位H7,导致使用program 命令烧录时出错无法烧录的情况。打开stm32h7x.cfg文件修改复位方式:
//注意:路径 /home/xxx/tools/ 是我自己的路径,根据自己存放的实际路径选择,后边的一致
sudo gedit /home/xxx/tools/openocd/tcl/scripts/target/stm32h7x.cfg
将reset_config srst_nogate修改为reset_config none
4、编译并安装OpenOCD源码
进入openocd文件夹,运行下方指令
sudo ./bootstrap
sudo ./configure
make
sudo make install
安装完成之reboot 重启系统后会在/uar/share 目录下生成一个 openocd 文件夹,如下
查看是否安装成功
openocd -v
5、连接测试
JLink-OB的SWD接口与STM32H7连接好之后,使用如下命令测试连接单片机的情况:
openocd -f interface/jlink.cfg -f target/stm32h7x.cfg
打开另一个终端,通过telnet连接openocd
telnet localhost 4444
6、烧录测试
使用program xxxx命令烧录,xxx表示你的固件,需要使用绝对路径。
成功会出现 ** Programming Finised **