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|
|