欢迎光临
我们一直在努力

程序跑着跑着为什么会“假死”,看门狗为什么也救不了?

嵌入式设备最让人头疼的一类故障,往往不是“上电就不能运行”,而是:

刚开始一切正常,运行几个小时甚至几天以后,突然没有任何响应。

通信停止了,按键没反应,控制逻辑也不再运行。

但奇怪的是:

按一下复位键,设备马上又恢复正常。

于是工程师通常会想到:

“是不是程序死循环了?”

然后再加一个看门狗:

程序异常
↓
看门狗超时
↓
自动复位
↓
系统恢复

结果实际设备运行后:

还是会卡死。

更奇怪的是,人工按复位按钮却能够恢复。

这类问题说明,不能简单把它归结为“代码死循环”。

真正需要回答的是三个问题:

系统到底有没有真正崩溃?

看门狗到底有没有正常运行?

为什么硬件复位可以恢复,而看门狗没有恢复?

把这三个问题拆开,很多看似玄学的“偶发死机”,其实都能找到明确的故障路径。


一、第一件事:先搞清楚“上一次为什么复位”

嵌入式系统发生异常后,最宝贵的信息往往不是重新启动后的程序,而是:

赞(0)
未经允许不得转载:171主机测评 » 程序跑着跑着为什么会“假死”,看门狗为什么也救不了?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址