ubuntu使用openocd烧录stm32程序
时间: 2024-12-28 19:26:39 浏览: 19
### 使用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]。
阅读全文