【Linux】Petalinux使用QSPI FLASH引导启动

使用Flash引导Petalinux做的系统,也有进阶的做法。

部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。

 专栏目录:记录自己的嵌入式学习之路-CSDN博客


目录

1. 预分配Flash空间

1.1 大小估计

1.2 其他注意事项

2. 配置Flash分区

3. 配置各主要文件在Flash中的地址范围

4. 配置boot.scr的偏移

5. 修改U-Boot环境变量在Flash的偏移量

6. 配置设备树中的Flash

7. 开启对EXT4分区管理的支持(根据需要)

8. 编译u-boot

9. 编译全部文件

10. 打包BOOT.BIN

11. 修改boot.scr

12. 将对应文件扩充至各自分区的大小

13. 烧写Flash

14. 设置在SD卡模式下的RAMDISK(进阶、可选)

15. 设置SD卡模式下使用EMMC(进进阶)


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分区

  1. petalinux-config  -->  Subsystem AUTO Hardware Settings  -->  Flash Settings

  2. 根据预分配Flash空间的规划进行分区的分配和命名:

        

3. 配置各主要文件在Flash中的地址范围

  1. petalinux-config  -->  u-boot Configuration  -->  u-boot script configuration  -->  QSPI/OSPI image offsets

  2. 根据预分配Flash空间的规划进行配置,这里三对选项其实分别配置的是uImage/zImage/Image、ramdisk.cpio.gz.u-boot、image.ub文件的地址偏移和映像尺寸。像只是用image.ub的话改fit image offset就行了。

        

4. 配置boot.scr的偏移

  1. petalinux-config -c u-boot  --> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值