from ug1144 ug1157
一般而言, PetaLinux 工具遵从顺序工作流程模型。下表提供了一个示例设计工作流程, 展示了任务应完成的顺序以及该任务的相应工具或工作流程。
设计流程步骤 | 工具/工作流程 |
---|---|
硬件平台创建(仅用于定制硬件) | Vivado® 设计工具 |
创建 PetaLinux 工程 | petalinux-create -t project |
初始化 PetaLinux 工程(仅用于定制硬件) | petalinux-config --get-hw-description |
设置系统级选项 | petalinux-config |
创建用户组件 | petalinux-create -t COMPONENT |
设置 Linux 内核 | petalinux-config -c kernel |
配置根文件系统 | petalinux-config -c rootfs |
构建系统 | petalinux-build |
部署系统的封装 | petalinux-package |
启动系统进行测试 | petalinux-boot |
Test the system on qemu | petalinux-boot --qemu |
Update the PetaLinux tool system software components | petalinux-upgrade --url/–file |
创建新工程
petalinux-create --type project --template <-PLATFORM> --name
–template
○ zynqMP (for Zynq UltraScale+ MPSoC) // petalinux-create --type project --template zynqMP --name
○ zynq (for Zynq-7000 devices)
○ microblaze (for MicroBlaze™ processor)
通过BSP创建
petalinux-create -t project -s xxx.bsp
Option | 功能 | Value Range | Default Value |
---|---|---|---|
-t,–type TYPE | Specify the TYPE of object to create. This is required. | • project •apps •modules | None |
-n,–name NAME | 创建具有指定名称的对象。当从BSP源创建项目时,这是可选的。否则,这是必需的。 | 用户指定 | 当从BSP源创建项目时,该项目使用源BSP的名称 |
-p,–project PROJECT | PetaLinux项目目录路径,用于在项目中创建组件。这是可选的。 | 用户指定 | 当前目录 |
–force | 覆盖现有的文件。可选的 | None | None |
-h,–help | 显示使用信息。可选的 | None | None |
Create a new project from a reference BSP file
$ petalinux-create -t project -s
• Create a new project based on the MicroBlaze™ processor template
$ petalinux-create -t project -n --template microblaze
使用petalinux-create -t COMPONENT命令可以在指定的PetaLinux项目中创建各种组件。 然后,可以使用petalinux-config -c rootfs工作流切换这些组件,使其有选择地包含在最终系统中或从最终系统中排除。
创建在rootfs中启用的应用程序组件。
$ petalinux-create -t apps -n --template --enable
创建一个新的仅安装应用程序组件。 在此流程中,未编译任何内容
$ petalinux-create -t apps -n --template install
创建一个新模块并启用
petalinux-create -t modules -n --template --enable
petalinux-config --get-hw-description命令允许使用指定的Vivado Design Suite硬件项目中的特定于硬件的信息来初始化或更新PetaLinux项目。 受此过程影响的组件可以包括FSBL配置,U-Boot选项,Linux内核选项和Linux设备树配置。 应谨慎使用此工作流程,以防止对PetaLinux项目的硬件配置进行意外和/或意外更改。 此工作流程使用的路径是包含HDF / XSA文件的目录,而不是HDF / XSA文件本身的完整路径。
petalinux-config --get-hw-description=
Image Packaging Configurations -> Root filesystem type -> SD card
petalinux-config -c COMPONENT命令允许您使用标准的menuconfig接口来控制嵌入式Linux系统的构建方式,还可以生成嵌入式软件应用程序的源代码。 当petalinux-config在没有其他选项的情况下执行时,它将启动系统级或“通用”菜单配置。
petalinux-config -c kernel:自定义Linux内核
petalinux-config -c u-boot:自定义U-Boot
petalinux-config -c rootfs:自定义root 文件系统
The --oldconfig/–silentconfig option allows you to restore a prior configuration.
petalinux-build
该步骤生成设备树 DTB 文件、 FSBL第一阶段引导加载程序(如果选定的话)、 U-Boot、 Linux 内核以及根文件系统镜像。 最后, 它生成必需的启动镜像。
在构建完成时,生成的镜像将位于 / images 和 /tftpboot 目录之内。
运行 petalinux-build 时, 它为平台生成 FIT 镜像。还会生成 RAM 磁盘镜像 rootfs.cpio.gz.u-boot
最终镜像 <-plnx-proj-root>/images/
linux/image.ub, 是一种 FIT 镜像。内核镜像(包括 RootFS)是 Zynq® UltraScale+™ MPSoC 的“Image” 、
Zynq-7000 器件的“zImage”以及 MicroBlaze 处理器的“image.elf” 。
仅构建 FSBL:
$ petalinux-build -c fsbl (for MicroBlaze, it is fs-boot)
petalinux-package --boot|–bsp|–prebuilt|–sysroot [options]
PetaLinux -package工具将PetaLinux项目打包成适合部署的格式。该工具提供了几个工作流,它们的操作取决于目标包格式。支持的格式/工作流是 boot, bsp, and pre-built。petalinux-package工具使用包类型名执行,以petalinux-package --PACKAGETYPE格式指定特定的工作流。
PACKAGETYPE:
boot包类型: 创建允许引导目标设备的文件(.BIN或.MCS)
bsp包类型:创建一个.bsp文件,其中包含目标PetaLinux项目的全部内容。此选项允许您导出和重用bsp
pre-build :在目标PetaLinux项目中创建一个名为“pre-build”的新目录,并包含对直接在物理板上引导有用的预构建内容。这个包类型通常用作创建bsp包类型的前身。
image
sysroot:包类型为Vitis™软件平台安装sysroot。它可以指定安装程序路径和安装目录路径。
生成启动镜像 (Boot Image) for Zynq UltraScale+MPSoC:启动镜像通常含有第一阶段引导加载程序、 FPGA 比特流(可选)、 PMU 固件、 ATF 和 U-Boot.
生成.bin格式的启动镜像。
$ petalinux-package --boot --format BIN
–fsbl images/linux/zynqmp_fsbl.elf
–u-boot images/linux/u-boot.elf
–pmufw images/linux/pmufw.elf
–fpga images/linux/*.bit
–force
petalinux-package --boot
petalinux-package --boot:是一条命令,生成BOOT.bin的引导文件,详情见UG1157
生成一个可引导的映像。Zynq系列设备的可引导格式为BOOT.BIN,可以从SD卡引导。 对于基于MicroBlaze的设计,默认格式为MCS PROM文件,适用于使用Vivado Design Suite编程或其他PROM编程器。
对于Zynq系列中的设备,这个工作流是Vitis软件平台提供的bootgen实用程序的包装器。对于基于microblaze的FPGA设计,该工作流是对应Vivado Tcl命令的包装器,并生成MCS格式的编程文件。这个MCS文件可以直接编程到目标板,然后启动。
Create a boot image (BOOT.BIN) including FSBL, ATF, bitstream, and u-boot.
cd images/linux
1,petalinux-package --boot --format BIN --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga system.bit --atf bl31.elf --force
2,petalinux-package --boot --format BIN --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga system.bit --atf bl31.elf --dtb system.dtb --force
3,petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga system.bit
例子:
为Zynq设备创建一个BOOT.BIN文件(包括Zynq-7000和Zynq UltraScale+ MPSoC)。
petalinux-package --boot --format BIN --fsbl --u-boot -o
为Zynq设备创建一个BOOT.BIN文件,其中包括PL比特流和FITimage
petalinux-package --boot --format BIN --fsbl --u-boot --fpga --kernel -o
为Zynq UltraScale+ MPSoC创建一个BOOT.BIN文件,其中包含PMU固件
petalinux-package --boot --u-boot --kernel --pmufw
使用 petalinux-package --prebuilt 封装预构建镜像
PetaLinux-boot命令通过JTAG/QEMU通过PetaLinux映像引导MicroBlaze CPU、Zynq设备和Zynq UltraScale+ MPSoC
bootable images storage
• In petalinux-boot --jtag workflow, images are downloaded and booted on a physical
board using a JTAG cable connection.
• In petalinux-boot --qemu workflow, images are loaded and booted using the QEMU
software emulator.
petalinux-boot --jtag
PetaLinux-boot --jtag命令使用jtag连接引导PetaLinux映像启动MicroBlaze cpu、Zynq UltraScale+ MPSoCs或Zynq-7000设备
PetaLinux -boot–qemu
PetaLinux -boot–qemu命令使用qemu仿真器引导PetaLinux映像启动MicroBlaze CPU、Zynq UltraScale+ MPSoC或Zynq-7000设备。许多QEMU选项需要超级用户(根)访问才能正确操作。root选项启用root模式并提示您输入sudo凭据
petalinux-create
petalinux-config
下面的步骤将验证PetaLinux是否配置为为SD引导创建Linux和引导映像
Subsystem AUTO Hardware Settings
RootFS Type 配置
在 INITRAMFS 模式中, RootFS 被包含在内核镜像中。
• 镜像 → 镜像(内核) + rootfs.cpio(用于 Zynq® UltraScale+™ MPSoC)
Zynq UltraScale+ Devices
ZynqUltraScale+ MPSoC PS组包括以下引擎:
•基于四核Arm Cortex-A53的应用处理单元(APU)
•基于双核Arm Cortex-R5的实时处理单元(RPU)
•Arm Mali-400基于MP2的图形处理单元(GPU)
•专用平台管理单元(PMU)和配置安全单元(CSU)
•高速外设列表,包括显示端口和SATA
PL部分,除了可编程逻辑单元,也与少数高性能外设集成,包括以下:
• Integrated Block for PCI Express
• Integrated Block for Interlaken
• Integrated Block for 100G Ethernet
• System Monitor
• Video Codec Unit
Vitis Integrated Design Environment (IDE)