STM32学习004_调试工具J_LINK
扫描二维码
随时随地手机看文章
jlink是segger公司的产品,jlink的官方提供调试软件和驱动,调试软件有jlink命令(j-tag调试),j-mem(内存查看),j-flash(flash烧写)等我主要用到的是jlink commander,以下是它的命令集:
SEGGER J-Link指挥官V4.20h('?'寻求帮助)
编译2010年10月5日19:11:57
DLL版本V4.20h,编译于2010年10月5日19:11:41
固件:J-Link ARM V8编译2010年5月5日08:59:59
硬件:V8.00
S / N:20100214
功能:RDI,FlashDL,FlashBP,JFlash,GDBFull
VTarget = 3.280V
信息:TotalIRLen =?,IRPrint = 0x..FFFFFFFFFFFFFFFFFFFFF1
警告:找不到CPU内核。
没有在JTAG链上找到设备。尝试在SWD上查找设备。
警告:找不到CPU内核。
******错误:奇偶校验错误(Data = 0xFFFFFFFF,ReceivedParity = 1)
在SWD没有设备。
没有找到任何核心
信息:TotalIRLen = 9,IRPrint = 0x0011
找到2个JTAG设备,总共IRLen = 5:
#0 Id:0x2B900F0F,IRLen:04,IRPrint:0x0,ARM ETB
#1 Id:0x07B76F0F,IRLen:05,IRPrint:0x1,ARM1176 Core
确定了ARM11。
J-链接>
可用的命令是:
----------------------
f固件信息
h停止
g去
睡眠等待给定时间(以毫秒为单位)。语法:睡眠
s单步目标芯片
st显示硬件状态
hwinfo显示硬件信息
mem读取内存语法:mem ,(十六进制)
mem8读取8位项目。语法:mem8 ,(十六进制)
mem16读取16位项目。语法:mem16,(十六进制)
mem32读取32位项目。语法:mem32,(十六进制)
w1写入8位项目。语法:w1,(十六进制)
w2写16位项目。语法:w2,(十六进制)
w4写入32位的项目。语法:w4,(十六进制)
wm写测试字。语法:wm
是识别扫描链选择寄存器的长度
ms测量扫描链的长度。语法:ms
mr测量RTCK反应时间。语法:mr
q退出
qc关闭JLink连接并退出
r复位目标(RESET)
rx复位目标(RESET)。语法:rx
RSetType设置当前的复位类型。语法:RSetType
寄存器显示寄存器的内容
wreg写入寄存器。语法:wreg,
SetBP设置断点。语法:SetBP[A / T] [S / H]
SetWP Set Watchpoint。句法:[R / W] [[] [A-Mask]]
ClrBP清除断点。语法:ClrBP
ClrWP清除观察点。语法:ClrWP
VCatch写向量捕获。语法:VCatch
loadbin将二进制文件加载到目标内存中。
语法:loadbin,
savebin将目标内存保存为二进制文件。
语法:savebin,,
SetPC将PC设置为指定值。语法:SetPC
le改为小端模式
改为大端模式
日志启用日志到文件。语法:log
unlock解锁设备。语法:解锁
键入解锁没有得到一个列表
的支持的设备名称。
nRESET必须连接
---- CP15 ------------
rce阅读CP15。语法:rce,,,
wce写CP15。语法:wce,,,,
- - 冰 - - - - - - -
冰显示状态的嵌入式冰宏单元(ICE断路器)
ri Read Ice reg。语法:ri(十六进制)
wi写冰reg。语法:wi,(十六进制)
---- ETM -------------
etm显示ETM状态
re read ETM reg。语法:re
我们写ETM reg。语法:我们,(十六进制)
es开始跟踪
---- ETB -------------
etb显示ETB状态
rb读取ETB寄存器。语法:rb
wb写入ETB寄存器。语法:wb,(十六进制)
---- TRACE -----------
TAddBranch TRACE - 向跟踪缓冲区添加分支指令。帕拉斯:,
TAddInst TRACE - 将(非分支)指令添加到跟踪缓冲区。句法:
TClear TRACE - 清除缓冲区
TSetSize TRACE - 设置跟踪缓冲区的大小
TSetFormat TRACE - SetFormat
TSR TRACE - 显示区域(并分析跟踪缓冲区)
TStart TRACE - 开始
TStop TRACE - 停止
---- SWO -------------
SWOSpeed SWO - 显示支持的速度
SWOStart SWO - 开始
SWOStop SWO - 停止
SWOStat SWO - 显示SWO状态
SWORead SWO - 读取和显示SWO数据
SWOShow SWO - 读取和分析SWO数据
SWOFlush SWO - 刷新数据
----文件I / O --------
fwrite将文件写入仿真器
fread从模拟器读取文件
fshow从模拟器读取和显示文件
fdelete在模拟器上删除文件
fsize在模拟器上显示文件的大小
----测试------------
thg运行/停止1000次
ts运行步骤1000次
testwspeed测试下载速度。语法:testwspeed [[]]
testrspeed测试上传速度。语法:testrspeed [[] [
S>]]
testcspeed测试CPU速度。语法:testcspeed []
---- JTAG ------------
配置在ARM设备之前设置IR / DR位数。
语法:配置,
速度设置JTAG速度。语法:speed| auto | adaptive,例如speed 2000,
速度a
我读取JTAG ID(主机CPU)
wjc写入JTAG命令(IR)。语法:wjc(十六进制)
wjd写入JTAG数据(DR)。语法:wjd(十六进制),(分解)
RTAP复位TAP控制器使用状态机(111110)
wjraw编写原始JTAG数据。语法:wjraw,,
rt复位TAP控制器(nTRST)
---- JTAG硬件---
c00用TDI = TMS = 0创建时钟
c时钟
0清除TDI
1设置TDI
t0清除TMS
t1设置TMS
trst0清除TRST
trst1设置TRST
r0清除复位
r1设置RESET
----连接------
usb通过USB连接到J-Link。语法:usb,其中港口为0..3
ip通过TCP / IP连接到J-Link ARM Pro或J-Link TCP / IP服务器。
语法:ip
----配置---
si选择目标界面。语法:si,
其中0 = JTAG,1 = SWD。
电源开关电源为目标。语法:电源[烫发]
州是开或关。例如:上电
wconf写配置字节。语法:wconf,
rconf读取配置字节。语法:rconf
usbaddr将usb地址分配给所连接的J-Link:语法:usbaddr =
ipaddr显示/分配连接的J-Link的/的IP地址和子网掩码。
gwaddr显示/分配连接的J-Link网络网关地址。
dnsaddr显示/分配连接的J-Link的网络DNS服务器地址/。
conf显示连接的J-Link的配置。
ecp启用J-Link控制面板。
校准校准目标电流测量。
----------------------
注意:在命令行中指定文件名
将在脚本模式下启动J-Link Commander。
总结一下我们使用的最多的命令:
USB --------连接目标板
[R ----------重启目标板
停止-------停止CPU运行的程序
loadbin ----加载可执行的二进制文件
g ----------跳到代码段地址执行
s ----------单步执行(调试用)
setpc -----设置pc寄存器的值(调试用)
setbp -----设置断点
-------暂存器读寄存器组织
WREG -------写寄存器
MEM --------读内存
W4 ---------写内存
关闭mmu ---关闭mmu,这个对于裸板调试很重要
w4 cpsr,0x0000001f ------切换到系统模式
速度------设置jtag的传输速率
rce 0,c0,c0,0 -----设置cp15寄存器的第1个寄存器为0