使用 OpenOCD 来调试 STM32

STM32 在 Windows 上的交叉编译二 调试

在上一篇博客 《在Windows上交叉编译STM32(环境搭建)》 ,已经让 CubeMX 生成的工程成功编译,并下载到板子上了。
这篇博客主要继续介绍接下来的步骤,调试。硬件是使用的 ST-LINK ,别的也无所谓,只要是 OpenOCD 支持的就可以。

OpenOCD & GDB

这里还是,介绍的文章特别多,好的也很多。本人博客简单讲原理,大家一起从原理上理解了,会用了。我也就达到目的了。

OpenOCD(On-Chip Debugger) 很多这种缩写只要看到全部的单词也就能猜到其意义。这个东西就是一个针对不同单片机调试器的配饰器,什么 J-Link 、ST-Link 支持的还比较多。

依靠 OpenOCD 打通了开发机和单片机调试器的通路,那么还需要一个能够对于代码解析,发送对应调试命令的工具。很显然这个工具就是我们大多数人所熟知的 GDB 了。

OpenOCD 下载

下载地址 Github:
https://github.com/xpack-dev-tools/openocd-xpack/releases

或者从我的网盘下载:
链接:https://pan.baidu.com/s/1TOcZRSXVSfGCq2lcG3bJvw?pwd=fplu
提取码:fplu

CSDN 0 积分下载(我设置的是 0 ):
https://do

### 使用OpenOCD在Ubuntu上烧录STM32程序 为了能够在Ubuntu环境中使用OpenOCD来烧录STM32微控制器上的应用程序,需要完成一系列配置工作。这包括环境搭建、工具链安装以及具体的操作命令。 #### 安装必要的软件包 确保系统已更新至最新状态并安装了编译所需的依赖项: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install build-essential git cmake libusb-1.0-0-dev -y ``` #### 编译和安装OpenOCD 获取最新的OpenOCD源码,并按照官方说明进行编译安装[^1]: ```bash git clone https://github.com/ntfreak/openocd.git cd openocd ./bootstrap ./configure --enable-stlink make sudo make install ``` #### 配置USB权限 为了避免每次连接STLink调试器都需要root权限,在`/etc/udev/rules.d/`目录下创建一个新的规则文件用于赋予普通用户访问权限[^3]: ```bash echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="0483", MODE="0666"' | sudo tee /etc/udev/rules.d/99-openocd.rules sudo udevadm control --reload-rules sudo service udev restart ``` #### 准备启动脚本 编写一个简单的TCL脚本来简化后续操作过程中的参数输入。将下面的内容保存为`stm32_flash.tcl`: ```tcl source [find interface/stlink.cfg] transport select hla_swd set WORKAREASIZE 0x2000 source [find target/stm32f4x.cfg] init reset halt flash write_image erase my_program.bin 0x08000000 bin verify_image my_program.bin 0x08000000 reset run shutdown ``` 请注意修改其中的二进制映像路径(`my_program.bin`)以匹配实际项目情况。 #### 执行烧写指令 最后一步就是运行准备好的TCL脚本来进行固件刷入动作: ```bash openocd -f stm32_flash.tcl ``` 如果一切顺利的话,此时应该可以看到终端输出显示成功完成了整个流程;如果有任何错误提示,则可以根据报错信息进一步排查问题所在[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值