呵呵, 你要你使用下面的代码其值就一定是: 0xb9206e50<br /> Reset LDR PC, ResetAddr<br /> LDR PC, UndefinedAddr<br /> LDR PC, SWI_Addr<br /> LDR PC, PrefetchAddr<br /> LDR PC, DataAbortAddr<br /> DCD 0xb9206e50<br /> LDR PC, [PC, #-0x120]<br /> LDR PC, FIQ_Addr<br /><br />ResetAddr DCD ResetInit<br />UndefinedAddr DCD Undefined<br />SWI_Addr DCD SoftwareInterruptAdd<br />PrefetchAddr DCD PrefetchAbort<br />DataAbortAddr DCD DataAbort<br />Nouse DCD 0<br />IRQ_Addr DCD 0<br />FIQ_Addr DCD FIQ_Handler <br /><br />因为通过DCD为各异常向量分配了确定的地址空间来存储异常处理函数地址。这使得0x00000000到0x0000001c中除0x00000014外,存储着确定的值, 这样我们也就可以计算出0x00000014应该存放的值(0xb9206e50). 上电后,系统会判断前8个字之和是否为零,以确定代码是否有效。
|