在分配堆栈空间时<br />StackUsr DCD UsrStackSpace + (USR_STACK_LEGTH - 1)*4<br />StackSvc DCD SvcStackSpace + (SVC_STACK_LEGTH - 1)*4<br />StackIrq DCD IrqStackSpace + (IRQ_STACK_LEGTH - 1)*4<br />StackFiq DCD FiqStackSpace + (FIQ_STACK_LEGTH - 1)*4<br />StackAbt DCD AbtStackSpace + (ABT_STACK_LEGTH - 1)*4<br />StackUnd DCD UndtStackSpace + (UND_STACK_LEGTH - 1)*4<br /><br /> AREA MyStacks, DATA, NOINIT, ALIGN=2<br />UsrStackSpace SPACE USR_STACK_LEGTH * 4 <br />SvcStackSpace SPACE SVC_STACK_LEGTH * 4 <br />IrqStackSpace SPACE IRQ_STACK_LEGTH * 4 <br />FiqStackSpace SPACE FIQ_STACK_LEGTH * 4 <br />AbtStackSpace SPACE ABT_STACK_LEGTH * 4 <br />UndtStackSpace SPACE UND_STACK_LEGTH * 4<br /><br />上面这段代码我看不明白,而在前面设置堆栈时<br />执行LDR SP, StackSvc后,R13变为0x400030FC,<br />执行LDR SP,StackIrq后,R13变为0x400031FC,<br />执行LDR SP, StackFiq后,R13变为0x4000323C,<br />.............<br />请问上面R13的值是如何算出来的? |
|