【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件

本文介绍了如何通过复制PetaLinux工程并进行配置,生成从QSPIFlash启动的Linux镜像。首先复制项目文件,然后配置工程以选择primaryflash作为启动媒体,设置INITRAMFS作为根文件系统类型,并调整分区大小。接着,通过petalinux-build和petalinux-package命令编译和打包BOOT.bin文件,最后将此文件烧写进QSPIFlash。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章 中学习了使用 PetaLinux 定制 Linux 的方法,制作了 SD 卡启动文件,本期介绍如何使用 PetaLinux 配置生成从 QSPI Flash 启动的 Linux 镜像文件。

复制 Petalinux 工程

如果我们想保留 SD 卡启动的 Petalinux 工程,但是又不想新建一个,我们可以把老工程复制一份。

  • 在工程目录同时按键 Ctrl +H,显示隐藏文件,将 project-spec、.petalinux、config.project 复制到一个新的目录,作为一个新的 Petalinux 工程

在这里插入图片描述

  • 再把 images/linux 目录下的 bit 文件也复制到新的工程目录下,用于合成带 PL 配置的 BOOT

在这里插入图片描述

  • 进入新工程,右键选择打开终端

在这里插入图片描述

配置编译 Petalinux

  • 配置 Vivado 和 Petalinux 环境变量
source /opt/pkg/petalinux/settings.sh
source /opt/Xilinx/Vivado/2017.4/settings64.sh

在这里插入图片描述

  • 使用 petalinux-config 命令配置 Petalinux 工程
petalinux-config

在这里插入图片描述

  • 进入 Petalinux 配置界面

在这里插入图片描述

  • Subsystem AUTO Hardware Settings ---> Advanced bootable images storage Settings ---> boot image settings ---> image storage media 选项中选择 primary flash

在这里插入图片描述

  • Subsystem AUTO Hardware Settings ---> Advanced bootable images storage Settings ---> kernel image settings ---> image storage media 选项中选择 primary flash

在这里插入图片描述

  • Subsystem AUTO Hardware Settings → Flash Settings 中可以修改 QSPI flash 的分区,默认的
    就差不多可以使用,如果你的文件大小超过了默认分区的大小,要自己调整一下

在这里插入图片描述

  • Image Packaging Configuration ---> Root filesystem type 选择 INITRAMFS,使用 RAM 类型
    的根文件系统,这样就可以方便打包烧写到 QSPI Flash

在这里插入图片描述

  • Firmware Version Configuration 中可以修改 Host name 等信息

在这里插入图片描述

  • 保存配置

在这里插入图片描述

  • 退出并编译

在这里插入图片描述

  • 使用 petalinux-build 命令编译工程

在这里插入图片描述

  • 使用下面命令合成 BOOT,和前面的教程的差异就是多出 --kernel 选项,把内核也打包到
    BOOT.bin 文件里
petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga ./images/linux/platform.bit --u-boot --kernel --force

在这里插入图片描述

  • 生成 bin 文件

在这里插入图片描述

将 BOOT.bin 烧写进 QSPI Flash

未完待续…

### ZYNQ QSPI FLASH 启动配置教程 #### 配置 Petalinux 工程 通过 `petalinux-config` 命令可以进入 Petalinux 的配置界面,在此界面中可以选择并启用从 QSPI Flash 启动的功能。具体操作包括设置引导加载器(Bootloader)、设备树(Device Tree)和其他必要的启动参数[^1]。 #### 查看 QSPI Flash 大小 为了确保能够正确存储所有的启动文件,需要先确认目标板上的 QSPI Flash 容量。这可以通过硬件规格文档或者特定工具来完成。通常情况下,容量会在几 MB 到几百 MB 不等。了解其大小有助于合理规划分区布局[^2]。 #### 准备必要文件 成功实现从 QSPI Flash 启动 Linux 所需的主要文件如下: - **uImage**: 这是一个标准的 Linux 内核镜像。 - **devicetree**: 设备树描述了硬件结构给操作系统使用。 - **BOOT.BIN**: 包含第一阶段引导程序 (FSBL) 和 U-Boot 引导加载器。 - **uramdisk.image.gz**: 初始化 RAM 文件系统压缩包。 - **design.bin**: FPGA 编程数据而非传统的 .bit 文件格式[^3]。 这些文件都需要被放置到指定位置以便于后续烧录过程顺利执行。 #### 创建 MTD 分区表 由于 Zynq 平台支持多种类型的非易失性存储介质,并且利用 MTD 子系统管理它们,则创建合适的分区方案至关重要。对于 QSPI Flash 来说,常见的做法是将其划分为多个区域分别用于存放上述提到的不同种类的数据项。例如,第一个扇区可能保留给 BOOT.BIN;第二个用来保存 u-boot 环境变量等等。 #### 实际部署流程概述 实际的操作步骤涉及到了解压源码、交叉编译环境搭建等多个方面,这里仅提供概念性的指导而不深入细节部分。最终目的是将所有必需组件写入至对应的物理地址范围内从而达成自主开机运行的目的。 ```bash # 示例命令展示如何生成 boot image petalinux-build petalinux-package --boot --format BIN --fsbl <path_to_fsbl>.elf \ --fpga <path_to_design_bin> --u-boot --force ``` 以上脚本片段展示了怎样构建一个完整的 Boot Image ,其中包含了 FSBL(Firmware Secondary Boot Loader),FPGA bitstream 转换后的 design.bin 形式以及 U-Boot 组件等内容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello阿尔法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值