本文主要是介绍单片机死机,按键复位失效,看门狗失效,必须断电重启,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近在进行硬件程序老化测试的时候,发现程序偶尔会复位,运行几天后,还会出现死机的情况。尝试按下复位按键,程序在运行初始打印一行开机log后继续死机。断电重启后,程序重新正常运行。
一开始判断是硬件“死锁”问题,造成这种情况的主要原因是单片机的某些引脚有强干扰侵入,应采取限流及各种抗干扰措施。
但是考虑到按键复位虽然会死机,但是还是打印了一行开机log,进而判断也有可能是程序问题。因为我是使用的freeRTOS操作系统,当初由于任务分配的堆栈较小,也曾导致程序无法运行(程序一开始运行一小段代码后无法运行,且按键复位后也是运行一小段代码就停止),和目前的情况比较相似,唯一的区别就是目前的代码会运行几天后停止。
目前在代码中添加了堆栈监测,现在怀疑是代码中某个地方在不停的消耗堆栈空间,等出结果了再进行博客更新。
2021-3-15最新更新:增加任务堆栈内存后,设备一直在正常运行中
这篇关于单片机死机,按键复位失效,看门狗失效,必须断电重启的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!