Ubuntu下安装STM32调试环境 OpenOCD+JLink
2017-11-18 16:55
344 查看
OpenOCD安装和使用
下载OpenOCD源码
OpenOCD为sourceforge托管的开源项目,项目地址为:https://sourceforge.net/projects/openocd/找到最新版本下载,本记录使用:openocd-0.10.0.tar.bz2
配置、编译及安装
解压、进入源码目录下执行
./configure -help查看配置命令及提示,完成基于有别于系统的配置,大多数情况不需要有太大改动
若提示没有那个文件或目录,执行
./bootstrap生成配置文件
执行
./configure --enable-jlink添加JLink支持,若提示库缺失,根据提示信息安装所需库(在10之后的版本都提示却什么库,以前的版本提示缺少.h文件,建议安装最新版,起码不用按一堆库来试,有能力看源码,看英文手册的人不用管我的建议)
执行make
执行sudo make install
重启使安装的环境变量生效,如果知道具体在哪,请直接运行该文件,如果能告诉我,感激不尽。
安装成功
启动OpenOCD
进入根目录执行sudo find |grep interface/jlink.cfg找到配置文件安装目录(有点慢,如果没更改的话应该在
/usr/local/share/openocd/scripts/下)
target目录中有各种U的基础配置,一般不需要修改,找到自己的型号即可,在interface中找到自己使用的调试器
将硬件连通后在任意目录下执行
sudo openocd -f interface/jlink.cfg -f target/stm32f1x.cfg开始用JLink调试stm32f1x,看到有一条是
Info : stm32f1x.cpu: hardware has N breakpoints, N watchpoints即进入调试模式,N为硬件断点的数目。若链接不上出现大量错误,大都是硬件或配置问题,在软件配置时就会把绝大部分软件缺失问题扫描到并提示修复方式,但也不完全排除驱动、系统问题,排除错误顺序为,1. 硬件是否连接正常;2. 是否在安装前配置添加该调试器的支持;3. mcu配置文件是否与硬件不匹配(有时速度会不匹配);。
连接到OpenOCD
成功通过Jlink连接到STM32上之后,OpenOCD会监听本机的4444端口。可以通过telnet连接并控制OpenOCD。
重新启动一个控制台执行
telnet localhost 4444
输入help回车获得命令使用提示
我的脚本
#我不是在root中运行,所以sudo加一个密码的输入S,使用2>/dev/null去除不必要的输出,前提是能确定一定能连上,并放入后台运行。 $echo "密码"|sudo -S openocd -f interface/jlink.cfg -f target/stm32f1x.cfg 2>/dev/null & #之后就可以连接了,不需要两个控制台了,关闭的时候直接使用shutdown同时结束 $telnet localhost 4444
OpenOCD命令使用简易指南
注:<>内是必填项 []内为可选项基本操作
shutdown能进入调试就要能退出调试
exit能进入连接就要能断开连接
halt系统还在运行咱们就把它先暂停运行
resume能停下来就要能继续运行
reset想从头看效果就要复位
reset halt想从头调试就要复位并中止
flash操作
flash banks查看flash的bank列表
flash erase_check <bank_id>查看该bank的写入状态(是否擦除)
flash erase_sector <bank_id> <first_sector_num> <last_sector_num>擦除指定bank的第first页到last页
flash write_image [erase] [unlock] <filename> [offset [file_type]]见help。
下载程序
思路是在中止时清除并写flash后复位1.
halt
2.
flash write_image erase *.hex请务必将*替换为要下载的文件名,支持大多数格式不仅仅为hex。
3.
reset
断点调试
bp <address> [<asid>]<length> ['hw'|'hw_ctx']
rbp <address>
bp为添加断点,rbp为删除断点
address为断点地址,hw为硬件断点,hw_ctx为软件断点,length为指令集字节长度,stm32是2个字节长,2440是4个字节长,部分MCU拥有多套指令集,长度不固定。
思路是中止MCU后添加断点继续运行。
Linux版本信息
Linux version 4.10.0-38-generic (buildd@lgw01-amd64-059) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017相关文章推荐
- ubuntu下使用openocd+jlink进行STM32开发调试
- ubuntu下编译安装openocd配合JLINK调试
- Ubuntu环境下使用OpenOCD调试目标平台
- 转:Openocd 安装并在Eclipse环境下通过J-Link调试
- stm32的调试之路-OpenOCD+JLINK
- linux(ubuntu) php 调试环境安装
- CentOS 下编译安装openocd配合JLINK调试
- 【转】Ubuntu 14.04配置安装java环境和android开发环境(包括真机调试环境)
- 【转载】Openocd 安装并在Eclipse环境下通过J-Link调试
- Wins【7/10】环境下安装基于Eclipse的STM32交叉编译开发调试环境
- STM32环境准备:JLink + OpenOCD
- Openocd 安装并在Eclipse环境下通过J-Link调试
- Ubuntu14.4下通过JLink烧写、调试STM32
- Ubuntu下使用OpenOCD通过Jlink烧写HEX到STM32
- ubuntu 安装phpstorm+xdebug 动态调试环境
- CentOS 下编译安装openocd配合JLINK调试
- IAR 环境下基于JLINK在RAM中调试STM32
- ubuntu 环境使用eclipse和JLink对uboot进行调试
- ubuntu系统如何安装adb调试环境
- Ubuntu 安装 Eclipse C/C++开发环境