|
最近在做项目的时候,遇到一个看门狗的问题。前提是我在项目同时使用了定时器喂狗和程序喂狗,其中定时器喂狗是秒级。程序由于栈空间溢出,导致主逻辑挂掉,但是由于修改过进入HardFault_Handler的实现,此处进入硬件错误后不会陷入死循环,从而不会导致看门狗复位(因为定时器正常)。所以,最终造成的故障是程序主逻辑已经挂掉,但是系统得不到复位,换句话说看门狗睡着了。。。所以,我做了修改。去除定时器喂狗,只保留程序喂狗(主循环、复杂逻辑处理)。这样,只要程序中合理喂狗,就会排除由于看门狗不复位造成的不必要的麻烦。这也是我关于看门狗使用的新解。
关于看门狗,欢迎各位继续讨论。我的意见是程序喂狗,弃用定时器喂狗。合理配置看门狗的溢出复位时间,以确保主逻辑正常运行。
|
|