本帖最后由 yingsun2013 于 2013-12-6 16:28 编辑
ARM里面7种工作模式,除了用户和系统外,其它每种模式都有各自独立的栈空间。
C语言工作时,也需要堆和栈。
那么ARM上运行C程序时,用户模式下的栈和C程序中的栈有什么关系,有什么区别?
是不是使用__user_initial_stackheap(1)设置了C程序堆栈后,就不需要在Startup.s文件中设置用户模式的栈(2)了
----------------------(1)---------------------
__user_initial_stackheap
LDR R0, =bottom_of_heap
LDR R1, =StackUsr
LDR R2, =top_of_heap
LDR R3, =bottom_of_Stacks
BX LR
----------------------(2)---------------------
Startup.s文件中设置用户模式的栈
MSR CPSR_c, #Mode_USR
LDR SP, =StackUsr
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
那还是谢谢你。
一周热门 更多>