在ZYNQ平台上运行Linux系统,使用petalinux编译生成的镜像文件一般包括BOOT.BIN和image.ub,其中BOOT.BIN是u-boot、fsbl和Bitstream的集合,image.ub是设备树、linux内核、根文件系统的集合。系统开发过程中,BOOT.BIN里经常要改动的只有fpga的bit文件,所以通常做法是将bit文件从BOOT.BIN中分离独立出来,大部分网上的方法都是移植u-boot源码,在源码中增加FPGA bit文件的读取和加载,对于初学者来说要先了解源码流程可能会困难些。使用petalinux图形化开发,直观地感受运行过程,理解会更形象些吧。所以本文介绍petalinux配置编译u-boot,不需要移植u-boot源码来实现bit文件固件升级的简单办法。
还是以ZYNQ7030板卡为例,板上无SD卡,eMMC接在SD0,串口调试接口是UART0,在之前的文章已经成功在Flash+eMMC移植Linux系统,在这系统上可直接实现bit文件分离和自动加载运行。
bit文件从BOOT.BIN中分离
1.petalinux硬件配置
FPGA程序更新后,从vivado导出包含Bitstream的hdf文件,拷贝到ubuntu虚拟机下,记住你放hdf的文件路径,如我这里的/home/yi/hdf/ledall30文件夹下。在板卡现在运行的Linux系统的petalinux工程下,重新配置: