本文解释中止1M3 (1000003个)错误信息,因为此示例显示:
#define ADDRESS_ERROR 1000003 /* Address error */
There are no specific requirements for this document.
This document is not restricted to specific software and hardware versions.
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
此中止被记录,当MC680x0处理器从一个外部设备不收到一个信号例如存储设备表明时数据传输发生了。这通常是,因为软件指定一个无效的地址(无效,因为指示器未初始化)或,因为硬件设备不能提供转移确认信号。
软件错误堆栈的服务切换点(SSP)部分有MC68040处理器的此格式类似网络处理器卡(NPC)或宽带控制器卡(BCC) :
No. Type Number Data(Hex) PC(Hex) PROC SwRev Date Time 1. Abort 1000003 00000000 3001565C TRNS 9.3.45 08/04/03 03:14:53 SSP 30330660 10 00 30 15 10 9A 70 08 30 32 FD C0 01 01 00 01 ..0...p.02...... SSP 30330670 00 01 00 01 A4 22 C3 88 30 32 FD BC 00 00 00 0A ....."..02...... (Address error exception stack frame; p9-4 in MC68040 User's Manual) 1000 = status register 3015 109A = program counter 7 = stack frame type (access error) 0 08 = vector offset (8 = bus error) 3032 FDC0 = effective address 0101 = special status word 0001 = writeback 3 status 0001 = writeback 2 status 0001 = writeback 1 status A422 C388 = fault address 3032 FDBC = writeback 3 address 0000 000A = writeback 3 data
在此堆栈的重要信息是不可能被获取,是出错地址中止(程序计数器)和地址的位置。
您能检查Nmemmap.h文件确定出错地址是否是有效硬件寄存器。在本例中,地址0xA422C388is不是有效硬件寄存器,因此软件尝试访问一个无效的地址。硬件故障的一个示例是疏忽的其中一个并行端口寄存器回应。PAR_PTS基地址是0xA0000000。
您能使用程序与相反确定软件尝试访问的位置。期望的汇编指令是搬到地址寄存器指定的存储器位置。因为处理器读在指令前的执行的指令这也许不是指令在程序计数器。它有传递的体系结构。
当尝试做出读从地址1时,此指令序列生成一个1M3中止错误:
cmp.w #1234,Abort_Now BNE CK_PSOS move.l #1,A0 move.l (A0),D0 ;generate a bus error