下载和调试

下载

使用 jlink 下载

安装好 jlink linux 版本。

https://kb.segger.com/UM08001_J-Link_/_J-Trace_User_Guide

https://kb.segger.com/J-Link_Commander

安装好后,下载的步骤

JLinkExe

connect stm32f407zg

swd

speed 默认

连接成功后下载的通用步骤

h
loadfile xxxx.elf
r
g

关于 elf 文件,带语义的程序,

hex 带地址的文本格式,

bin 纯数据。无上下文的字节流

偏硬件的调试

使用 jlink

一些常用的指令。

调试指令

regs

看 CPU 寄存器信息

读内存,寄存器 mem8 / mem16 / mem32

w8 w16 w32 写内存

setpc 强行转转执行

单步执行 step stepi

speed 速度控制

speed 1000

从手动交互到自动执行一些简单任务

从交互到自动化脚本

90% 的问题,只需要下面这些指令

jlink commander,调试器前端,偏硬件的 gdb

gdb 有符号,偏软件的 jlink/

MCU 场景下,gdb 并不直连硬件,调试结构

需要做的事情,起一个 jlink GDB Server

然后用 gdb 连上。

工具链自带了 gdb,但用的比较多的是,gdb-multiarch

调试的前提,elf 带调试信息,可以用 file xxx.elf 查看

启动 gdb

gdb-multiarch rtthread.elf

指定架构

set architecture arm

连接到 jlink gdb server

target remote :2331

复位

monintor reset

b main

continue 或 c 继续

monintor 指令透传通道,原样发给 gdb server,在这个场合由 jlink 去解析

最后更新于