打印

软件“看门狗”对程序“跑飞”的处理

[复制链接]
2097|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xnwxq|  楼主 | 2009-8-23 18:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当跑飞的程序进入非程序区〔如EPROM未使用区)或表格区时,采用指令冗余技术已经无法将程序纳入正轨。这时可以设定软件陷阱,拦截跑飞程序,将其迅速引向抗干扰中心,那里有一段专门对程序运行出错进行处理的程序。如果把其入口标号称为ERROR,
则软件陷阱可以由以下几条指令组成:
              NOP
              NOP
              LJMP ERROR
软件陷阱常常用在未使用的中断向量区、未使用的ROM区中以及表格区的后面。因为程序跑飞有可能在中断程序中发生,这时中断逻辑己经置位,这样就不再响应同级或低级的中断,所以一定要释放中断逻辑,即清除中断标志位,抗干扰中心的可由以下程序段实现:
ERROR:
              CLR EA
              MOV DPTR,#ERR1
              PUSH DPL
              PUSH DPH
              RETI
ERR1:
              CLR A
              PUSH ACC
              PUSH ACC
              RETI
              END
      只要在未使用的ROM区域中每隔一定单元就设置一个软件陷阱,就能够将“跑飞,到未使用ROM区的PC引导到抗千扰中心进行处理,但是当程序“跑飞”到一个临时构成的死循环中时,指令冗余和软件陷阱都会失去作用,这时就要用“硬件看门狗”技术来使程序恢复正常了。

相关帖子

沙发
badbird1234| | 2009-8-24 08:12 | 只看该作者
学习了
必回帖

使用特权

评论回复
板凳
badbird1234| | 2009-8-24 08:56 | 只看该作者
只是简单的重启
有没有检错恢复的好办法

使用特权

评论回复
地板
5880527| | 2009-8-24 09:39 | 只看该作者
有些逻辑判断太关键,跑飞了就让它早点死掉好些,又救回来会出人命的

使用特权

评论回复
5
泰山特曲123| | 2009-8-24 12:12 | 只看该作者
留个脚印,以后可能用到

使用特权

评论回复
6
naren| | 2009-8-27 00:31 | 只看该作者
抄书而已~

使用特权

评论回复
7
中航_夏工| | 2009-8-27 09:28 | 只看该作者
MARK

使用特权

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

本版积分规则

个人签名:我们都是风雨中的孩子,手牵着手才不会跌倒

162

主题

294

帖子

1

粉丝