软件抗干扰经验之一:用“软件陷阱+程序口令”对付PC指针的弹飞
当CPU受到外界干扰,有时PC指针会飞到另一段程序中,或跳到空白段去。
其实,如果PC指针飞到空白段去,倒也好处理。只要在空白段设立软件陷阱(拦截指令),将程序拦截到初始化段或程序错误处理段。
但是,如果PC指针飞到另一段程序中去了,系统如何办?小匠在这里推荐一种方法——程序口令,思路如下:
1、首先,程序必须模块化。每个模块(子程序)执行一个功能。每个模块只有一个出口(RET)。
2、设立一个模块(子程序)ID寄存器。
3、为每个子程序配置一个唯一的ID号码。
4、每当子程序执行完毕,要返回(RET)之前,先将本子程序的ID号送入 ID寄存器
5、返回到上级程序后,先判断ID寄存器中的ID号。如果正确,则继续执行;如果不正确,则表示PC指针有可能已经跳错了,子程序没有按预计的出口返回,这时将程序拦截到初始化段或程序错误处理段。
这种方法,如同在程序中设立了若干个岗哨,每次调用子程序返回后,都要对口令(ID号),验明正身后再放行。再配合软件陷阱,基本上可以将大多数PC指针弹飞的现象检测到。
到了程序错误处理段,要杀要剐(冷启动还是热启动)就由您了。
关键字:软件抗干扰 PC指针
引用地址:
软件抗干扰经验之一
推荐阅读最新更新时间:2024-03-16 14:48
单片机系统软件抗干扰方法
在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。 1 软件抗干扰方法的研究 在工程实践中,软件抗干扰研究的内容主要是: 一、消除模拟输入信号的嗓声(如数字滤波技术);二、程序运行混乱时使程序重入正轨的方法。本文针对后者提出了几种有效的软件抗干扰方法。 1.1 指令冗余 CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞” 到了三字节指令,出错机率更大。 在关键地方人为插入一些单字节
[单片机]
单片计算机系统抗干扰的软件途径
摘要: 基于微机主要部件的抗扰性能试验,提出了几种在单片微机上行之有效的软件抗干扰对策,探索了抗干扰程序的原理及设计方法。
关键词: 工业控制 单片计算机 软件抗干扰
对于研制微机工控系统的科技人员而言,系统自身及应用环境产生的各种电磁噪声信是普遍的困扰因素。许多应用系统在进行仿真调试和实验室内的联机试运行时都是成功的,然而一旦进入现场使用,系统则会产生预料以外的误动作或误显示,严重时甚至导致前期研制成果基本失效,浪费了宝贵的时间和人力物力。因此,如何在系统研制的过程中对干扰源进行正确的分析,如何提高系统各部分及整体抗电磁干扰的能力,已经日益引起人们的高度重视。以往对于电磁干扰的抑制主要侧重于
[应用]