嵌入式系統因軟件漏洞或干擾導致的死機問題,可通過看門狗定時器高效化解。該機制通過定時“心跳檢測”識別程序停滯,并在超時后強制系統重啟,其參數配置與部署策略直接影響防護效果。
本文將分享正常運行情況和模擬故障場景兩個示例,帶你快速了解看門狗定時器在嵌入式系統中的運用要點。

最新源碼及實操教程詳見: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日志查看運行結果。
看門狗超時被觸發,系統崩潰導致重啟:

今天的內容就分享到這里了~
審核編輯 黃宇
-
嵌入式
+關注
關注
5198文章
20442瀏覽量
333979 -
定時器
+關注
關注
23文章
3368瀏覽量
123591
發布評論請先 登錄
深度解析 MAX6369–MAX6374 引腳可選看門狗定時器
CW32A030看門狗和SysTick定時器
看門狗定時器、復位源、異常處理機制科普
RVMCU課堂「21」: 手把手教你玩轉RVSTAR—看門狗定時器篇
?TPL5010-Q1 納米功耗系統定時器(帶看門狗功能)技術文檔摘要
TPS3435 Nano IQ精密超時看門狗定時器技術解析與應用指南
德州儀器TPS3436-Q1汽車級窗口看門狗定時器技術解析
TPS3431 帶啟用功能的標準可編程看門狗定時器數據手冊
TPS3430 具有可編程復位延遲的窗口看門狗定時器數據手冊
TPS3430-Q1 具有可編程復位延遲的汽車級窗口看門狗定時器數據手冊
TPS3435 納米靜態電流精密超時看門狗定時器數據手冊
TPS3436-Q1 汽車級納米靜態電流精密窗口看門狗定時器數據手冊
TPS3435-Q1 汽車級納米靜態電流精密超時看門狗定時器數據手冊
死機克星:嵌入式系統中看門狗定時器的關鍵作用與配置
評論