ARM编程:ARM初始化,堆栈地址是怎样计算的
USR_STACK_LEGTH
SVC_STACK_LEGTH
FIQ_STACK_LEGTH
IRQ_STACK_LEGTH
ABT_STACK_LEGTH
UND_STACK_LEGTH
;
;
;
;
;
InitStack
的
;设置管理模式堆栈
;设置中断模式堆栈
;设置快速中断模式堆栈
;设置中止模式堆栈
;设置未定义模式堆栈
;设置系统模式堆栈
StackUsr
StackSvc
StackIrq
StackFiq
StackAbt
StackUnd
;
UsrStackSpace
SvcStackSpace
IrqStackSpace
FiqStackSpace
AbtStackSpace
UndtStackSpace
经过ADS1.2仿真;发现地址变化如下
svc
irq
fiq
abort
undef
sys
svc
- 关键是MyStacks的起始地址.看看ADS的配置里linker选项里的配置. [xiaogang]2007-4-16
11:57:05 如果没有配置.则看
AREA MyStacks, DATA, NOINIT, ALIGN=2 后面是否有个
^XXXXX.. 来定义MyStacks的起始地址
得到起始地址后,再由SPACE按顺序分配内存空间 - 对,RW
Base设置的是0x40003000 [jinjing999666]2007-4-16 20:40:08 我又把RW
Base设置的是0x40005000
观察都变成了
svc0x400050fc
irq0x400051fc
fiq0x4000523c
undef0x4000523c
sys0x400050fc
ARM编程ARM初始化堆栈地 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)