我在LPC2131移植uC/OS_ii时,看到启动代码中的几个特殊模式的堆栈分配程序如下:<br /> InitStack <br /> MOV R0, LR<br />;Build the SVC stack<br />;设置管理模式堆栈<br /> MSR CPSR_c, #0xd3 <br /> LDR SP, StackSvc <br />;Build the IRQ stack <br />AREA MyStacks, DATA, NOINIT, ALIGN=2<br />SvcStackSpace SPACE SVC_STACK_LEGTH * 4 ;Stack spaces for Administration Mode 管理模式堆栈空间<br />IrqStackSpace SPACE IRQ_STACK_LEGTH * 4 ;Stack spaces for Interrupt ReQuest Mode 中断模式堆栈空间<br />FiqStackSpace SPACE FIQ_STACK_LEGTH * 4 ;Stack spaces for Fast Interrupt reQuest Mode 快速中断模式堆栈空间<br />AbtStackSpace SPACE ABT_STACK_LEGTH * 4 ;Stack spaces for Suspend Mode 中止义模式堆栈空间<br />UndtStackSpace SPACE UND_STACK_LEGTH * 4 ;Stack spaces for Undefined Mode 未定义模式堆栈<br /><br />问题:MyStacks被分配到0x40001800,但排在第一位的StackSvc 为什么是0x4000185C呢?那5C个字节都放了些什么内容啊?多谢!<br /> |
|