Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1152916
  • 博文数量: 222
  • 博客积分: 5262
  • 博客等级: 大校
  • 技术积分: 3028
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-22 19:10
文章分类

全部博文(222)

文章存档

2012年(2)

2011年(192)

2010年(28)

分类: 嵌入式

2011-04-08 18:02:22

   这段时间在用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.

J-Link>
  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.
             Syntax: loadbin ,
savebin    Saves target memory into binary file.
             Syntax: savebin , ,
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..3
ip         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) |
给主人留下些什么吧!~~

inurl2014-02-19 08:50:09

楼主主要用jlink调试A8的什么程序呢?

leilei_wang2011-07-18 11:09:08

请问下,你用来调试IMX51的山寨JLINK的牌子型号是什么?我也想买一个。