打印
[信息]

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

[复制链接]
3360|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
跑飞了,能进中断
所以往往用一些对应的错误中断来提示你程序跑飞了
并进行相关维护措施 ...

突然有点明白了, 之前的代码里面使用了 “软件狗+硬件狗结合”的 方式, 还是很有道理的。

使用特权

评论回复
5
huangfeng33| | 2014-2-12 20:38 | 只看该作者
哈哈,程序跑飞后 , 啥事都有可能 ,  只有想不到  ,没有跑不到的。

使用特权

评论回复
6
inurl|  楼主 | 2014-2-13 14:21 | 只看该作者
huangfeng33 发表于 2014-2-12 20:38
哈哈,程序跑飞后 , 啥事都有可能 ,  只有想不到  ,没有跑不到的。 ...

那加看门狗有用吗

使用特权

评论回复
7
huangfeng33| | 2014-2-13 16:02 | 只看该作者
不起作用看门狗就没用了,只要没喂狗,狗就有作用。

使用特权

评论回复
8
xyyan| | 2014-2-13 20:43 | 只看该作者
当然会发生这种事。
一般用硬件看门狗+软件喂狗来实现跑飞控制,然后在程序初始化里面进行是冷启动还是热启动判断,如果是热启动,则仅对一些寄存器进行初始化,否则全面初始化。
我一般将一个定时器的中断优先级设置为最高,利用该定时器定时查看程序运行位置变量,如果发现该变量异常,则直接将返回地址指向0000,也即重启。

使用特权

评论回复
9
inurl|  楼主 | 2014-2-14 10:38 | 只看该作者
huangfeng33 发表于 2014-2-13 16:02
不起作用看门狗就没用了,只要没喂狗,狗就有作用。

我们是在中断里面喂狗的, 感觉这样就算程序跑飞了,中断还能进,狗还能正常喂。

使用特权

评论回复
10
香水橙| | 2014-2-14 10:49 | 只看该作者
在中断里面喂狗,程序跑飞确实还能进中断,但有什么意义呢?

喂狗的目的就是,狗能够检测程序是否跑飞;在中断里面喂狗,只是让狗吃饱了睡觉,根本达不到初衷,养这种懒狗又有何用?!

使用特权

评论回复
11
inurl|  楼主 | 2014-2-14 13:22 | 只看该作者
香水橙 发表于 2014-2-14 10:49
在中断里面喂狗,程序跑飞确实还能进中断,但有什么意义呢?

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

请不要做归纳总结的工作

使用特权

评论回复
12
b335002090| | 2014-2-14 15:55 | 只看该作者
inurl 发表于 2014-2-14 13:22
请不要做归纳总结的工作

中断喂狗确实不当的,中断出错概率要比大循环出错的概率低很多。

使用特权

评论回复
13
inurl|  楼主 | 2014-2-17 13:04 | 只看该作者

使用特权

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

本版积分规则

37

主题

293

帖子

1

粉丝