打印

看门狗复位有意义吗?

[复制链接]
9301|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星火燎原|  楼主 | 2014-5-7 13:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初学单片机的时候,知道单片机有看门狗功能,它能监测你看程序如果跑飞了的话,能帮你复位重起。啊多么好的功能呀。
现在工作几年了,做了N多项目,回头想这看门狗的这功能有没有意义?疑惑了。如果机器运得到一半过程突然死机了,咋办?看门狗帮你复位了,重新来过,完了,加工的产品重来一遍,肯定毁了!还不如让它死在那,人工拿出来,再重新开机。

各位怎么看?

相关帖子

沙发
airwill| | 2014-5-7 13:07 | 只看该作者
那是你软件没有处理好, 如果看门狗复位后, 能够从 RAM 中找出加工步骤情况, 从而继续下一步工序, 又当如何?

使用特权

评论回复
板凳
yewuyi| | 2014-5-7 13:12 | 只看该作者
看门狗不能监测程序是否跑飞,看门狗只有一下作用:在看门狗定时器溢出后,强行复位MCU。

至于看门狗定时器为何溢出,则有可能是程序跑飞,也可能是程序BUG,也可能设计时人为需要它定时复位。

对于代码异常后造成的设备故障,如果需要恢复原来工况,则一般还需要额外的监控和恢复代码,看门狗不是万能的,但对于很多不需要恢复原来的状态的设计来说,最简单的做法就是从头再来,例如播放一段歌曲,如果代码飞掉了,从头再来放一次也总比死掉不能工作要好。

使用特权

评论回复
地板
拨云人| | 2014-5-7 13:30 | 只看该作者
本帖最后由 拨云人 于 2014-5-7 13:33 编辑

      如二楼所言, 代码要如何运行,从哪里开始运行,是可以受程序员控制的,如果你能够找到出现问题的代码,记录它的位置,不就OK了吗?
      程序出现问题后,具体要怎么做还是得看具体的应用场景,就像你所说的,如果生产到一半的时候死了,从头再来的后果可能是灾难性的。
但是,程序是人设计的,是活的,你完全可以让它不从头运行啊!这涉及到对堆栈的操作,想要实现的话,你得多多了解一下代码的底层实现机制。

使用特权

评论回复
5
dirtwillfly| | 2014-5-7 14:14 | 只看该作者
看门口唯一的作用,就是在在看门狗定时器溢出后,强行复位MCU。
其他的工作他不管的~~不要认为他是万能的

使用特权

评论回复
6
ayb_ice| | 2014-5-7 14:45 | 只看该作者
怎么恢复工作,不是看门狗本身的问题

就算你这种情况没有意义也不等于任何情况下没有意义

使用特权

评论回复
7
yhn1973| | 2014-5-7 15:46 | 只看该作者
看门狗的作用就是防止死机,看门狗动作时谁也不能确定CPU运行受到了哪些破坏,内存、外设寄存器都可能被破坏。硬件的设计就是尽量避免看门狗动作

使用特权

评论回复
8
ningling_21| | 2014-5-7 15:58 | 只看该作者
假如一个产品出口到了非洲某国,你还要出国去给它复位一次吗?

使用特权

评论回复
9
大秦正声| | 2014-5-7 16:48 | 只看该作者
dirtwillfly 发表于 2014-5-7 14:14
看门口唯一的作用,就是在在看门狗定时器溢出后,强行复位MCU。
其他的工作他不管的~~不要认为他是万能的 ...

对!

使用特权

评论回复
10
huangxz| | 2014-5-7 22:47 | 只看该作者
有时候是允许复位的,比如自动控温的

使用特权

评论回复
11
通宵敲代码| | 2014-5-7 23:28 | 只看该作者
这问题问的,程序运行状态的保存,不属于看门狗的职责范围好不好,要不然他就不叫看门狗了!

现在部分高端芯片内部都有eeprom,而且都支持掉电存储,很大原因都是来弥补这方面的不足啊!

相信不久的将来,这都不再是事!

使用特权

评论回复
12
mylsf| | 2014-5-8 08:16 | 只看该作者
学习了

使用特权

评论回复
13
NE5532| | 2014-5-8 08:23 | 只看该作者
如果是内存里的数据出现异常,导致程序逻辑锁死,看门狗复位以后,程序从内存里找出错误数据,接着死。

狗只是一种保全措施,就像药,你是生病了才去吃药,不是随时吃药,也不保证药一定有用。

使用特权

评论回复
14
一毛钱0| | 2014-5-8 09:10 | 只看该作者
宗上诉所言,已经很详细了。本人就不好说什么了。

使用特权

评论回复
15
guangbiao| | 2014-5-8 10:51 | 只看该作者
看门狗就像电脑机箱上的RESET按键,自不过是自动的啦。。。
电脑运行程序卡死了,没办法就得手动按这个RESET键。比如你在编辑WORD文档的时候卡住了,按了RESET,重启后打开之前编辑的文档,人家会问你是否需要覆盖的,这是软件的工作,不是看门狗的工作。看门狗的工作就是单单是那个RESET按键。。。

使用特权

评论回复
16
qd118| | 2014-5-9 10:15 | 只看该作者
处理的好,才算是狗

使用特权

评论回复
17
叶丷| | 2014-5-9 14:23 | 只看该作者
yewuyi 发表于 2014-5-7 13:12
看门狗不能监测程序是否跑飞,看门狗只有一下作用:在看门狗定时器溢出后,强行复位MCU。

至于看门狗定时 ...

支持你说法

使用特权

评论回复
18
mldse| | 2016-1-23 22:02 | 只看该作者
dirtwillfly 发表于 2014-5-7 14:14
看门口唯一的作用,就是在在看门狗定时器溢出后,强行复位MCU。
其他的工作他不管的~~不要认为他是万能的 ...

是的

使用特权

评论回复
19
小马儿| | 2016-1-24 10:58 | 只看该作者
大家说的都在理,看门狗本身的功能很单纯,你的程序一段时间不喂狗,他就将cpu拉复位,关键的是我们如何使用了。
我负责的产品很多都是工业强实时系统,看门狗在里面的价值还是很关键的,是构建低维分析的基本手段,当然具体的一些技术细节就比较复杂了。

使用特权

评论回复
20
小马儿| | 2016-1-24 11:00 | 只看该作者
拨云人 发表于 2014-5-7 13:30
如二楼所言, 代码要如何运行,从哪里开始运行,是可以受程序员控制的,如果你能够找到出现问题的代码 ...

呵呵,我们的产品中就需要这样的处理,异常复位和正常复位流程是不一样的,一些状态信息需要检测的,你是从事什么类型产品的。

使用特权

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

本版积分规则

个人签名:ST华南代理QQ:945689011

37

主题

1077

帖子

5

粉丝