从原理到实践,看门狗定时器为嵌入式系统提供了一道坚固的防崩溃屏障。

本文将分享正常运行情况和模拟故障场景两个示例,带你快速了解看门狗定时器在嵌入式系统中的运用要点。


一、正常运行情况


1.1  完整示例代码

如下图,初始化wdt库,设置超时时间为9秒。设置一个定时器每3秒喂一次看门狗,确保设备在正常运行的情况下不会重启;若发生软件崩溃或硬件故障,最多18秒后将自动重启设备。

嵌入式系统防崩溃秘籍:看门狗定时器全流程解析与实战应用_看门狗


1.2 示例运行结果

Air8101核心板/开发板通过LuaTools烧录内核固件和demo脚本代码。烧录成功后开机运行,通过LuaTools日志查看运行结果。

设备启动,程序正常运行:

嵌入式系统防崩溃秘籍:看门狗定时器全流程解析与实战应用_示例代码_02


二、添加死循环模拟故障场景 


我们在原有正常运行示例代码中创建了一个新的任务,命名为fault_task,它将进入一个死循环。由于这个新任务阻断了喂狗操作,设备将在超时后自动重启。这样,我们就可以有效地模拟看门狗的超时情况。

创建一个新的任务来模拟故障场景:

嵌入式系统防崩溃秘籍:看门狗定时器全流程解析与实战应用_看门狗_03

2.1 完整示例代码

嵌入式系统防崩溃秘籍:看门狗定时器全流程解析与实战应用_物联网_04

 

嵌入式系统防崩溃秘籍:看门狗定时器全流程解析与实战应用_正常运行_05


2.2 示例运行结果
 

Air8101核心板/开发板通过LuaTools烧录内核固件和demo脚本代码。烧录成功后开机运行,通过LuaTools日志查看运行结果。

看门狗超时被触发,系统崩溃导致重启:

嵌入式系统防崩溃秘籍:看门狗定时器全流程解析与实战应用_看门狗_06


今天的内容就分享到这里了~