嵌入式系统因软件漏洞或干扰导致的死机问题,可通过看门狗定时器高效化解。该机制通过定时“心跳检测”识别程序停滞,并在超时后强制系统重启,其参数配置与部署策略直接影响防护效果。
本文将分享正常运行情况和模拟故障场景两个示例,带你快速了解看门狗定时器在嵌入式系统中的运用要点。
最新源码及实操教程详见:https://docs.openluat.com/air8101/luatos/app/common/wdt/
注意:模组/芯片的内部硬狗,能解决绝大多数情况下的死机问题。但如果有要求非常高的场景, 依然建议外挂硬件,然后通过gpio/i2c定时喂狗。
一、正常运行情况
LuatOS的看门狗wdt操作库,为嵌入式系统提供了关键的系统稳定性保障机制。
在正常运行情况下,示例代码会初始化看门狗库,并设置超时时间和喂狗周期。然后创建一个任务,该任务会定期喂狗,以防止看门狗定时器超时。如果看门狗定时器超时,系统将自动重启。
1.1 完整示例代码
如下图,初始化wdt库,设置超时时间为9秒。设置一个定时器每3秒喂一次看门狗,确保设备在正常运行的情况下不会重启;若发生软件崩溃或硬件故障,最多18秒后将自动重启设备。
1.2 示例运行结果
Air8101核心板/开发板通过LuaTools烧录内核固件和demo脚本代码。烧录成功后开机运行,通过LuaTools日志查看运行结果。
设备启动,程序正常运行:
二、添加死循环模拟故障场景
我们在原有正常运行示例代码中创建了一个新的任务,命名为fault_task,它将进入一个死循环。由于这个新任务阻断了喂狗操作,设备将在超时后自动重启。这样,我们就可以有效地模拟看门狗的超时情况。
创建一个新的任务来模拟故障场景:
2.1 完整示例代码
2.2 示例运行结果
Air8101核心板/开发板通过LuaTools烧录内核固件和demo脚本代码。烧录成功后开机运行,通过LuaTools日志查看运行结果。
看门狗超时被触发,系统崩溃导致重启:
今天的内容就分享到这里了~
审核编辑 黄宇
-
嵌入式
+关注
关注
5161文章
19783浏览量
319595 -
定时器
+关注
关注
23文章
3305浏览量
119721
发布评论请先 登录
TPS3431 带启用功能的标准可编程看门狗定时器数据手册

TPS3430 具有可编程复位延迟的窗口看门狗定时器数据手册

TPS3430-Q1 具有可编程复位延迟的汽车级窗口看门狗定时器数据手册

TPS3435 纳米静态电流精密超时看门狗定时器数据手册

TPS3436-Q1 汽车级纳米静态电流精密窗口看门狗定时器数据手册

TPS3435-Q1 汽车级纳米静态电流精密超时看门狗定时器数据手册

安利给工程师!看门狗相关知识

小尺寸、低功耗!思瑞浦发布高性能车规级看门狗定时器专用芯片TPV710Q

评论