前面介绍了Petalinux工具的安装,本篇文章介绍如何使用Petalinux工具给ZYNQ芯片编译一个linux系统。本实验在PYNQ-Z1/Z2上测试通过
- 创建Vivado工程
用Block Diagram搭建上图所示工程,编译工程产生比特流,由于本篇博文只是建立一个最简单的demo,因此不要求PS部分与上图完全一致,只要包含了ZYNQ7 PS即可。
然后导出硬件描述文件,在这里导出的是hdf格式 - 进入Petalinux的运行环境
source /opt/pkg/petalinux/settings.sh
- 创建一个Petalinux工程
petalinux-create --type project --template zynq --name PYNQ
新建Petalinux 工程, 命名为PYNQ,会自动生成一个名为PYNQ的文件夹,然后将前面Vivado生成的硬件描述文件复制到PYNQ文件夹下面。Vivado生成的硬件描述文件有dsa和hdf两种格式,2018.2后的petalinux支持这两种格式。这个文件包含了硬件的信息比如用到了哪些片上外设(USB,I2C等),DDR的配置信息等。根据这些信息Petalinux编译出对应的内核。
- Petalinux工程导入硬件描述文件
petalinux-config --get-hw-description ./
如果导入成功会弹出一个图形界面,这里不需要做额外的修改,直接保存退出即可。
- 编译工程
petalinux-build
- 打包镜像
petalinux-package --boot --force --fsbl images/linux/*fsbl.elf --fpga images/linux/*.bit --u-boot
编译结束后在images/linux下可以看到下列文件
BOOT.BIN是fsbl,u-boot,和bitstream打包在一起产生的文件,将BOOT.BIN和image.ub复制到FAT32分区的SD卡上。
- 测试
ZYNQ启动时通过串口打印启动信息,我们可以用串口工具来观察启动信息。
打开Mobaxterm,点击左上角的Session,选择Seiral,波特率设置为115200。
将SD卡插入PYNQ,将PYNQ的启动方式设置为从SD卡启动,将PYNQ的MicroUSB接口连接到电脑,启动后看到Done亮起说明比特流加载完毕。上电后打开串口调试助手,可以看到内核启动时的信息。最终,如果出现下图则说明启动成功
输入用户名root,密码root即可进入Linux系统。