使用Flash引导Petalinux做的系统,也有进阶的做法。
部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。
专栏目录:记录自己的嵌入式学习之路-CSDN博客
目录
1. 预分配Flash空间
根据生成的bit文件大小估算BOOT.BIN文件的大小,为Flash大概分配四个分区:boot、bootenv、kernel、bootscr,分别存放BOOT.BIN文件、u-boot的环境变量、内核文件(image.ub/zImage/uImage等)、启动脚本boot.scr。
1.1 大小估计
(所有的分区大小必须是Flash的erase size的整数倍,其中w25q256的是64K)
-
boot分区大小要比BOOT.BIN文件稍大,还没编译的话也可以由system.bit文件的大小估算,因为在BOOT.BIN中,比特流文件占的空间最大;
-
bootenv分区的大小可以很小,64K都够够的了;
-
kernel分区要用image.ub/zImage/uImage等内核文件的大小进行估计,也是要稍大于文件,具体是哪个得看自己选择的内核文件格式;
-
bootscr分区也可以很小,64K也够了;
-
最好记录下大小、起止地址,方便后续填信息,例子:
1.2 其他注意事项
-
bootenv分区是必须的,没有的话好像会出错;
-
在kernel分区可以没有,因为内核文件可以放在SD卡;
-
所有分区加起来不要超过Flash的总大小,w25q256为256Mbit,合32MB。
2. 配置Flash分区
-
petalinux-config --> Subsystem AUTO Hardware Settings --> Flash Settings
-
根据预分配Flash空间的规划进行分区的分配和命名:
3. 配置各主要文件在Flash中的地址范围
-
petalinux-config --> u-boot Configuration --> u-boot script configuration --> QSPI/OSPI image offsets
-
根据预分配Flash空间的规划进行配置,这里三对选项其实分别配置的是uImage/zImage/Image、ramdisk.cpio.gz.u-boot、image.ub文件的地址偏移和映像尺寸。像只是用image.ub的话改fit image offset就行了。
4. 配置boot.scr的偏移
-
petalinux-config -c u-boot -->