RTT设备驱动之看门狗

看门狗的喂狗一般放在空闲任务钩子函数里面。

rt_thread_idle_sethook(idle_hook);
static void idle_hook(void) { /* 在空闲线程的回调函数里喂狗 */ rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_KEEPALIVE, NULL); }
rt_device_t rt_device_find(const char* name);
rt_err_t rt_device_init(rt_device_t dev);
rt_err_t rt_device_control(rt_device_t dev, rt_uint8_t cmd, void* arg);

命令控制字可取如下宏定义值:

#define RT_DEVICE_CTRL_WDT_GET_TIMEOUT    (1) /* 获取溢出时间 */
#define RT_DEVICE_CTRL_WDT_SET_TIMEOUT (2) /* 设置溢出时间 */ #define RT_DEVICE_CTRL_WDT_GET_TIMELEFT (3) /* 获取剩余时间 */ #define RT_DEVICE_CTRL_WDT_KEEPALIVE (4) /* 喂狗 */ #define RT_DEVICE_CTRL_WDT_START (5) /* 启动看门狗 */ #define RT_DEVICE_CTRL_WDT_STOP (6) /* 停止看门狗 */
rt_err_t rt_device_close(rt_device_t dev);
 

猜你喜欢

转载自www.cnblogs.com/jieruishu/p/10272102.html
今日推荐