ARM Thumb-2 WFE 指令

ARM Thumb-2 WFE instruction

我正在使用 Cortex M3 ARM processor.So,我有一个这样的主循环;

while(true){

foo();
System_Watchdog_Refresh();
__ASM("wfe");//System wait for event...

}

所以,厂家公司是这样对我说的; 如果您不想从 wdt(Watchdog Timer) 重置您的程序,您应该每 1 ms 设置一个空定时器 ISR。

这里对我来说有问题,因为我使用了“System_Watchdog_Refresh();”函数和是的处理器 运行 这个函数每个 loop.How 看门狗定时器在这个状态下重置处理器?

注意:

谢谢...

WFE 将处理器设置为待机状态,直到下一个中​​断(或事件)发生。因此,即使您刷新看门狗,处理器也会在此之后立即进入睡眠状态,并且在没有任何其他事件的情况下,保持该状态直到看门狗到期并重置处理器。为防止这种情况,您将需要一些定期触发中断的东西(如制造商建议的空定时器)以确保处理器唤醒并恢复执行,从而也刷新看门狗。

计时器间隔应合理接近但小于看门狗超时,以确保您获得 power-saving 和可靠性的理想组合。

(将我的评论移至答案,因为 OP 说这对他有用。)