我们知道使用软件看门狗的目的是,当程序跑飞或者陷入死循环时,MCU能够通过看门狗复位将程序从异常状态中“拯救”一把。
然而一般当程序跑飞时,PC指针处于异常状态,但是MCU的中断向量表是好的,中断执行机制是正常的。也就是说,即使程序异常了,但是中断仍然可以正常执行。因此,如果在中断函数中有清狗操作,那么当程序异常时,如果中断函数响应了,那么可能无法按照预期执行狗复位,程序也无法恢复正常了。
但是需要注意,我们这里说的中断一定要是周期执行的,并且执行的周期要小于狗复位的时间,例如定时器中断或者外部周期触发的管脚中断,这种中断函数中一定不能有清狗操作。
为了程序的健壮性和鲁棒性,无论中断是否为周期执行或者执行周期为多少,我们都建议不要在中断中执行清狗操作。
为什么不能在周期执行的中断内清狗
最新推荐文章于 2024-01-06 12:04:59 发布