看门狗是独立计时器,软件必须在系统健康时定期喂狗,超时则复位。它不能修复错误,但能把永久卡死从“设备一直失联”变成“设备带着原因重新启动”。关键是让喂狗条件代表系统真的健康,而不是让任意一个仍在跑的循环掩盖其他任务已经死掉。

各任务上报心跳监控任务检查完整性健康则喂狗异常则停止喂狗复位并记录原因
监督图看门狗只接收健康监控任务的结论,不接收每个业务循环的随手喂狗。
任务心跳每个关键任务按自己的周期报告进展,而不是只报告“还活着”。截止期监控任务知道每类心跳多长时间不来就算异常。健康检查还可以检查队列积压、关键状态和传感器通讯。喂狗令牌只有检查通过才允许刷新硬件看门狗。复位原因启动后尽早读取并保存 watchdog reset 的原因。重启限流连续失败时进入降级或恢复模式,避免无限重启。

心跳要表示任务完成了关键工作

控制任务的心跳应在一次控制周期成功结束后更新,通信任务的心跳应在收发链路仍可用时更新。若每个 while 循环都直接喂狗,某个线程卡在锁里、传感器失联或队列永远满时,设备仍会持续喂狗,监控就失去意义。

看门狗超时时间应大于正常最长工作周期和调度抖动,但小于系统失控后可接受的恢复时间。这个值要用实测的负载和温度数据调整,不能只凭经验写一个很大的常量。

复位后的第一件事是保留线索

启动代码应尽早读取复位原因,保存上一次的任务心跳、错误码和最小转储。若多次复位发生在同一启动阶段,设备应限制自动重试,并提供安全模式或维护接口。看门狗不是安全急停,涉及人身或设备风险的链路仍需硬件独立保护。

参考:EmbedSummary