天天看點

rt_thread hc32f460開發五:wdt驅動移植看門狗驅動的代碼結構和原理驅動添加和使用方法

看門狗驅動的代碼結構和原理

參考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驅動加入編譯

rt_thread hc32f460開發五:wdt驅動移植看門狗驅動的代碼結構和原理驅動添加和使用方法

3、代碼中查找名為wdt的看門狗裝置,并試用rt_device_control的函數初始化并啟動看門狗

rt_thread hc32f460開發五:wdt驅動移植看門狗驅動的代碼結構和原理驅動添加和使用方法

4、主循環中不停的喂狗,不喂會複位的

rt_thread hc32f460開發五:wdt驅動移植看門狗驅動的代碼結構和原理驅動添加和使用方法
rt_thread hc32f460開發五:wdt驅動移植看門狗驅動的代碼結構和原理驅動添加和使用方法

開發資料

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

繼續閱讀