13

what is the difference between hardware watchdog and software watchdog ?

4

2 回答 2

15

硬件看门狗是硬件。软件看门狗是软件。对于硬件看门狗,如果没有足够频繁地启动硬件,则会假定软件已挂起,并且通常会重置系统或按照设计要求进行重置。假设硬件比软件更可靠。对于软件看门狗,假设一个软件任务/线程/任何东西比另一个更可靠,如果有问题的代码无法踢出可靠的代码,那么可靠的代码会杀死有问题的代码(或任何设计要求的)。如果有问题的代码由于硬件导致所有代码(包括软件看门狗)失效,则会出现问题。因此,软件看门狗只有在看门狗以比相关任务更可靠的方式运行时才有用,

于 2013-09-17T14:30:31.697 回答
10

如果软件没有(定期)阻止关机,硬件看门狗会自动重置系统;SW 看门狗 OTOH 只能在给定 CPU 时间时做某事。因此,它必须定期检查系统是否需要复位,并通过编程硬件做出响应。

最终结果是软件看门狗可能无法响应整个系统崩溃。

典型的编程模型是:

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-17T10:02:09.450 回答