平均循环 5ms,为什么不能据此设 10ms 看门狗
看门狗超时需要覆盖声明正常路径中的最长喂狗间隔与必要余量。平均循环5ms不能排除偶发写Flash、临界区或调度造成更长间隔。
本文由器赋开物编辑整理,AI 辅助撰写。下面输入是合成对照,用于复算公式或协议规则,没有连接真实设备完成现场验证。
本次具体要判断什么?
示例普通计算5ms,但另有40ms不可喂狗等待和5ms额外延迟,基础50ms、20%余量预算60ms。数字来自教学路径,不是某ESP-IDF操作的固定耗时。
先保存可复算的对照输入
打开看门狗喂狗间隔预算表,把默认值改为下表场景。文字或字节过长时这里只展示摘要,完整原始输入在附件中。
| 输入项目 | 对照值 | 单位或格式 |
|---|---|---|
| 最长计算段 | 5 | ms |
| 不可喂狗等待段 | 40 | ms |
| 额外调度延迟 | 5 | ms |
| 规划余量 | 20 | % |
模型或规则得到什么结果?
间隔假设=t计算+t等待+t额外调度;预算=间隔×(1+余量%)
| 结果项目 | 对照输出 | 单位 |
|---|---|---|
| 相加得到的最大间隔假设 | 50 | ms |
| 含规划余量的超时预算 | 60 | ms |
三段应互不重叠,且覆盖实际最坏喂狗间隔;不生成具体SDK配置,不证明死锁可被正确检测。
下载本例完整输入、输出与核验记录 JSON。64 位整数按字符串保留,未四舍五入的计算值保存在附件;设备、仪器和实际结论栏目留空,不把预测当测量。
怎样核对和排查?
列出所有正常长路径,包括存储、网络超时和进入低功耗前后的处理。记录真实最长间隔及覆盖条件,再将异常故障需要被检测的期限另列。若正常最长间隔与故障检测期限冲突,应重设计喂狗策略或任务划分。
哪些做法容易误判?
无限放大超时能减少误复位,却可能掩盖需要及时处理的故障。反过来,极短超时反复复位也不说明系统更可靠,应解释正常和异常路径的边界。
什么条件才足以接受结论?
配置有最长正常路径证据,并验证故障注入后确实按预期恢复。未进行故障实验时,只报告间隔预算,不称为可靠性验收通过。
适用范围与相关资料
继续查阅相关原理或其他工具。使用不同工具时先核对输入单位、模型和协议版本,避免把一个场景的结论直接套到另一个场景。
不生成SDK配置,不保证死锁检测和系统恢复;不同看门狗、任务订阅及喂狗语义需查官方实现。
依据:乐鑫:看门狗机制。实现检查覆盖了独立算例和拒绝路径;工具自身通过测试不能替代你对硬件、SDK版本和业务规则的核验。
继续处理相邻任务
本文为公开资料整理,非亲测。关键参数与代码请结合实物与下列官方来源验证。
- 乐鑫:看门狗机制 ↗
docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/wdts.html