[信息] 会不会有可能程序跑飞了,但是中断还能正常运行

[复制链接]
3841|12
 楼主| inurl 发表于 2014-2-12 15:05 | 显示全部楼层 |阅读模式
ROM中中断向量表还没变, 所以就算程序跑飞了, 中断还能
gonggu8181 发表于 2014-2-12 15:52 来自手机 | 显示全部楼层
中断执行完了岂不是还是在继续飞
杨爱林林 发表于 2014-2-12 15:55 | 显示全部楼层
跑飞了,能进中断
所以往往用一些对应的错误中断来提示你程序跑飞了
并进行相关维护措施
 楼主| inurl 发表于 2014-2-12 16:54 | 显示全部楼层
杨爱林林 发表于 2014-2-12 15:55
跑飞了,能进中断
所以往往用一些对应的错误中断来提示你程序跑飞了
并进行相关维护措施 ...

突然有点明白了, 之前的代码里面使用了 “软件狗+硬件狗结合”的 方式, 还是很有道理的。
huangfeng33 发表于 2014-2-12 20:38 | 显示全部楼层
哈哈,程序跑飞后 , 啥事都有可能 ,  只有想不到  ,没有跑不到的。
 楼主| inurl 发表于 2014-2-13 14:21 | 显示全部楼层
huangfeng33 发表于 2014-2-12 20:38
哈哈,程序跑飞后 , 啥事都有可能 ,  只有想不到  ,没有跑不到的。 ...

那加看门狗有用吗
huangfeng33 发表于 2014-2-13 16:02 | 显示全部楼层
不起作用看门狗就没用了,只要没喂狗,狗就有作用。
xyyan 发表于 2014-2-13 20:43 | 显示全部楼层
当然会发生这种事。
一般用硬件看门狗+软件喂狗来实现跑飞控制,然后在程序初始化里面进行是冷启动还是热启动判断,如果是热启动,则仅对一些寄存器进行初始化,否则全面初始化。
我一般将一个定时器的中断优先级设置为最高,利用该定时器定时查看程序运行位置变量,如果发现该变量异常,则直接将返回地址指向0000,也即重启。
 楼主| inurl 发表于 2014-2-14 10:38 | 显示全部楼层
huangfeng33 发表于 2014-2-13 16:02
不起作用看门狗就没用了,只要没喂狗,狗就有作用。

我们是在中断里面喂狗的, 感觉这样就算程序跑飞了,中断还能进,狗还能正常喂。
香水橙 发表于 2014-2-14 10:49 | 显示全部楼层
在中断里面喂狗,程序跑飞确实还能进中断,但有什么意义呢?

喂狗的目的就是,狗能够检测程序是否跑飞;在中断里面喂狗,只是让狗吃饱了睡觉,根本达不到初衷,养这种懒狗又有何用?!
 楼主| inurl 发表于 2014-2-14 13:22 | 显示全部楼层
香水橙 发表于 2014-2-14 10:49
在中断里面喂狗,程序跑飞确实还能进中断,但有什么意义呢?

喂狗的目的就是,狗能够检测程序是否跑飞;在 ...

请不要做归纳总结的工作
b335002090 发表于 2014-2-14 15:55 | 显示全部楼层
inurl 发表于 2014-2-14 13:22
请不要做归纳总结的工作

中断喂狗确实不当的,中断出错概率要比大循环出错的概率低很多。
 楼主| inurl 发表于 2014-2-17 13:04 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

293

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部