在正式的产品开发中,软件中要加入看门狗,以确保系统安全和软件跑飞后可以复位到安全状态,最近一直在用NXP的K64,所以今天就以K64为例来说明,软件看门狗的使用。首先像学其他外设一样先来看K64看门狗的框图

由图就可以清楚的搞清楚他的工作流程和软件操作思路,在结合SDK的帮助,你 就可以轻松上手。别忘了使能,其中比较重要的一点是配置时钟和看门狗定时器的值,从上图中就可以看出K64的看门狗模块由两种时钟可选,我比较喜欢用LPO时钟1kHz。这样计算看门狗时间例如为2秒的喂狗周期,则timeoutValue 应为2000,如下图所示:

如果由多任务还要考虑在多个地方清狗。
喂狗可以直接使用SDK的喂狗函数

测试的时候我们可以注释掉清狗程序,在程序复位的地方打断点,那么超过两秒(根据实际修改,我设置的2秒),并观察复位计数器就可以测试你的狗是否正常运行。
下载程序,打断点,观察复位计数器这时候为零,

运行程序

看到复位计数加1,在运行一次

清除我们之前注释的清狗程序,则程序正常运行。注释掉喂狗程序和注释掉清狗程序一样都会引起复位,且测试方法相同,至此验证了我们的软件看门狗功能符合设计需求。