目前网络上的许多项目都是2019 年之前的版本,使用2022.1 版遇到各种小问题。这里使用一下petalinux工具。vivado,vitis HLS 都安装在windows 下,而petalinux 必须安装在linux 下,尝试安装在windows 10的wsl 上失败了 只能找个ubuntu PC 来安装。
本文件参考《PetaLinux Tools Documentation: Reference Guide (UG1144)》
petalinux 是什么?
PetaLinux 是一套直接构建在 Yocto 项目顶层的定制工具,用于实现与赛灵思平台的集成。因此,在某种意义上 PetaLinux 仍属于 Yocto。但赛灵思更进一步,通过提供一套额外的工具,简化了开发流程,使新手使用起来及其方便。
petalinux是xilinx zynq 的嵌入式Linux 软件开发工具(SDK)。它用来裁剪和生成zynq’ 的操作系统。他并不是linux 本身。
petalinux 包含了下面几部分:
- Yocto Extensible SDK (eSDK )
- XSCT (Xilinx Software Command-Line Tool) and toolchains
- PetaLinux CLI tools
petalinux 的命令工具
- petalinux-create
- petalinux-config
- petalinux-build
- petalinux-util
- petalinux-package
- petalinux-upgrade
- petalinux-devtool
- petalinux-boot
petalinux 的安装
可以将vivado和petalinux 按照在同一个电脑上,也可以分开安装。我目前是在windows PC上安装了vivado,vitis 工具,而在另外一个ubuntu 电脑上安装了petalinux工具。安装没有太多的障碍,只是缺什么,装什么就可以了。
petallinux 设计流程
准备工作
- 为linux 配建硬件平台
开始做petalinux 设计之前,需要使用vivado 工具完成zynq 的硬件设计。完成以后,点击 File- ->Export-->Export Hardware,点击 OK。导出硬件设计文件XXX.xsa,
注意:以前的文件扩展名是hdf。老版本的项目需要升级成新的版本,输出xsa文件
- 执行下列命令,使 PetaLinux 工具可以使用
$source ~/petalinux/2022.1/settings.sh
建立petalinux新项目
建立一个petalinux_proj 文件夹,进入该文件夹
$ petalinux-create --type project --template <PLATFORM> --name <PROJECT_NAME>
其中:<PLATFORM>可以选择
- versal (for Versal ACAP)
- zynqMP (for Zynq UltraScale+ MPSoC)
- zynq (for Zynq-7000 devices)
- microblaze (for MicroBlaze™ processor)
<PROJECT_NAME>
是你构建文件的名称
例如:
petalinux-create --type project --template zynq --name z7nano
导入硬件平台
2019 年前的版本使用system.hdf 文件,而以后的版本使用system.xsa 文件,这需要将老版本的项目转换称为新版本的项目,或者重新建立一个项目,File- ->Export-->Export Hardware,点击 OK,产生xsa 文件
petalinux-config --get-hw-description <PATH-TO-XSA-FILE>
如果xsa 文件在当前目录中,输入下面的命令:
$ petalinux-config --get-hw-description=.
运行了一段时间后,出现system configuration menu.
构建image
$ petalinux-build
完成之后,images –linux 目录中包含了下列文件:
BOOT.bin 文件打包
- 使用
petalinux-package
命令
petalinux-package --boot --fsbl ./images/linux/zynqmp_fsbl.elf --u-boot --force
使用
vivado
工具
准备sd卡
可以参照下面的文章
How to format SD card for SD boot
首先,linux 的boot sdcard 需要有两个分区:
- Boot 分区
- Root 分区
其次,要将BOOT.BIN image.ul 和boot.scr(2020.1 和以后版本)。如果简单地将BOOT.BIN和image.ul 拷贝到Boot 分区是不行的。这和z7nano 的文档有区别。国内公司的文档基本停留在2019 年之前。更新太慢。给学习者带来不便。
我简单粗暴地将images 中的内容都拷贝到boot 分区。插入开发板成功了。