[ZLG-ARM] LPC2000 stack问题,请大家请教!多谢!!1

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

han831

StackSvc是Svc模式下的堆栈指针的初始值,而MyStacks则是堆栈空间的起始值。这两个概念没有直接的联系。<br /><br />您可以看一下《ARM基础教程》里对堆栈的生长方向、满堆栈、空堆栈等概念的叙述。<br /><br />最后画一个Svc堆栈空间的图,它的初始堆栈指针在何处,它的大小是否符合代码里的指定?压栈出栈时,堆栈将如何变化?堆栈的顶部和底部地址是多少?<br /><br />准确将SVC堆栈空间的图画出来,有助于您对所提到的问题的理解。<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

2

主题

4

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部