shinea8868 发表于 2010-9-7 09:50:44

关于ARM的启动代码中栈大小的定义的问题

在ADS中的启动码里有这么一段
下面是在ADS中的一段启动代码(网上找的程序)
;堆栈分配
;SDRAM片选采用nGCS6,所以地址从0x30000000开始,BANK6和BANK7 SDRAM容量必须一致,
;BANK7的起始地址和尺寸不固定,本案中采用两片32MB的SDRAM
;地址空间从0x30000000到0x33FFFFFF,此地址域段处于nGCS6片选范围内。
SDRAM_END                        EQU        0x34000000                        ;0x34000000
_STACK_BASEADDRESS        EQU (SDRAM_END-0x8000)        ;0x33ff8000
UserStack                EQU                (_STACK_BASEADDRESS-0x3800)        ;0x33ff4800 ~
SVCStack                EQU                (_STACK_BASEADDRESS-0x2800) ;0x33ff5800 ~
UndefStack                EQU                (_STACK_BASEADDRESS-0x2400) ;0x33ff5c00 ~
AbortStack                EQU                (_STACK_BASEADDRESS-0x2000) ;0x33ff6000 ~
IRQStack                EQU                (_STACK_BASEADDRESS-0x1000)        ;0x33ff7000 ~
FIQStack                EQU                (_STACK_BASEADDRESS-0x0)        ;0x33ff8000 ~


而KEIL自动生成的代码有这么一段
下面是KEIL自动生成的一个启动代码中的一段程序
UND_Stack_SizeEQU   0x00000000
SVC_Stack_SizeEQU   0x00000008
ABT_Stack_SizeEQU   0x00000000
FIQ_Stack_SizeEQU   0x00000000
IRQ_Stack_SizeEQU   0x00000080
USR_Stack_SizeEQU   0x00000400

ISR_Stack_SizeEQU   (UND_Stack_Size + SVC_Stack_Size + ABT_Stack_Size + \
                         FIQ_Stack_Size + IRQ_Stack_Size)
个人认为他们定义的内容应该是相同的,但怎么感觉很不一样?不知大侠们可以指点一下小弟不?
页: [1]
查看完整版本: 关于ARM的启动代码中栈大小的定义的问题