uboot在启动之后BL0自动将BL1自动加载到IRAM中,UBOOT负责将BL1、环境变量和KERNEL加载到DDR中。这就涉及到BL1、环境变量、UBOOT、KERNEL和RFS在SD中存放的位置问题,到底应该把这些镜像烧录到SD卡的哪一个扇区。

通过分析UBOOT的cmd_movi.c文件来明确到底应该把这些镜像烧录到何处

在函数init_raw_area_table中,有如下代码

uboot烧录到SD卡uboot烧录到SD卡uboot烧录到SD卡uboot烧录到SD卡uboot烧录到SD卡

uboot烧录到SD卡

追踪宏定义可以得出各镜像所在扇区为

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

相关文章: