这段时间在用jlink调试freescale的mx51板子,下面将使用jlink的方法在此做一个笔记。
jlink是segger公司的产品,由于正版的工具巨贵,所以现在大部分人都喜欢用山寨版的jlink,幸运的是我的山寨版jlink支持arm cortex a8,所以能调试mx51板子。
jlink的官方提供调试软件和驱动,调试软件有jlink commander(j-tag调试)、j-mem(内存查看)、j-flash(flash烧写)等。我主要用到的是jlink commander,以下是它的命令集:
SEGGER J-Link Commander V4.20h ('?' for help)
Compiled Oct 5 2010 19:11:57
DLL version V4.20h, compiled Oct 5 2010 19:11:41
Firmware: J-Link ARM V8 compiled Oct 5 2010 08:59:59
Hardware: V8.00
S/N: 20100214
Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFull
VTarget = 3.280V
Info: TotalIRLen = ?, IRPrint = 0x..FFFFFFFFFFFFFFFFFFFFFFF1
WARNING: CPU core not found.
No devices found on JTAG chain. Trying to find device on SWD.
WARNING: CPU core not found.
****** Error: Parity error (Data = 0xFFFFFFFF, ReceivedParity = 1)
No device found on SWD.
Did not find any core.
Info: TotalIRLen = 9, IRPrint = 0x0011
Found 2 JTAG devices, Total IRLen = 5:
#0 Id: 0x2B900F0F, IRLen: 04, IRPrint: 0x0, ARM ETB
#1 Id: 0x07B76F0F, IRLen: 05, IRPrint: 0x1, ARM1176 Core
ARM11 identified.
Available commands are:
----------------------
f Firmware info
h halt
g go
Sleep Waits the given time (in milliseconds). Syntax: Sleep
s Single step the target chip
st Show hardware status
hwinfo Show hardware info
mem Read memory. Syntax: mem
, (hex)mem8 Read 8-bit items. Syntax: mem8
, (hex)mem16 Read 16-bit items. Syntax: mem16
, (hex)mem32 Read 32-bit items. Syntax: mem32
, (hex)w1 Write 8-bit items. Syntax: w1
, (hex)w2 Write 16-bit items. Syntax: w2
, (hex)w4 Write 32-bit items. Syntax: w4
, (hex)wm Write test words. Syntax: wm
is Identify length of scan chain select register
ms Measure length of scan chain. Syntax: ms
mr Measure RTCK react time. Syntax: mr
q Quit
qc Close JLink connection and quit
r Reset target (RESET)
rx Reset target (RESET). Syntax: rx
RSetType Set the current reset type. Syntax: RSetType
Regs Display contents of registers
wreg Write register. Syntax: wreg ,
SetBP Set breakpoint. Syntax: SetBP
[A/T] [S/H]SetWP Set Watchpoint. Syntax:
[R/W] [ [] [A-Mask]]ClrBP Clear breakpoint. Syntax: ClrBP
ClrWP Clear watchpoint. Syntax: ClrWP
VCatch Write vector catch. Syntax: VCatch
loadbin Load binary file into target memory.
savebin Saves target memory into binary file.
SetPC Set the PC to specified value. Syntax: SetPC
le Change to little endian mode
be Change to big endian mode
log Enables log to file. Syntax: log
unlock Unlocks a device. Syntax: unlock
Type unlock without to get a list
of supported device names.
nRESET has to be connected
---- CP15 ------------
rce Read CP15. Syntax: rce , , ,
wce Write CP15. Syntax: wce , , , ,
---- ICE -------------
Ice Show state of the embedded ice macrocell (ICE breaker)
ri Read Ice reg. Syntax: ri (hex)
wi Write Ice reg. Syntax: wi , (hex)
---- ETM -------------
etm Show ETM status
re Read ETM reg. Syntax: re
we Write ETM reg. Syntax: we , (hex)
es Start trace
---- ETB -------------
etb Show ETB status
rb Read ETB register. Syntax: rb
wb Write ETB register. Syntax: wb , (hex)
---- TRACE -----------
TAddBranch TRACE - Add branch instruction to trace buffer. Paras:
,TAddInst TRACE - Add (non-branch) instruction to trace buffer. Syntax:
TClear TRACE - Clear buffer
TSetSize TRACE - Set Size of trace buffer
TSetFormat TRACE - SetFormat
TSR TRACE - Show Regions (and analyze trace buffer)
TStart TRACE - Start
TStop TRACE - Stop
---- SWO -------------
SWOSpeed SWO - Show supported speeds
SWOStart SWO - Start
SWOStop SWO - Stop
SWOStat SWO - Display SWO status
SWORead SWO - Read and display SWO data
SWOShow SWO - Read and analyze SWO data
SWOFlush SWO - Flush data
---- File I/O --------
fwrite Write file to emulator
fread Read file from emulator
fshow Read and display file from emulator
fdelete Delete file on emulator
fsize Display size of file on emulator
---- Test ------------
thg Run go/halt 1000 times
ts Run step 1000 times
testwspeed Test download speed. Syntax: testwspeed [
[]]testrspeed Test upload speed. Syntax: testrspeed [
[] [s>]]
testcspeed Test CPU speed. Syntax: testcspeed []
---- JTAG ------------
Config Set number of IR/DR bits before ARM device.
Syntax: Config ,
speed Set JTAG speed. Syntax: speed |auto|adaptive, e.g. speed 2000,
speed a
i Read JTAG Id (Host CPU)
wjc Write JTAG command (IR). Syntax: wjc (hex)
wjd Write JTAG data (DR). Syntax: wjd (hex), (dec)
RTAP Reset TAP Controller using state machine (111110)
wjraw Write Raw JTAG data. Syntax: wjraw , ,
rt Reset TAP Controller (nTRST)
---- JTAG-Hardware ---
c00 Create clock with TDI = TMS = 0
c Clock
0 Clear TDI
1 Set TDI
t0 Clear TMS
t1 Set TMS
trst0 Clear TRST
trst1 Set TRST
r0 Clear RESET
r1 Set RESET
---- Connection ------
usb Connect to J-Link via USB. Syntax: usb
, where port is 0..3ip Connect to J-Link ARM Pro or J-Link TCP/IP Server via TCP/IP.
Syntax: ip
---- Configuration ---
si Select target interface. Syntax: si ,
where 0=JTAG and 1=SWD.
power Switch power supply for target. Syntax: power [perm],
where State is either On or Off. Example: power on perm
wconf Write configuration byte. Syntax: wconf ,
rconf Read configuration bytes. Syntax: rconf
usbaddr Assign usb address to the connected J-Link: Syntax: usbaddr =
ipaddr Show/Assign IP address and subnetmask of/to the connected J-Link.
gwaddr Show/Assign network gateway address of/to the connected J-Link.
dnsaddr Show/Assign network DNS server address of/to the connected J-Link.
conf Show configuration of the connected J-Link.
ecp Enable the J-Link control panel.
calibrate Calibrate the target current measurement.
----------------------
NOTE: Specifying a filename in command line
will start J-Link Commander in script mode.
总结一下我们使用的最多的命令:
usb--------连接目标板
r----------重启目标板
halt-------停止cpu运行的程序
loadbin----加载可执行的二进制文件
g----------跳到代码段地址执行
s----------单步执行(调试用)
setpc-----设置pc寄存器的值(调试用)
setbp-----设置断点
Regs-------读寄存器组织
wreg-------写寄存器
mem--------读内存
w4---------写内存
power off mmu---关闭mmu,这个对于裸板调试很重要
w4 cpsr,0x0000001f------切换到系统模式
speed------设置jtag的传输速率
rce 0,c0,c0,0-----设置cp15寄存器的第1个寄存器为0
完结。
阅读(31404) | 评论(2) | 转发(3) |