嵌入式系统异常复位定位思想 |
||||
文章作者:飞雪季节 文章来源:21IC中国电子网 责任编辑:不详 点击次数:
|
||||
|
|
||||
凡是靠软件支撑的嵌入式系统都会发生复位现象,如果没有发生过复位,那么很有可能会发生另外一种更糟糕的情况,系统吊死,陷入了死循环,你根本就不知道它到底运行到了哪里。也有可能是你的能力所限,异常中断没有写好,虽然处理器发生了异常,但你没有去处理。所以从这来看,发生了复位还不算最坏,至少系统能恢复,只要不是经常发生,没准你的客户始终都发现不了,还会夸你的产品很好。 以ARM7为例,我们知道在用户模式下我们常用的R0-R15以及CPSR共17个寄存器,其中R15是用作PC指针,R14用作函数返回指针,R13用作堆栈指针。那么发生异常后我们怎么做才能给以后提供足够的定位信息呢? 有些处理器会有指令执行过程中总线记录的环形RAM,每当指令执行,总线访问的地址,以及访问方式会实时记录下来,当有异常发生的时候,这片RAM区域会自动锁死,只能访问,不能改写,同样可以记录下来,保存到文件系统,供以后分析。 其实这里还没有说为什么处理器会产生异常,从我来看,绝大多数的异常内存越界引起的,比如 以上只是简单说一下原理,具体仍需要对处理器稍微有些了解,不是朝夕就能立刻生效的,ARM的话可以参考《ARM体系机构与编程》,其实这本书就是ARM公司的英文文档的精简翻译,看看英文原版也未尝不可。 |
||||
| 更新时间:2007-10-16 16:25:00 【大 中 小】【关闭窗口】 | ||||
· |
十大军工集团 | · |
北京军工企业 | · |
四川军工企业 | · |
重点军工企业 | · |
西安军工企业 | · |
十大军工企业 | · |
西南军工企业 | · |
陕西军工企业 | · |
重庆军工企业 | · |
湖南军工企业 | · |
航天军工企业 | · |
成都军工企业 |
· |
供应电源[7-22] | · |
长期大量求购各类通讯IC[9-2] | · |
长期求购德国工业编码器[6-30] | · |
汽油发动机[7-20] | · |
核电站用钢板16MnHR[7-22] | · |
便携防爆强光灯[7-24] | · |
长期大量收购积压库[8-21] | · |
特高价回收库存电子[8-21] | · |
采购废锂电池[8-21] | · |
Ensemble2™应用开发[9-2] | · |
工控机壳、卡式模组合、亚当模[9-2] | · |
仪表外壳、仪器箱、模块类[9-2] |