- 杂志
 搜 索: 
 论坛 » EDA/IC设计 » 单片机软件陷阱技术
广告招商
版主: sunshine0606 , zhao3367
 发表新贴 
 发表回复 
 单片机软件陷阱技术  发表于 2008-04-24 15:33:09 [您是本帖的第300位阅读者]     [1楼] 
呢称:Melinda
加我为好友

CPU受到干扰后,往往将一些操作数当作指令码来执行,造成程序执行混乱.我在A51的做法主要有以下几种:
1.中断向量区
ORG 0000H
START: LJMP MAIN
LJMP INT0
NOP
NOP
LJMP ERR 陷阱
LJMP TOINT
NOP
NOP
LJMP ERR 陷阱
- - - -
ORG 0040H
ERR:
-----------
2.在表格区
在表格区的最后安排5个字节的陷阱
TABEL1:
DB ------------
DB ------------
NOP
NOP
LJMP ERR
3.在未使用的ROM空间
未使用的ROM空间一般全是 0FFH,对于51来说是"MOV R7,A"的单字节指令,程序一旦弹飞到这个区域,将会飞流直下.一般在一些固定的地址加入软件陷阱,捕获弹飞的程序.
ORG 6000H
NOP
NOP
LJMP ERR
ORG 7FFBH
NOP
NOP
LJMP ERR
4.在子程序后面
XXXX:
;;;;;;;;;;
;;;;;;;;;;
RET
NOP
NOP
LJMP ERR

以及在一些长跳转的断裂点...

注: ERR子程序,应当重新设定堆栈,等一些初始化的参数,但对于RAM区的部分数据可以判断保留.
至于是否能有所作用只有天知道了.(呵呵~ ~),不过我写的程序一般是最稳定的,也许是这玩意在起作用吧!


 
 RE: 单片机软件陷阱技术  发表于 2008-04-24 18:06:43 [2楼] 
呢称:hyj666666
加我为好友
学习了~~~~~~顶~~~~~~~~~
 
共2条 1/1 1   
   快速回复主题
  用户名 : 匿名不能发帖!请先 [ 登陆 ]
  标 题:
  内 容 :
 
EEPW元器件搜索  强力提供
关于我们 | 广告服务 | 企业会员服务 | 新手上路 | 联系我们 | 友情链接
《电子产品世界》杂志社 版权所有 北京东晓国际技术信息咨询有限公司
Copyright ©2002 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
京ICP备060382号