白旭的博客欢迎您

既然选择了远方,便只顾风雨兼程!

18.25 JLink调试程序步骤

S3C2440开发板启动时候选择NandFlash启动,然后输入如下命令:

  r                                 /*复位cpu*/

  h                                /*暂停CPU*/    

  loadbin e:/les.bin 0 /*下载e目录下的leds.bin到0地址*/

  setpc 0                       /*设置pc执行地址为下载代码的地址0*/

  s                                 /*单步调试*/

  regs                            /*查看寄存器是否和预想的一样*/

  s                                 /*继续单步调试*/

  每执行一行s,会弹出一个PC=xxxx的地址,

  这是还未执行的,PC当前指向的地址

 

 1   mem 30000000 8       /*从30000000地址读取8位数据*/
 2 
 3   J-Link>mem 30000000 4    /*用于测试内存是否完成初始化*/
 4 
 5   30000000 = 01 DA A0 E3
 6 
 7   从低位到高位读
 8 
 9   J-Link>w4 30000000 0x12345678 /*在0x30000000写16位数据*/
10 
11   J-Link>mem 30000000 4
12 
13   30000000 = 78 56 34 12

  本次调试所用到的命令:

 1 h          halt
 2 g          go
 3 s          Single step the target chip
 4 mem        Read memory.           Syntax: mem  <Addr>, <NumBytes> (hex)
 5 w1         Write  8-bit items. Syntax: w1 <Addr>, <Data> (hex)
 6 w2         Write 16-bit items. Syntax: w2 <Addr>, <Data> (hex)
 7 w4         Write 32-bit items. Syntax: w4 <Addr>, <Data> (hex)
 8 q          Quit
 9 qc         Close JLink connection and quit
10 r          Reset target         (RESET)
11 Regs       Display contents of registers
12 wreg       Write register.   Syntax: wreg <RegName>, <Value>
13 SetBP      Set breakpoint.   Syntax: SetBP <addr> [A/T] [S/H]
14 SetWP      Set Watchpoint. Syntax: <Addr> [R/W] [<Data> [<D-Mask>] [A-Mask]]
15 ClrBP      Clear breakpoint. Syntax: ClrBP  <BP_Handle>
16 ClrWP      Clear watchpoint. Syntax: ClrWP  <WP_Handle>
17 loadbin    Load binary file into target memory.
18              Syntax: loadbin <filename>, <addr>
19 SetPC      Set the PC to specified value. Syntax: SetPC <Addr>
20 ---- JTAG ------------
21 Config     Set number of IR/DR bits before ARM device.
22              Syntax: Config <IRpre>, <DRpre>
23 speed      Set JTAG speed. Syntax: speed <freq>|auto|adaptive, e.g. speed 2000,
24 i          Read JTAG Id (Host CPU)
25 
26 Jlink 命令调试-断点/条件断点
27 
28 普通断点:
29 
30 通常使用的普通断点的添加方法:SetBP <addr> [A/T] [S/H]
31 条件断点:
32 
33 watch point, 可以视为一种条件断点。
34   设置变量变为指定值时触发的断点:
35 setWP <addr> [<accesstype>] [<size>] [<data> [<data mask> [<addr mask>]]]
36 for example: 当变量m_marsh_test变为0xDEADBEEF时触发
37 通过map文件得到m_marsh_test的变量地址为0x20004f58;
38 setWP 0x20004f58 W S32 0xDEADBEEF 0 0

  调试要对汇编语言有充分的理解,.dis的反汇编文件作为调试中的重要参考文件。


 

posted on 2019-04-21 08:08  小学生_白旭  阅读(1977)  评论(0编辑  收藏  举报

导航