18.25 JLink调试程序步骤

本文详细介绍S3C2440开发板使用J-Link进行调试的过程,包括复位CPU、下载代码、设置执行地址、单步调试等操作,同时介绍了如何使用J-Link命令读写内存、设置断点及条件断点,并强调了理解汇编语言的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的反汇编文件作为调试中的重要参考文件。


 

转载于:https://www.cnblogs.com/baixu/p/10743783.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值