MDK-KEIL 调试神器: 不产生硬件复位的情况下debug运行中的设备

本文介绍了在嵌入式设备运行过程中,如何避免复位影响而进行单步调试的方法,通过取消某些选项并使用load.ini文件中的LOAD%INCREMENTAL指令,可以在不破坏寄存器数据的情况下进入调试模式。

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

        嵌入式老鸟们,不知道你是否有这样的经历,测试的设备运行一段时间,可能半个月、可能半年都没啥问题,突然它就死机或运行错误,这种时候想排查问题,除了看日志,恐怕就只有进入单步调试的模式看寄存器状态。

        问题来了,进入调试时设备复位的经历你肯定有过,但在这里,复位就碍事了,怎么办?运行中的设备,能不能不产生复位且不破坏寄存器已有数据的情况下,进入调试?可以的。


如果你取消勾选下图中这几个选项,那么debugger启动时不会执行硬件复位:

  • Options For Target - Debug - Load Application at startup

  • Options For Target - Debug - Settings - Reset after connect (with Options For Target - Debug - Settings - Connect selected as NORMAL)

  • Options For Target - Utilities - Update Target before Debugging

因为Options For Target - Debug - Load Application at startup没有勾选,debugger没有任何应用程序和调试信息。可以新建一个load.ini文件,里面只要一句话:

LOAD %L INCREMENTAL

上面几步做完,点击调试按键,debugger启动,会在程序计数器当前运行到的位置停住。之后就可以分析内存数据了。【千万不要去点击下载按钮,不然功亏一篑,设备运行情况被破坏了】

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值