uboot在启动之后BL0自动将BL1自动加载到IRAM中,UBOOT负责将BL1、环境变量和KERNEL加载到DDR中。这就涉及到BL1、环境变量、UBOOT、KERNEL和RFS在SD中存放的位置问题,到底应该把这些镜像烧录到SD卡的哪一个扇区。
通过分析UBOOT的cmd_movi.c文件来明确到底应该把这些镜像烧录到何处
在函数init_raw_area_table中,有如下代码
追踪宏定义可以得出各镜像所在扇区为
BL1:1~16
环境变量:17~48
UBOOT:49~1072
KERNEL:1073~9264
RFS:9265~62512
因此,使用dd命令烧录uboot时
dd iflag=dsync oflag=dsync if=bl1.bin of=/dev/sdb seek=1
dd iflag=dsync oflag=dsync if=u-boot.bin of=/dev/sdb seek=49