打印

关于看门狗的处理,请教

[复制链接]
1966|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xlsbz|  楼主 | 2013-5-15 10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
xlsbz|  楼主 | 2013-12-8 09:33 | 只看该作者
:shutup:

使用特权

评论回复
板凳
cjseng| | 2013-12-8 12:34 | 只看该作者
“最后若一段时间内发现执行中断或者任务大循环,则强行进入while(1)死循环。”这句话看不懂!
不过强行进入死循环没有什么不好,进入死循环就是迫使看门狗使系统重启复位。

使用特权

评论回复
地板
Mars_| | 2013-12-8 13:18 | 只看该作者
进死循环 肯定不好, 开门狗的作用就是 防止程序 跑飞或进行死循环设计的。

使用特权

评论回复
5
cjseng| | 2013-12-8 14:10 | 只看该作者
本帖最后由 cjseng 于 2013-12-8 14:11 编辑
Mars_ 发表于 2013-12-8 13:18
进死循环 肯定不好, 开门狗的作用就是 防止程序 跑飞或进行死循环设计的。 ...


这里进入死循环指的是拦截到程序错误,进入了软件陷阱,就是要求复位重启。
比如,正常情况下绝对进不去的分支,一旦进入了,就让程序陷入死循环,然后有看门狗负责重启。
如正常情况下,temp只可能有0、1、2三个值,如果出现其它值,则可以判断出问题了,则进入死循环,系统重启。
switch(temp)
{
casse 0: Pro1();
             break;

case 1: Pro2();
             break;

case 2: Pro3();
            break;

default: EA=0;
            while(1);
            break;
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

190

主题

1614

帖子

4

粉丝