[ZLG-ARM] 请教ARM微控制器工作模式实验

[复制链接]
1799|1
 楼主| songbw 发表于 2007-10-31 09:26 | 显示全部楼层 |阅读模式
在分配堆栈空间时<br />StackUsr&nbsp;&nbsp;&nbsp;&nbsp;DCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UsrStackSpace&nbsp;+&nbsp;(USR_STACK_LEGTH&nbsp;-&nbsp;1)*4<br />StackSvc&nbsp;&nbsp;&nbsp;&nbsp;DCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SvcStackSpace&nbsp;+&nbsp;(SVC_STACK_LEGTH&nbsp;-&nbsp;1)*4<br />StackIrq&nbsp;&nbsp;&nbsp;&nbsp;DCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IrqStackSpace&nbsp;+&nbsp;(IRQ_STACK_LEGTH&nbsp;-&nbsp;1)*4<br />StackFiq&nbsp;&nbsp;&nbsp;&nbsp;DCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FiqStackSpace&nbsp;+&nbsp;(FIQ_STACK_LEGTH&nbsp;-&nbsp;1)*4<br />StackAbt&nbsp;&nbsp;&nbsp;&nbsp;DCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AbtStackSpace&nbsp;+&nbsp;(ABT_STACK_LEGTH&nbsp;-&nbsp;1)*4<br />StackUnd&nbsp;&nbsp;&nbsp;&nbsp;DCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UndtStackSpace&nbsp;+&nbsp;(UND_STACK_LEGTH&nbsp;-&nbsp;1)*4<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AREA&nbsp;&nbsp;&nbsp;&nbsp;MyStacks,&nbsp;DATA,&nbsp;NOINIT,&nbsp;ALIGN=2<br />UsrStackSpace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USR_STACK_LEGTH&nbsp;*&nbsp;4&nbsp;<br />SvcStackSpace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SVC_STACK_LEGTH&nbsp;*&nbsp;4&nbsp;&nbsp;<br />IrqStackSpace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IRQ_STACK_LEGTH&nbsp;*&nbsp;4&nbsp;<br />FiqStackSpace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FIQ_STACK_LEGTH&nbsp;*&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />AbtStackSpace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ABT_STACK_LEGTH&nbsp;*&nbsp;4&nbsp;&nbsp;<br />UndtStackSpace&nbsp;&nbsp;&nbsp;&nbsp;SPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UND_STACK_LEGTH&nbsp;*&nbsp;4<br /><br />上面这段代码我看不明白,而在前面设置堆栈时<br />执行LDR&nbsp;&nbsp;SP,&nbsp;StackSvc后,R13变为0x400030FC,<br />执行LDR&nbsp;&nbsp;SP,StackIrq后,R13变为0x400031FC,<br />执行LDR&nbsp;&nbsp;SP,&nbsp;StackFiq后,R13变为0x4000323C,<br />.............<br />请问上面R13的值是如何算出来的?
zlgarm 发表于 2007-11-1 18:05 | 显示全部楼层

re

R13就是堆栈指针<br />它的地址是编译器编译代码之后根据配置自动计算出来的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

86

帖子

1

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