语境:
我目前正在研究 NXP i.MX8M Mini 内的 ARM Cortex-M4。我能够在 Ubuntu VM 上的 Eclipse IDE 上为 M4 编译一个项目。我还可以将二进制文件下载到 M4 并使用 SEGGER Flasher ARM 探针、J-Link GDB 服务器和 GDB 客户端启动它。
问题:
我现在要做的是在我的代码中放置断点。当我使用断点开始调试时,执行将在所需的行处停止。但是,当我在 Eclispe 上单击“恢复”时,CPU 会循环重新启动,并且在我完成调试会话之前不会停止。
以下是我在 Eclipse 控制台上的日志:
在点击“继续”之前
SEGGER J-Link GDB Server V7.58b Command Line Version
JLinkARM.dll V7.58b (DLL compiled Nov 16 2021 15:04:27)
Command line: -if jtag -device MIMX8MM6_M4 -endian little -speed auto -port 2331 -swoport 2332 -telnetport 2333 -vd -ir -localhostonly 1 -singlerun -strict -timeout 0 -nogui
[...]
Reading all registers
Setting breakpoint @ address 0x80000DFE, Size = 2, BPHandle = 0x0001
Starting target CPU...
...Breakpoint reached @ address 0x80000DFE
Reading all registers
Removing breakpoint @ address 0x80000DFE, Size = 2
Read 4 bytes @ address 0x80000DFE (Data = 0xFE45F7FF)
Reading 64 bytes @ address 0x803FFFC0
Read 4 bytes @ address 0x80000DFE (Data = 0xFE45F7FF)
Read 4 bytes @ address 0x80000DFE (Data = 0xFE45F7FF)
点击“继续”后
Starting target CPU...
...Breakpoint reached @ address 0x80000DFE
Reading all registers
Starting target CPU...
...Breakpoint reached @ address 0x80000DFE
Reading all registers
Starting target CPU...
...Breakpoint reached @ address 0x80000DFE
Reading all registers
Starting target CPU...
...Breakpoint reached @ address 0x80000DFE