-
-
binchen1120 | 当前状态:离线
总积分:705 2024年可用积分:0
注册时间: 2008-10-26
最后登录时间: 2012-10-09
-
单片机编程经验 2
binchen1120 发表于 2008/11/21 20:28:58 703 查看 0 回复 [上一主题] [下一主题]
手机阅读
关于软件狗的讨论,论坛上多矣。匠人也曾经查阅过许多关于软件狗的文章。有些大师确实提出了一些比较有技巧性的方法。但是,匠人的忠告是:不要轻信软件狗!其实,软件狗相当于软件的一种自律行为。一般的思路都是通过设立一个计数器,在计时中断中对其+1,在主程序的适当地方对其清零。如果程序失控了,清零指令未被执行,但中断造常发生,则计数器溢出(狗狗叫了)。但是这里有个问题:万一干扰导致中断被屏蔽了,那软件狗就永远不会叫了!——针对这种可能,有人提出在主程序中反复刷新中断使能标志,保证不让中断被屏蔽。——但万一程序飞到某个死循环中去了,不再执行“刷新中断使能标志”这一功能了,还是有可能把狗狗活活饿死。
所以,匠人的观点是:看门狗必须拥有独立的计数器。(即硬件看门狗)好在现在好多芯片都提供了内部WDT。这种狗都是自带计数器的。即使干扰导致程序失控,WDT还是会造常计数直到溢出。当然,匠人也没有要将软件狗一棍子全部打死的意思。毕竟不管是软狗还是硬狗,逮到耗子就是好狗嘛(狗拿耗子——多管闲事?)。如果哪位训狗专家确实养过一条能看门的好软件狗,请牵出来让大伙瞧瞧。