看門狗驅動的代碼結構和原理
參考STM32的看門狗驅動,RT-Thread中的看門狗驅動主要有兩個函數組成wdt_init和wdt_control。 其中wdt_init提供看門狗初始化,主要就是初始化看門狗依賴的時鐘,不過看門狗的功能比較簡單,init函數一般空置。wdt_control根據指令字提供喂狗、設定逾時時間、擷取逾時時間、啟動看門狗的功能。由于大部分的處理器對于看門狗的設定是一次性的,是以大多數工作再start的時候一次做完就OK了。
hc32f460看門狗的時鐘來自PLCK3,根據自己的頻率設定分頻系數和計數器的數值就可以了。hc32f60的計數器是16bit的,是以把看門狗的時鐘分頻道xKHZ的級别,一般就可以提供幾十毫秒至幾秒鐘的時間。
我們的項目中處理器運作在100MHZ,PLCK3對應為25M,分頻2048,計數器4096,大約提供335ms的逾時時間。
驅動添加和使用方法
1、把驅動檔案drv_wdt.c放入drivers目錄
2、修改drivers/SConscript增加将wdt驅動加入編譯

3、代碼中查找名為wdt的看門狗裝置,并試用rt_device_control的函數初始化并啟動看門狗
4、主循環中不停的喂狗,不喂會複位的
開發資料
HC32F460使用者手冊
https://www.hdsc.com.cn/cn/Index/downloadFile/modelid/65/id/47/key/0
HC32F460資料手冊
https://www.hdsc.com.cn/cn/Index/downloadFile/modelid/65/id/46/key/0
HC32F460驅動庫
https://www.hdsc.com.cn/cn/Index/downloadFile/modelid/66/id/57/key/9
HC32F460驅動庫幫助
https://www.hdsc.com.cn/cn/Index/downloadFile/modelid/66/id/57/key/8
HC32F460IDE支援包
https://www.hdsc.com.cn/cn/Index/downloadFile/modelid/66/id/58/key/2