1、创建Vivado硬件平台
①在Windows系统下使用Vivado生成项目工程,生成.SDK后缀的文件
②创建了一个名为petalinux的目录,并在petalinux目录下创建了hdf目录用于存放这个sdk文件夹,将sdk文件夹拷贝到用户节目路下的petalinux/hdf目录
2、设置Petalinux环境变量
指令:source /opt/pkg/petalinux/2018.3/settings.sh
或者 指令: sptl (echo “alias sptl=‘source $PETALINUX/settings.sh’” >> ~/.bashrc)
//输入sptl就可以设置Petalinux的环境变量
3、创建petalinux工程
指令:petalinux-create -t project --template zynq -n Linuxclass1_ZYNQ
创建一个名为“Linuxclass1_ZYNQ”的Petalinux工程,
template参数表明创建的petalinux工程使用的平台模板,
此处的zynq表明使用的是zynq平台模板的petalinux工程,用于zynq-7000系列的芯片。
name参数(此处简写为“-n”)后接的是petalinux工程名,如此处的“Linuxclass1_ZYNQ”。
4、配置petalinux工程
4.1 petealinux-config
指令:cd ALIENTEK-ZYNQ /进入到petalinux工程目录下
指令:petalinux-config --get-hw-description …/hdf/Navigator_7020.sdk/ //导入hdf文件
4.2 Linux Components Selection
括号里的“*”表示为已使能配置。
第一项是程序固化实验中的fsbl.elf文件。
第二项是自动更新ps_init。
第三项是配置u-boot的来源。
第四项是linux-kernel的来源。
4.3 Auto Config Settings
Auto Config Settings指的是:选择是否使能fsbl、Devicetree、Kernel和u-boot的自动配置
4.4 Subsystem AUTO Hardware Settings
根据hdf文件的信息自动配置的各个外设,基本上为默认设置。
“Serial Settings”配置项用于配置开发板的调试串口和串口波特率等参数。
4.5 Advanced bootable images storage Settings
配置启动引导镜像和内核镜像的存储媒介
5、配置Linux内核
指令:petalinux-config -c kernel
6、配置Linux根文件系统
指令:petalinux-config -c rootfs
7、配置设备树文件
//使用vi命令打开system-user.dtsi文件,如下所示:
指令:vi project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
8、编译Petalinux工程
指令:petalinux-build
//该命令将生成设备树DTB文件、fsbl文件、U-Boot文件,Linux内核和根文件系统映像。
编译完成后,生成的映像将位于工程的images目录下
9、制作BOOT.BIN启动文件
petalinux-package --boot命令生成可引导映像,该映像可直接与Zynq系列设备(包括Zynq-7000和Zynq UltraScale + MPSoC)或基于MicroBlaze的FPGA设计一起使用。对于Zynq系列设备,可引导格式为BOOT.BIN,可以从SD卡引导。对于基于MicroBlaze的设计,默认格式为MCS PROM文件,适用于通过Vivado或其他PROM编程器进行编程
ZYNQ的启动文件BOOT.BIN一般包含fsbl文件、bitstream文件和uboot文件。
使用下面命令可生成BOOT.BIN文件:
指令:petalinux-package --boot --fsbl --fpga --u-boot --force
petalinux-package命令将PetaLinux项目打包为适合部署的格式,
其中“petalinux-package --boot”命令生成可引导映像
选项“–fsbl”用于指定fsbl镜像文件所在位置,后面接文件对应的路径信息,
如果不指定文件位置,默认对应的是images/linux/zynq_fsbl.elf;
选项“–fpga”用于指定bitstream文件所在位置,后面接该文件对应的路径信息,
默认对应的是images/linux/system.bit;
选项“–u-boot”用于指定U-Boot镜像所在位置,后面接该文件所在路径信息,
默认为images/linux/u-boot.elf。
10、制作SD启动卡
SD卡引导linux系统启动,一般需要在SD卡上有2个分区。一个分区使用FAT32文件系统,用于放置启动镜像文件(如BOOT.BIN,linux镜像等),另一分区使用EXT4文件系统,用于存放根文件系统
格式化SD卡
sudo mkfs.ext3 /dev/sdb -L LABEL2
将SD卡插入到读卡器中、并将读卡器插入电脑并连接到Ubuntu系统
指令:umount /dev/sdb*
指令:sudo fdisk /dev/sdb
输入“p”执行
新分区之前需要将以前的分区删除,键入“d”,删除该分区
开始新建分区。输入“n”创建一个新分区
通过选择’p’使其为主,使用默认分区号1和第一个扇区2048
设置最后一个扇区,通过输入“+100M”,为该分区预留100MB
设置分区类型,输入“t”,然后输入“c”,设置为“W95 FAT32 (LBA)”
输入“a”,设为引导分区
通过键入“n”来创建根文件系统分区,重复上述动作
输入“p”检查分区表,会看到刚刚创建的2个分区
如果没问题,键入“w”以写入到SD卡并退出
格式化分区:
指令:sudo mkfs.vfat -F 32 -n boot /dev/sdb1 //第一个分区格式化成FAT32分区并命名为boot
指令:sudo mkfs.ext4 -L rootfs /dev/sdb2 //将第二个分区格式化成ext4分区并命名为rootfs
将生成的BOOt.BIN文件和image.ub文件拷贝到SD卡的boot引导分区