|
最近在看uboot里的start.s文件,对立面的代码重定位有些迷惑,代码如下
relocate: /* relocate U-Boot to RAM */
adr r0, _start /* r0 <- current position of code */ //此处_start是0
ldr r1, _TEXT_BASE /* test if we run from flash or RAM */
cmp r0, r1 /* don't reloc during debug */
beq clear_bss
ldr r2, _armboot_start //此处_start为何又是0x33d00000?
ldr r3, _bss_start
sub r2, r3, r2 /* r2 <- size of armboot */
#if 1
bl CopyCode2Ram /* r0: source, r1: dest, r2: size */
其中 对_armboot_start ,前面有定义:
|
|