HW准备
SW准备
安装新版的JLink:
https://www.segger.com/downloads/jlink/JLink_Windows.exe
开始Debug
用cmd执行JLinkGDBServer.exe,需要带上和你的环境相匹配的参数,如:JLinkGDBServer.exe -select USB -device Cortex-M4 -if swd -scriptfile AP2_KM4.JLinkScript -port 2335。这时就会有弹窗显示GDB server连线状态。
用cmd “arm-none-eabi-gdb -x xxx.txt"调用GDB线程,会弹出交互界面,用于输入GDB命令和返回结果。
GDB命令
monitor reset 0 //reset program
file xxx.axf //载入符号,代码等信息
set *0xxxxx_xxxx=0xxxxx_xxxx //设定某地址的值
x *0xxxxx_xxxx //读取某地址的值
break *0xxxxx_xxxx //在某地址设置断点
c //continue
si //执行一行汇编代码而且进入函数内部
s //执行一行源代码而且进入函数内部
n //执行一行源代码但不进入函数内部
ni //执行一行汇编代码但不进入函数内部
layout //用于分割窗口,可以一边查看代码,一边测试:
layout src //显示源代码窗口
layout asm //显示反汇编窗口
layout regs //显示源代码/反汇编和CPU寄存器窗口
layout split //显示源代码和反汇编窗口
其它可以参考reference.
Appendix
readelf可以读取.o,.axf等文件中的段信息。具体用法可以参考:https://blog.youkuaiyun.com/yfldyxl/article/details/81566279
Reference
https://www.it610.com/article/1865433.htm
https://www.cnblogs.com/zhangyachen/p/9227037.html
https://blog.youkuaiyun.com/ylcangel/article/details/87929202
https://blog.youkuaiyun.com/yfldyxl/article/details/81566279