ARM关于栈的简单问题,请教

2019-07-16 09:44发布

本帖最后由 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
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
unsemi
1楼-- · 2019-07-16 15:19
我是爱莫能助啊,不好意思啊
yingsun2013
2楼-- · 2019-07-16 19:49
unsemi 发表于 2013-12-6 17:16
我是爱莫能助啊,不好意思啊

那还是谢谢你。

一周热门 更多>