看门狗驱动的代码结构和原理
参考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的函数初始化并启动看门狗

这篇博客介绍了STM32看门狗驱动的基本结构,包括wdt_init和wdt_control函数,以及HC32F460看门狗的时钟配置和计数器设置。在100MHz的处理器速度下,通过调整分频系数和计数器数值,可以实现约335ms的超时时间。驱动添加和使用步骤包括添加驱动文件、修改编译脚本、初始化和启动看门狗以及在主循环中喂狗。提供了HC32F460的相关开发资料链接。
最低0.47元/天 解锁文章
1691

被折叠的 条评论
为什么被折叠?



