ARM Coresight DS-5 系列 3 - DS-5 断点设置及常用Debug 命令

文章目录

    • 1.1 DS-5 Debug 方法梳理
      • 1.2.1 DS-5 设置断点 Debug
      • 1.2.2 DS-5 常用 Debug 命令

上篇文章:ARM Coresight DS-5 系列 2 - ARM Cortex-M DS-5 Trace 使用
下篇文章:ARM Coresight DS-5 系列 4 - ARM Cortex-M DS-5 加载 ELF 文件运行

1.1 DS-5 Debug 方法梳理

通常在调试过程中需要打断点来进行单步调试,这个时候可以按照下面步骤来进行:

  • 在使用 DS-5 Debug 之前需要先 load 所编译的 elf 文件:
    ARM Coresight DS-5 系列 3 - DS-5 断点设置及常用Debug 命令_第1张图片

  • 设置好路径:
    ARM Coresight DS-5 系列 3 - DS-5 断点设置及常用Debug 命令_第2张图片
    ARM Coresight DS-5 系列 3 - DS-5 断点设置及常用Debug 命令_第3张图片

1.2.1 DS-5 设置断点 Debug

在上面完成 elf 文件的 load 及 路径设置后,我们就可以使用DS-5进行设置断点进行调试了。下面以 在 i2c_debug.c 中的 i2c_debug函数中

简单设置一个断点来介绍:
ARM Coresight DS-5 系列 3 - DS-5 断点设置及常用Debug 命令_第4张图片

1.2.2 DS-5 常用 Debug 命令

1)查看寄存器命令

info registers
R0          0x200C4EDE
R1          0x000B6E24
R2          0x00000067
R3          0x00000073
R4          0xDEADBEEF
R5          0xDEADBEEF
R6          0xDEADBEEF
R7          0x200C5F58
R8          0xDEADBEEF
R9          0xDEADBEEF
R10         0xDEADBEEF
R11         0xDEADBEEF
R12         0x00000008
SP          0x200C5F58
SP_MAIN     0x2001F4C8
SP_PROCESS  0x200C5F58
LR          0x0001970F
PC          0x0005D258
xPSR        0x81010000   Nzcvq_T_inactive_0
PRIMASK     0x00000000
BASEPRI     0x00000000
FAULTMASK   0x00000000
CONTROL     0x00000006

2)查看 memory/寄存器命令

x/w 0x56020000
0x56020000:  0x00000000

3)查看函数栈

info stack
#0 rt_strcmp(cs = 0x200C4EE1 "get", ct = 0xB6E27 "set") at kservice.c:468
#1 i2c_debug_mode_help(argc = 5, mode = 0x200C4EDE "i2cget") at i2c_debug.c:64
#2 i2c_debug(argc = 5, argv = (char**) 0x200C601C) at i2c_debug.c:89
#3 _msh_exec_cmd(cmd = 0x200C4EDE "i2cget", length = 22, retp = (int*) 0x200C6078) at msh.c:342
#4 msh_exec(cmd = 0x200C4EDE "i2cget", length = 22) at msh.c:402
#5 finsh_thread_entry(parameter = (void*) 0x0) at shell.c:722
#6 _rt_thread_exit() at thread.c:105


backtrace -5
#2 i2c_debug(argc = 5, argv = (char**) 0x200C601C) at i2c_debug.c:89
#3 _msh_exec_cmd(cmd = 0x200C4EDE "i2cget", length = 22, retp = (int*) 0x200C6078) at msh.c:342
#4 msh_exec(cmd = 0x200C4EDE "i2cget", length = 22) at msh.c:402
#5 finsh_thread_entry(parameter = (void*) 0x0) at shell.c:722
#6 _rt_thread_exit() at thread.c:105
  1. 内存写操作
memory set 0x66020000 32 0x1
x/w 0x66020000
0x66020000:  0x00000001

上篇文章:ARM Coresight DS-5 系列 2 - ARM Cortex-M DS-5 Trace 使用
下篇文章:ARM Coresight DS-5 系列 4 - ARM Cortex-M DS-5 加载 ELF 文件运行

你可能感兴趣的:(#,ARM,Coresight,DS-5,系列,arm开发,DS5,DS-5,ds5,debug)