|
|
@@ -19,7 +19,7 @@
|
|
|
#include <rtthread.h>
|
|
|
#include <rtdevice.h>
|
|
|
|
|
|
-#define IWDG_DEVICE_NAME "iwg" /* 看门狗设备名称 */
|
|
|
+#define IWDG_DEVICE_NAME "wdt" /* 看门狗设备名称 */
|
|
|
|
|
|
static rt_device_t wdg_dev; /* 看门狗设备句柄 */
|
|
|
|
|
|
@@ -33,7 +33,7 @@ static void idle_hook(void)
|
|
|
static int iwdg_sample(int argc, char *argv[])
|
|
|
{
|
|
|
rt_err_t ret = RT_EOK;
|
|
|
- rt_uint32_t timeout = 1000; /* 溢出时间 */
|
|
|
+ rt_uint32_t timeout = 10; /* 溢出时间 10 秒 */
|
|
|
char device_name[RT_NAME_MAX];
|
|
|
|
|
|
/* 判断命令行参数是否给定了设备名称 */
|
|
|
@@ -50,21 +50,27 @@ static int iwdg_sample(int argc, char *argv[])
|
|
|
if (!wdg_dev)
|
|
|
{
|
|
|
rt_kprintf("find %s failed!\n", device_name);
|
|
|
- return RT_ERROR;
|
|
|
+ return -RT_ERROR;
|
|
|
}
|
|
|
/* 初始化设备 */
|
|
|
ret = rt_device_init(wdg_dev);
|
|
|
if (ret != RT_EOK)
|
|
|
{
|
|
|
rt_kprintf("initialize %s failed!\n", device_name);
|
|
|
- return RT_ERROR;
|
|
|
+ return -RT_ERROR;
|
|
|
}
|
|
|
/* 设置看门狗溢出时间 */
|
|
|
ret = rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_SET_TIMEOUT, &timeout);
|
|
|
if (ret != RT_EOK)
|
|
|
{
|
|
|
rt_kprintf("set %s timeout failed!\n", device_name);
|
|
|
- return RT_ERROR;
|
|
|
+ return -RT_ERROR;
|
|
|
+ }
|
|
|
+ ret = rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_START, RT_NULL);
|
|
|
+ if (ret != RT_EOK)
|
|
|
+ {
|
|
|
+ rt_kprintf("start %s failed!\n", device_name);
|
|
|
+ return -RT_ERROR;
|
|
|
}
|
|
|
/* 设置空闲线程回调函数 */
|
|
|
rt_thread_idle_sethook(idle_hook);
|