GDB 和 OpenOCD - 调试结束后重置或恢复
Posted
技术标签:
【中文标题】GDB 和 OpenOCD - 调试结束后重置或恢复【英文标题】:GDB and OpenOCD - reset or resume after end of debugging 【发布时间】:2015-03-28 18:30:26 【问题描述】:我正在使用 Eclipse + GDB 硬件调试 + OpenOCD + STM32F4DISCOVERY(通过 ST-LINK)
一切正常。
调试完成后,目标CPU仍处于Halt模式。 如何使debug(Terminate press)后目标CPU复位或继续工作?
【问题讨论】:
猜测:尝试断开(分离)而不是终止。 【参考方案1】:我是这样做的:
-
编写通过 Telenet 连接到 OpenOCD 并执行运行或重置命令的 bash 脚本。
-
通过eclipse的external-tools-feature运行脚本
可以创建一个启动组,在调试后将脚本作为外部工具运行。
这是一个脚本示例:
#!/bin/bash
echo "reset halt";
echo "reset run";
| telnet localhost 4444
【讨论】:
谢谢,我会尽快尝试并报告结果。【参考方案2】:我将 openocd 配置为在 gdb 会话结束时恢复执行。
创建 openocd-gdb.cfg 包含:
$_TARGETNAME configure -event gdb-detach
resume
加载文件,在目标文件之后,运行 openocd 时:
openocd -f target/stm32f4.cfg -f openocd-gdb.cfg
【讨论】:
以上是关于GDB 和 OpenOCD - 调试结束后重置或恢复的主要内容,如果未能解决你的问题,请参考以下文章
arm-none-eabi-gdb 和 openocd:对偏移量查询、qOffsets 的错误响应?