WDG
总览
本示例主要介绍watch dog的使用方法。
准备及使用步骤
- 使用步骤:
- 插入将板子的USB电源线;
- 编译
customer_app/periperal/demo_wdg
工程并下载工程;- 打开一个串口终端窗口(波特率为2000000,用于接收和发送uart消息)。
- 串口终端输入
demo_hosal_wdg_feed
,表示启动 wdg的喂狗demo。
- 此时demo会在死循环中持续喂狗,所以程序不会重启并一直在while循环中。
- 重启设备,串口输入
demo_hosal_wdg_not_feed
, 来启动wdg,但是不喂狗。- 此时程序会在wdg 定时时间到时重启
应用实例
- 示例代码
#include <stdio.h>
#include <cli.h>
#include <hosal_wdg.h>
#include <blog.h>
void demo_hosal_wdg_feed(void)
{
hosal_wdg_dev_t wdg;
int ret = -1;
/* wdg port set */
wdg.port = 0;
/* max timeout is 65535ms */
wdg.config.timeout = 3000;
/* init wdg with the given settings */
hosal_wdg_init(&wdg);
blog_info("wdg will not trig reboot\r\n");
/* feed wdg every 2s */
while(1) {
hosal_wdg_reload(&wdg);
vTaskDelay(2000);
}
hosal_wdg_finalize(&wdg);
}
- 通过
hosal_wdg_dev_t
定义一个wdg设备,并设置超时时间,调用 `` hosal_wdg_init ``初始化wdg。
hosal_wdg_dev_t wdg;
wdg.port = 0;
/* max timeout is 65535 ms */
wdg.config.timeout = 8000; //设置超时时间位8000ms
hosal_wdg_init(&wdg);
- 通过
hosal_wdg_reload
来重置看门狗定时器
hosal_wdg_reload(&wdg);
- 通过
hosal_wdg_finalize
接口来失能看门狗
hosal_wdg_finalize(&wdg);