OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2175|回复: 4

请教看门狗如何理解?

[复制链接]

29

主题

338

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1181
金钱
1181
注册时间
2018-4-13
在线时间
170 小时
发表于 2018-8-4 21:17:43 | 显示全部楼层 |阅读模式
5金钱
虽然知道看门狗的作用,不过还是不太明白看门狗要如何使用。
看门狗的作用是在程序跑飞的情况下让系统能够及时复位重新开始执行程序,道理很简单,但是程序如何跑飞呢?
如果是一段程序需要延时等待,这个不算跑飞吧,应该是正常执行。所以这种情况是不用看门狗的。那这种情况的看门狗要如何使用才合理呢?
如果是内存溢出、指针悬空,这个属于程序bug,理应解决,不能指望看门狗解决。
如果是外部电磁干扰,是否应该解决硬件问题,加强防护。不过外部电磁干扰是如何对程序产生作用的呢?不知道哪位讲一讲。
独立看门狗不需要中断,计数到会自动复位程序,这个比较容易理解。
窗口看门狗就需要执行中断来喂狗,中断也是程序的一部分,既然程序都跑飞了,系统还能执行中断吗?
如果说独立看门狗是硬件本身具有的功能,窗口看门狗是否可以理解为软件机制?用软件来解决软件本身的问题可行吗?

----------------

最佳答案

查看完整内容[请看2#楼]

谈谈我的一些理解吧: 1、正常的延时有时候是必须的,看门狗最好不要打断延时,这就是说,看门狗的时间要设置得比程序中的延时要长才行, 当然,程序设计时也得想办法,尽量避免长延时。 2、内存溢出、指针悬空等程序bug,理应解决,不能指望看门狗解决。理论上当然如此,但正如原子所说,程序大了以后不可避免地存在BUG,这是铁律。 微软还天天打补丁呢。暂时没有发现的BUG造成的死机,就可以靠看门狗来重启程序。 3、关于外 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4524
金钱
4524
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-8-4 21:17:44 | 显示全部楼层
本帖最后由 warship 于 2018-8-5 08:49 编辑

谈谈我的一些理解吧:
1、正常的延时有时候是必须的,看门狗最好不要打断延时,这就是说,看门狗的时间要设置得比程序中的延时要长才行,
当然,程序设计时也得想办法,尽量避免长延时。
2、内存溢出、指针悬空等程序bug,理应解决,不能指望看门狗解决。理论上当然如此,但正如原子所说,程序大了以后不可避免地存在BUG,这是铁律。
微软还天天打补丁呢。暂时没有发现的BUG造成的死机,就可以靠看门狗来重启程序。
3、关于外部电磁干扰,加强硬件防护当然也是手段之一,但受成本及技术手段的制约,不可能周全。电磁干扰有强弱,你可能防了弱抗不了强,有时候就是瞬间的强干扰脉冲影响了系统。
至于影响的方式,可能是输入信号线、板内连接线、甚至存储器的值也可能被改变,这种非预期的情况,程序中基本不会考虑,就得靠看门狗来应急了。
4、正因为程序跑飞之后,中断无法执行,喂狗不了,不是正好让狗发挥作用了吗? 我没有搞清你这段的问题逻辑。
5、STM32的狗虽然有些软件的特征,但硬件的成分居多,不能偏激的解读为软件。当然,如果你有种种的担心,采用完全独立于系统的硬件看门狗肯定会更可靠一些了。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-8-5 01:36:14 | 显示全部楼层
多些代码,少乱问。就懂了。  你写代码还没死过,说明你的代码要嘛太简单了,要嘛你写的代码太少了。 多写写,包你满意的。肯定死。
回复

使用道具 举报

29

主题

338

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1181
金钱
1181
注册时间
2018-4-13
在线时间
170 小时
 楼主| 发表于 2018-8-5 07:20:01 | 显示全部楼层
嗯,很打击积极性。
代码要是一多必定死,这个恐怕死有其因吧。什么原因呢?
回复

使用道具 举报

29

主题

338

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1181
金钱
1181
注册时间
2018-4-13
在线时间
170 小时
 楼主| 发表于 2018-8-5 11:05:57 | 显示全部楼层
warship 发表于 2018-8-5 08:47
谈谈我的一些理解吧:
1、正常的延时有时候是必须的,看门狗最好不要打断延时,这就是说,看门狗的时间要 ...

关于第四点,我终于明白了,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-13 09:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表