
如下图所示是我们得到了制作完毕的BOOT.BIN、image.ub以及rootfs.tar.gz。 BOOT.BIN Zynq 的标准启动镜像格式包含了 FSBL、FPGA 比特流和 U-Boot可以直接被 Zynq 的 BootROM 识别并加载。 Image.ubPetaLinux 工程生成的一个 U-Boot 启动镜像文件采用 FIT (Flattened Image Tree) 格式。里面包含了linux的内核镜像和设备树文件DTB。 rootfs.tar.gz是根文件系统。一、BOOT.BIN与boot.bin的对比• BOOT.BIN全大写o 标准约定 这是 Xilinx 等厂商 BootROM 默认寻找的硬编码文件名。o 场景 当 Zynq 或 MicroBlaze 系统上电时内部的 BootROM 代码会去查找第一个分区通常是 FAT32 格式下名为 BOOT.BIN 的文件。o 大小写要求 虽然 FAT32 文件系统本身不严格区分大小写通常存储为大写但为了兼容性在格式化 SD 卡时将文件命名为大写 BOOT.BIN 是最稳妥的做法。如果命名为小写某些版本的 BootROM 可能无法识别。• boot.bin全小写o U-Boot 环境 这个名字通常出现在 U-Boot 运行之后。o 场景 在 Linux 系统启动后或者在使用 fatload 命令从 SD 卡加载文件到内存时开发者可能使用小写的 boot.bin 作为第二阶段加载的镜像文件名。o 手动加载 开发者为了调试或制作双系统可能会将不同的引导文件命名为 boot.bin 放在不同的目录下然后通过 U-Boot 命令手动加载而不是依赖 BootROM 自动加载。二、flashsd卡启动的介绍以及实现将BOOT.BIN写到flash中去引导sd卡中的镜像文件以及根文件系统最后在系统上电时在boot启动界面设置根文件系统在sd卡的第二分区之后设置自动启动最好将设置的参数写入flash固定地址达到固化的作用。首先将BOOT.BIN写入到flash中地址为0x0。烧录完毕即可。之后按照上一期的sd卡分区将文件分别放入第一分区和第二分区将image.ub放入第一分区不放入BOOT.BIN将根文件系统放入第二分区然后将sd卡插入板子使用flash启动即可。命令如下图所示1. 设置内核启动参数告诉内核根文件系统在 SD 卡第二个分区setenv bootargs ‘consolettyPS0,115200 root/dev/mmcblk0p2 rw rootwait’2. 设置自动启动命令从 SD 卡加载内核并启动setenv bootcmd ‘mmc dev 0; fatload mmc 0:1 0x10000000 image.ub; bootm 0x10000000’3. 检查设置是否正确printenv bootcmd bootargs4. 保存环境变量到 SPI Flash重要否则重启后失效saveenv5. 手动启动测试boot本文章由威三学社出品对课程感兴趣可以私信联系