单片机死机后在不破坏现场的情况下连接调试器进入调试模式

时间:2024-10-16 19:35:10

经常遇到程序在现场卡死了,但是这个时候没有连接调试器,不好找死机原因。
下面说下在程序卡死的时候,在不破坏死机现场的情况下,连接上调试器进行程序调试的方法。

把调试器连接电脑,打开keil做下面的配置,调试器先不要连接单片机,配置完后再连。

首先第一步,把Load Application at Startup勾选框去掉,这个勾选框的意思是启动调试的时候要重新加载程序,这个过程会导致单片机复位从而破坏现场。
在这里插入图片描述

第二步,把Reset after Connect勾选框取消,这个勾选框的意思是当调试器连接上单片机会复位单片机。
在这里插入图片描述

第三步,选择Do not Erase,并且Program、Verify、Reset and Run都不要勾。
在这里插入图片描述

配置完后,就可以用调试器连接单片机了。
连接后点调试按钮进入调试。
在这里插入图片描述
进来后会发现,单片机处于程序暂时状态没有复位,点击Run程序会继续运行,单步调试只能看到汇编窗口在走,C语言窗口没有反应,并且C语言窗口也不能打断点,说明只有汇编跟单片机关联上了,但是C语言还没有关联上。

这个时候在Command窗口输入

LOAD %L INCREMENTAL

执行后,C语言窗口就关联上了,也可以打断点了,这个时候就可以寻找死机的原因了。
在这里插入图片描述