AREA RamData, DATA, READWRITE
;^=MAP:定义一个结构化的内存表(storage map)的首地址,地址为0x33ff8000
^ _ISR_STARTADDRESS ;0x33ff8000
这里定义的内存表首地址是0x3ff8000,经过编译后被下载到norflash空间中,arm启动运行时通过拷贝到ram空间中,内存表正的是被拷贝到0x3ff8000地址了吗? adr r0, ResetEntry
ldr r2, BaseOfROM
cmp r0, r2
ldreq r0, TopOfROM
beq InitRam
ldr r3, TopOfROM
0
ldmia r0!, {r4-r7}
stmia r2!, {r4-r7}
cmp r2, r3
bcc %B0
sub r2, r2, r3
sub r0, r0, r2
InitRam
ldr r2, BaseOfBSS
ldr r3, BaseOfZero
0
cmp r2, r3
ldrcc r1, [r0], #4
strcc r1, [r2], #4
bcc %B0
mov r0, #0
ldr r3, EndOfBSS
1
cmp r2, r3
strcc r0, [r2], #4
bcc %B1
ldr pc, =%F2 ;goto compiler address
2
BaseOfROM DCD |Image$ER_ROM1$RO$Base|
TopOfROM DCD |Image$ER_ROM1$RO$Limit|
BaseOfBSS DCD |Image$RW_RAM1$RW$Base|
BaseOfZero DCD |Image$RW_RAM1$ZI$Base|
EndOfBSS DCD |Image$RW_RAM1$ZI$Limit|
|