MIPS系统异常现场分析工具的设计与实现
2014-01-21夏东盛
电子设计工程 2014年21期
夏东盛
(陕西工业职业技术学院 陕西 咸阳 712000)
MIPS是一款RISC体系结构的中央处理器,在嵌入式应用的场合,和ARM一样,MIPS核作为IP授权给各集成电路设计厂商根据自己的特定应用生产专用的SOC(single on chip)解决方案[1]。
为节省成本,很多嵌入MIPS的SOC实现,省掉了MIPS的J-TAG支持;或者应用MIPS核的系统,在形成产品应用到实际环境时,才出现死机等异常情况[2]。无论哪种情况,都使得要解决遇到的死机问题变得非常困难。
1 异常处理机制
任何一个CPU都要提供一个详细的异常和中断处理机制。一个软件系统,如操作系统,就是一个时序逻辑系统,通过时钟,外部事件来驱动整个预先定义好的逻辑行为[3-4]。本文通过设计工具载入异常内存数据 (dump),然后进行反汇编,得到系统发生异常情况,定位异常所在位置及引起异常的调用堆栈,反序列出函数调用清单。
2 工具设计与实现
2.1 设计思路及流程
产品软件在工作中,引起死机的原因,一般是非法指令或指令访问了非法地址[5]。而这类非法访问,在支持虚拟地址的CPU体系中,都会引起系统的指令异常,从而进入异常服务程序[6]。该工具根据异常的堆栈数据,配合整个程序空间的指令,列出引起死机问题的有效指令(引起异常的指令地址和函数调用返回的地址)的调用序列。从而避免到处怀疑代码,加入各种观察代码劳心费力的抓取死机现象来解决问题这种低效的方式。该工具对其他的硬件原因引起的死机问题,不在分析之列。流程图如图1。

图1 流程图Fig.1 Flow chart……p>
登录APP查看全文
