问题如下:
FIQ_STACK_LEGTH EQU 0 IRQ_STACK_LEGTH EQU 9*8 ABT_STACK_LEGTH EQU 0 UND_STACK_LEGTH EQU 0
--------------华丽的分割线--------------------
IrqStackSpace SPACE IRQ_STACK_LEGTH * 4 FiqStackSpace SPACE FIQ_STACK_LEGTH * 4 AbtStackSpace SPACE ABT_STACK_LEGTH * 4 UndtStackSpace SPACE UND_STACK_LEGTH * 4
--------------华丽的分割线--------------------
StackIrq DCD IrqStackSpace + (IRQ_STACK_LEGTH - 1)* 4 StackFiq DCD FiqStackSpace + (FIQ_STACK_LEGTH - 1)* 4 StackAbt DCD AbtStackSpace + (ABT_STACK_LEGTH - 1)* 4 StackUnd DCD UndtStackSpace + (UND_STACK_LEGTH - 1)* 4
--------------华丽的分割线-------------------- RW,是从0x40000000开始的。。。。
在跳转到堆栈设置的时候,一开始就进行irq的堆栈设置 有一句 LDR SP,StackIrq
我用仿真观察sp的值是0x40002580
怎么和我自己计算的想要的结果不一样,
按照上面的分配方式计算,这个时候irq的sp应该是0x4000011C才对。
请虾米门解答,谢过~~
|