0

Watchdog在带有中断服务程序的嵌入式代码中,复位应该在哪里?

在主循环中,还是在中断服务部分?

4

1 回答 1

0

这取决于您的架构和要求。

通常,看门狗定时器是一种硬件,它是微控制器或处理器的一部分,通过软件配置超时值。如果处理器挂起或遇到一些死锁条件,并且在为看门狗配置的超时值内没有恢复,处理器将被重置。因此,看门狗定时器硬件将与处理器复位信号相关联。您还可以通过在用于看门狗复位的复位向量中设置相应的调试日志/断点来检查这一点。

另外,请注意,在某些架构中,看门狗定时器可以有一个单独的中断向量,因此可能有一个单独的 wdt/特殊向量,它只执行选择性的复位级别,而不是硬件的完全复位。

因此,WDT 的使用取决于架构和要求。

在某些体系结构中,WDT 在后台可能具有低优先级。如果您无法在后台运行,那么除了前面提到的其他场景(如死锁/挂起)之外,您可能需要显式触发某些意外情况。因此,从 main 中作为单独的线程/isr/调用运行取决于您的架构和要求。

于 2015-10-21T21:06:17.880 回答