【发布时间】:2021-04-24 22:09:00
【问题描述】:
我正在尝试使用 gdb 在目标 MCU 上调试 ARM 闪存程序
我正在使用jlinkgdbserver 在目标系统 (cortex-m7) 上设置 gdbserver。我已经准备好调试精灵了。
第一次用下面的方法调试就可以了
> arm-none-eabi-gdb flash_program.elf
(gdb)> target remote localhost:2331 # connect to gdb server on target
(gdb)> load # since it is a flash program, jlink will flash the program
# target is reset to elf entry point
(gdb)> .... (debugging begins)
但是,当调试到某个地方时,我想再次从入口点调试,我想出的方法是再次刷新
(gdb)> Ctrl+D # disconnect the gdbserver
> arm-none-eabi-gdb flash_program.elf
(gdb)> target remote localhost:2331
(gdb)> load
(gdb)> .... (debugging from start again)
所以这似乎有点多余,而且它一次又一次地擦除和编程相同的闪存区域,我担心我最终会通过调试损坏存储。
flash 程序已经烧录到介质中,我只是想让目标重新设置自己并再次从入口点运行。但我尝试了monitor reset 和run 之类的东西。但是目标M7不能从头再来。
还有其他的 gdb 命令可以尝试吗?
【问题讨论】:
-
您使用的 Cortex-M7 的品牌/型号是什么?这将有助于为您提供准确的答案。
标签: debugging gdb gdbserver segger-jlink