stm32的调试之路-OpenOCD+JLINK

这两天吧cortex m3的开发调试环境给弄好了,只可惜还没有写过程序,没有用OpenOCD真正的调试过程序,

今天大体了解了一下GPIO的资料,看了看libopencm3中gpio.h。

仿照例程写了一个小程序,虽然似懂非懂的,但也调试通过了

$sudo openocd -f jlink.cfg -f stm32f1.cfg

$telnet localhost 4444

>halt

>flash write_image erase /home/yangmeng/test.hex

>reset

这样就可以看到运行结果了。

感觉还是不错的,时间不早了,要早点休息了


### 使用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]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值