硬件看门狗和软件看门狗有什么区别?

时间:2013-09-17 08:58:42

标签: embedded microcontroller watchdog

硬件看门狗和软件看门狗有什么区别?

2 个答案:

答案 0 :(得分:10)

硬件看门狗是硬件。软件看门狗是软件。对于硬件看门狗,有硬件,如果它没有经常被踢,将假设软件已挂起并将通常或任何设计要求重置系统。假设硬件比软件更可靠。对于软件监视程序,假设一个软件任务/线程/被认为比另一个更可靠,如果可疑代码无法启动可靠代码,则可靠代码会杀死可疑代码(或设计所指示的任何代码)。如果可疑代码由于硬件而失败则存在问题,该硬件可能会取消包括软件监视器在内的所有代码。因此,只有当监视程序以比所讨论的任务更可靠的方式运行时,软件监视程序才有用,例如,它可能用于阻止任务从其内存空间中移出并获得保护错误(你可以在故障处理程序中看到它而不是设置看门狗,但无论如何)......

答案 1 :(得分:9)

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

最终结果是SW看门狗无法响应整个系统崩溃。

典型的编程模型是:

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"]