看门狗主要用于防止系统任务异常调度问题。如在某个任务或中断中运行过久、不能在规定时间内喂狗,可以被认定为异常,引起系统主动复位进行保护。rtos中通常设置一个最低优先级任务负责喂狗,如果最低优先级任务都能在规定时间内运行,就说明整个系统运行非常及时。

3861系统默认设置看门狗超时时间为30秒,可以在hi_config.h文件中如下宏定义修改看门狗超时时间。

#define PRODUCT_CFG_AUTO_WDG_RESET_SYSTEM_TIMEOUT 30000

我们通过一个死循环任务使系统触发看门狗超时引起的系统重启现象。代码如下,注意一定不要在死循环中调用延时函数,延时只能通过循环来实现。

hi3861_hi3861_hi3861

看门狗任务如下,由任务信息可以看到看门狗idle任务优先级最低为31。

hi3861_hi3861_hi3861

用户自定义看门狗超时时间需满足≥6500ms。用户也可调用hi_watchdog_set_timeout,动态设置看门狗超时时间,调用该接口后,看门超狗时时间计数将从0重新开始。如果编译过程中,出现看门狗自定义超时时间失败的错误,请检查自定义的时间是否低于6500ms,如低于则会产生编译错误,请设置超过6500ms 的自定义超时时间。

hi3861_hi3861_hi3861

限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注