startup.s中有这么一段
StackSvc DCD SvcStackSpace + (SVC_STACK_LEGTH - 1)* 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
其中SVC_STACK_LEGTH 等设为零。
这里为什么要减一?感觉减一后指针就越界了(结合分散加载文件来看的话)
另外定义了用户模式栈后,那C程序的栈是否也可以使用这个栈?这两者可否重合?
最后heap和stack共用一个顶,那堆栈岂不是重叠了一部分?
刚入门,问题幼稚,还望大虾不吝指教谢谢
|