请教一个有趣的问题:在UCOSII中,还需要使用看门狗吗?如果要用,可怎么去喂这条狗?

2019-07-21 00:35发布

 大家知道,UCOSII中的各项执行任务都是个死循环,各项任务的切换都是靠自身的优先级来进行;

 而看门狗是在正常执行程序中,去喂它,使它不会溢出,而产生复位动作。但如果程序跑飞了,进入死循环,没有在一定的时间去喂它,

就会产生复位动作,使程序重新启动初始化,恢复正常工作。可在UCOSII中,各个任务本身就是个死循环,它们自己就有个专用震荡器,这还用

使用看门狗吗?如果要用,这条狗怎么去喂它,是在各项任务里,添一条喂狗指令?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
30条回答
那盏灯火
2019-07-23 10:28
正点原子 发表于 2014-3-22 23:06
ucosii的while死循环,和看门狗没什么交集...
看门狗该喂的时候还得喂,你可以专门设置一个最高优先级的任 ...

//将这些优先级分配给了UCOSIII的5个系统内部任务
//优先级0:中断服务服务管理任务 OS_IntQTask()
//优先级1:时钟节拍任务 OS_TickTask()
//优先级2:定时任务 OS_TmrTask()
//优先级OS_CFG_PRIO_MAX-2:统计任务 OS_StatTask()
//优先级OS_CFG_PRIO_MAX-1:空闲任务 OS_IdleTask()

那么看门狗的优先级设定为3吗?还是设定为0?

一周热门 更多>