Embedded 硬件看门狗和软件看门狗的区别是什么?

Embedded 硬件看门狗和软件看门狗的区别是什么?,embedded,microcontroller,watchdog,Embedded,Microcontroller,Watchdog,硬件看门狗和软件看门狗的区别是什么?如果软件没有(定期)阻止关机,硬件看门狗会自动重置系统;SW看门狗OTOH只能在给定CPU时间的情况下执行某些操作。因此,它必须定期检查系统是否需要重置,并通过编程HW对其作出响应 最终结果是软件看门狗可能无法对整个系统崩溃做出响应 其中的典型编程模型有: HW watchdog: [HW circuit] <-- [low priority timer interrupt postponing reset] -- vs. -- SW watchd

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

如果软件没有(定期)阻止关机,硬件看门狗会自动重置系统;SW看门狗OTOH只能在给定CPU时间的情况下执行某些操作。因此,它必须定期检查系统是否需要重置,并通过编程HW对其作出响应

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

其中的典型编程模型有:

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

硬件看门狗:[HW电路]硬件看门狗就是硬件。软件看门狗就是软件。对于硬件看门狗来说,有一些硬件如果踢得不够频繁,就会认为软件挂起,通常会重置系统,或者按照设计的要求重置系统。假设硬件比软件更可靠。对于一个软件看门狗,一个软件任务/线程/任何被认为比另一个更可靠的东西,如果有问题的代码不能踢出可靠的代码,那么可靠的代码就会杀死有问题的代码(或者设计要求的任何东西)。如果有问题的代码由于硬件故障而出现问题,这可能会导致包括软件看门狗在内的所有代码失效。因此,软件看门狗只有在看门狗的运行方式比所讨论的任务更可靠时才有用,例如,它可能在那里防止任务超出其内存空间并出现保护故障(您可以在故障处理程序中观察,而不是设置看门狗,但无论如何).

1)这(软件看门狗)是否意味着即使没有看门狗定时器硬件,也可以采用看门狗机制?2) 什么是OTOH?1)是的,这意味着如果软件看门狗是一个有效的概念,它必须通过确实存在的方式模拟不存在的硬件。这假定至少有一个定时中断。2) OTOH='另一方面'是微控制器内部的看门狗定时器(HW)?您必须查阅微控制器的参考表。如今,WD定时器可以成为任何SoC的重要组成部分;但是,将WD功能外部化在一个单独的单元中也是有意义的,该单元集成了RTC和电源管理等功能,因为系统的不同部分可能需要在不同阶段关闭。在许多情况下,我在阅读了更具体的第16.2.2.1节后,逐渐感到SWT(软件看门狗定时器)的“软件”部分具有误导性,硬件和看门狗方法可以结合使用。例如,许多系统只有一个或最多两个硬件看门狗,但“馈送”这些硬件看门狗的例程也可以确保许多其他应该发生的事情实际上正在发生。