软件抗搅扰经历之二、不要轻信软件狗
关于软件狗的评论,论坛上多矣。
匠人也从前查阅过许多关于软件狗的文章。有些大师的确提出了一些比较有技巧性的办法。
可是,匠人的劝告是:不要轻信软件狗!
其实,软件狗相当于软件的一种自律行为。一般的思路都是经过建立一个计数器,在计时中止中对其+1,在主程序的恰当当地对其清零。假如程序失控了,清零指令未被履行,但中止造常产生,则计数器溢出(狗狗叫了)。
可是这里有个问题:假如搅扰导致中止被屏蔽了,那软件狗就永久不会叫了!——针对这种或许,有人提出在主程序中重复改写中止使能标志,确保不让中止被屏蔽。——但假如程序飞到某个死循环中去了,不再履行“改写中止使能标志”这一功用了,仍是有或许把狗狗活活饿死。
所以,匠人的观念是:看门狗有必要具有独立的计数器。(即硬件看门狗)
好在现在很多芯片都供给了内部WDT。这种狗都是自带计数器的。即便搅扰导致程序失控,WDT仍是会造常计数直到溢出。
当然,匠人也没有要将软件狗一棍子悉数打死的意思。究竟不管是软狗仍是硬狗,逮到耗子便是好狗嘛(狗拿耗子——多管闲事?)。假如哪位训狗专家的确养过一条能看门的好软件狗,请牵出来让大伙瞧瞧。