看门狗驱动的代码结构和原理
参考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