硬件看门狗和软件看门狗有什么区别?
发布于 2013-09-17 18:02:09
如果软件没有(定期)阻止关机,硬件监视器会自动重置系统;软件监视器OTOH只能在给定CPU时间时执行某些操作。因此,它必须定期检查系统是否需要复位,并通过对HW进行编程来响应。
最终结果是,SW watchdog可能无法响应整个系统崩溃。
典型的编程模型有:
HW watchdog: [HW circuit] <-- [low priority timer interrupt postponing reset]
--
vs.
--
SW watchdog: [Low priority SW process feeding SW Watchdog]
+ [High priority SW process requiring "food"]发布于 2013-09-17 22:30:32
硬件看门狗就是硬件。软件看门狗就是软件。对于硬件看门狗来说,如果硬件被踢得不够频繁,它将假定软件已挂起,并将通常或任何设计指示重置系统。硬件被认为比软件更可靠。对于软件看门狗来说,一个软件任务/线程/任何被认为比另一个更可靠的软件任务/线程/任何东西,如果有问题的代码不能踢开可靠的代码,那么可靠的代码就会杀死有问题的代码(或者设计规定的任何东西)。如果有问题的代码由于硬件而失败,那么就会出现问题,因为硬件可能会关闭所有代码,包括软件watchdog。因此,只有当你让看门狗以一种比相关任务更可靠的方式运行时,软件看门狗才是有用的,例如,它可能是为了防止任务超出其内存空间并获得保护故障(您可以在故障处理程序中只关注它,而不是设置看门狗,但不管怎样)。
https://stackoverflow.com/questions/18845464
复制相似问题