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

时间:2008-08-25
  当跑飞的程序进入非程序区〔如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引导到抗千扰中心进行处理,但是当程序“跑飞”到一个临时构成的死循环中时,指令冗余和软件陷阱都会失去作用,这时就要用“硬件看门狗”技术来使程序恢复正常了。

  



  
上一篇:单片机与RS232串口通信C51程序
下一篇:发光二极管的检测

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料