ARM編程:ARM初始化,堆棧地址是怎樣計(jì)算的
USR_STACK_LEGTH
SVC_STACK_LEGTH
FIQ_STACK_LEGTH
IRQ_STACK_LEGTH
ABT_STACK_LEGTH
UND_STACK_LEGTH
;
;
;
;
;
InitStack
的
;設(shè)置管理模式堆棧
;設(shè)置中斷模式堆棧
;設(shè)置快速中斷模式堆棧
;設(shè)置中止模式堆棧
;設(shè)置未定義模式堆棧
;設(shè)置系統(tǒng)模式堆棧
StackUsr
StackSvc
StackIrq
StackFiq
StackAbt
StackUnd
;
UsrStackSpace
SvcStackSpace
IrqStackSpace
FiqStackSpace
AbtStackSpace
UndtStackSpace
經(jīng)過ADS1.2仿真;發(fā)現(xiàn)地址變化如下
svc
irq
fiq
abort
undef
sys
svc
- 關(guān)鍵是MyStacks的起始地址.看看ADS的配置里linker選項(xiàng)里的配置. [xiaogang]2007-4-16
11:57:05 如果沒有配置.則看
AREA MyStacks, DATA, NOINIT, ALIGN=2 后面是否有個(gè)
^XXXXX.. 來定義MyStacks的起始地址
得到起始地址后,再由SPACE按順序分配內(nèi)存空間 - 對(duì),RW
Base設(shè)置的是0x40003000 [jinjing999666]2007-4-16 20:40:08 我又把RW
Base設(shè)置的是0x40005000
觀察都變成了
svc0x400050fc
irq0x400051fc
fiq0x4000523c
undef0x4000523c
sys0x400050fc
評(píng)論