我的知乎原文
一开始我也不太理解看门狗的概念,这在非嵌入式软件开发里是用不到的。你没法想象专门写一段代码是用来让程序reset的,有毛病?!可在嵌入式开发里确是必要的。最大的原因就是嵌入式软件大多跟底层直接打交道这会导致各种不可软恢复的未知问题,隐蔽且原因五花八门。你可以改善软件逻辑来尽量避免这些问题。可你不能保证一定不会出现奇怪的问题。比如代码进入了一个无意义的死循环,或者电涌导致程序跑飞。那么如何解决?看门狗就是统一解决这种问题的,方法暴力但有效,就是重启cpu。你的程序需要在正常代码中埋入定期喂狗的处理,也就是定期通知看门狗我还活着可别重启呀!如果到时间没有喂狗,硬件看门狗就会认为你出事儿了,于是毫不留情的强制重启。你知道的,以前在网吧电脑出事儿了老板就会使用重启大法,简单暴力但好用。

Last modification:August 13, 2020
If you think my article is useful to you, please feel free to appreciate