先把工具准备好
- JLink-V9 淘宝百元款;
- STM32F103ZET6开发板;
- 环境:UBUNTU16.4
- 下载JLINK驱动,linux版的, JLink_Linux_V612i_x86_64.rar
- 下载安装b别人做好的交叉编译工具链gcc-arm-none-eabi-7-2017-q4-major,内含编译器和调试器系列工具,arm-none-eabi-gdb就是其中的一个小工具;
安装JLink驱动
-
解压:
rar x JLink_Linux_V612i_x86_64.rar -
进入目录安装其中的JLink_Linux_V612i_x86_64.deb
sudo dpkg -i JLink_Linux_V612i_x86_64.deb
这样/usr/bin/下面就多了些JLink*的可执行文件(实际上是个符号链接指向真正的可执行文件) -
测试一下能用否?
JLinkExe
呵呵,提示不能通过USB连接到JLINK,原因是一些usb相关的支持库缺失,一顿装: -
【安装readline库方法一】
4.1. sudo apt-cache search readline查看哪些包中有这个库;
4.2 . 从查到的结果中找一个包安装就是:sudo apt-get install xxx -
【安装readline库方法二】
sudo apt-get install libreadline5:i386 -
【安装libusb方法一】
sudo apt-get install libusb-0.1-4:i386
7.【安装llibusb方法二】
sudo apt-get install libusb-1.0-0-dev
到此Jink驱动安装OK啦
用它来烧录程序试试
到此JLinkExe没问题了
++++++++++++++++++++++++++++++++++++++++++
==========================================
JLinkGDBserver使用
直接运行JLinkGDBserver提示无法链接CPU
网上查了很久,尽是些答非所问的,最终还是上了老外的网站找到答案,SGGER jlink官网有帖子,看后发现竟然是漏跟参数了
JLinkGDBServer -if SWD -device STM32F103ZET6 奇迹就出现了
++++++++++++++++++++++++++++++++++++
====================================
arm-none-eabi-gdb 与JLinkGDBserver配合实现调试
键入 target remote 127.0.0.1:2331连接GDBSERVER,即本机的2331端口,具体端口号GDBserver会提示。连上后两端都会打印信息
开启正常调试之旅
-
打断点
先用list显示C源码,再用b +行号 打断点 -
全速运行
到断点处就会停下来
-
查看断点信息
列出所有断点
-
查看寄存器
- 单步
- 执行下个函数
其他更多GDB命令
参考 gdb命令详解
相关源码工具包下载
见我上传的资源: 《arm-none-gcc + JLINKgdbSERVER.rar》