当前位置: 首页 > news >正文

Petalinux使用QSPI FLASH引导启动

目录

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  -->  ARM architecture  -->  Boot script offset

  2. 根据预分配Flash空间的规划进行配置;

  3. 但是这样修改会无效,也就是说修改后退出menu-config后&


http://www.mrgr.cn/news/81505.html

相关文章:

  • 一步一步写线程之十六线程的安全退出之二例程
  • 漏洞扫描:网络安全的 “体检” 与 “防护指南”
  • HarmonyOS NEXT 实战之元服务:静态案例效果--- 日出日落
  • MySQL-MVCC(多版本并发控制)
  • 深度学习blog-卷积神经网络(CNN)
  • 【C++决策和状态管理】从状态模式,有限状态机,行为树到决策树(三):基于BT行为树实现复杂敌人BOSS-AI
  • Unity 实现Canvas显示3D物体
  • 【ES6复习笔记】ES6的模块化(18)
  • 网络安全研究中的网络攻击
  • Flink调优----反压处理
  • AI Agent开源框架汇总(持续更新)
  • Qt工作总结02 <设置工具栏ToolBar>
  • 2024-12-24 NO1. XR Interaction ToolKit 环境配置
  • linux-21 目录管理(一)mkdir命令,创建空目录
  • 踏踏实实练SQLday1-1连续登录
  • 【SLAM】点线特征的VINS-Mono:PL-VINS算法测试
  • Tasmota ESP设备开源固件(esp8266,32X)
  • lua-debug for Sublime
  • redis——岁月云实战
  • Node.js 工具:在 Windows 11 中配置 Node.js 的详细步骤
  • SpringBoot 集成 MongoDB
  • 驱动开发系列31 - Linux Graphics 调试 mesa 的 glDrawArrays (三)
  • 51c大模型~合集96
  • 【ES6复习笔记】集合Set(13)
  • 【深度学习实战:kaggle自然场景的图像分类-----使用keras框架实现vgg16的迁移学习】
  • Jenkins 构建流水线