1.垫脚石空间不够存放完整的uboot,所以要利用前面能够存放在垫脚石里的代码将剩余uboot复制到内存
2.相对跳转和绝对跳转
3.起始地址:(在本课由于未初始化NAND,所以起始地址在垫脚石)垫脚石的起始地址。
终点:链接器脚本里指定的起始链接地址
4.搬移方式,地址每次自动增加4个字节,利用一个中转寄存器。
5.代码:
@将bin文件从_start开始到bss_start结束的数据搬移到_start指定的链接地址(0x50008000)
copy_to_ddr:
adr r0, _start
ldr r1, =_start
ldr r2, =bss_start
copy_loop:
ldr r3,[r0],#4
str r3,[r1],#4
cmp r1,r2
bne copy_loop
mov pc, lr