在继续分析之前,先回顾一下当前相关寄存器的值、内存空间的使用情况和相关变量的值的情况。
r0 = 0x42BF_FF60 @ &gd
r1 = 0x42C0_0000
r2 = 0x42BF_FF10 @ &sp
r9 = 0x42BF_FF60 @ &gd
r13 = &( bl mmu_turn_on ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/start.S
sp = 0x42BF_FF10
lr = &( bl gdt_reset ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/start.S
RAM:
0xC000_0000
-
0x5000_0000(RAM_TOP)
-
0x4FFE_F800
UBOOT(Reserve 478K)
0x4FF7_8000
-
0x4FFF_4000
TLB table
0x4FFF_0000
-
0x4DF9_8000
malloc(Reserve 32768K)
0x4DF7_8000
Board Info(Reserve 80B) = gd->bd
0x4DF7_7FB0
New GD
0x4DF7_7F10
IRQ
0x4DF7_7F00(IRQ_SP)
-
0x4DF7_7EF0
-
0x4500_0000
Heap
0x4300_0000
-
0x42C8_C000
Page
0x42C8_0000
-
0x42C7_7988
UBOOT
0x42C0_0000
GD
0x42BF_FEB8
BD Info
0x42BF_FE68(START_ADDR_SP)
UBoot-Stack
0x4000_0000
gd内容:
bd_t *bd = 0x42BF_FF10
{
unsigned long bi_memstart = 0
phys_size_t bi_memsize = 0
unsigned long bi_flashstart = 0
unsigned long bi_flashsize = 0
unsigned long bi_flashoffset = 0
unsigned long bi_sramstart = 0
unsigned long bi_sramsize = 0
unsigned long bi_bootflags = 0