ZYNQ QSPI FLASH启动系统的方法,包括各种错误的解决,petalinux的使用,vivado的使用,详细讲解(二)

二、使用petalinux创建工程,生成u-boot,uimage
前面我们已经设置好了硬件资源,并配置了fsbl,现在我们将硬件资源和FSBL放到ubuntu中。
找到项目文件夹
在这里插入图片描述
将此文件夹放入ubuntu中,这里建议使用15版本的虚拟机,因为12版本的虚拟机从windows中拷贝文件到ubuntu中会出错、卡死。

进入ubuntu,启动petalinux
source ~/petalinux19.1/settings.sh

创建工程

petalinux-create -t project --template zynq --name csdn_test

将硬件资源导入,配置为工程

petalinux-config --get-hw-description=~/csdn_sys_wrapper_hw_platform_0

运行这条指令后会出现配置画面,你可以进行相关配置,我选择的是默认配置,只是把其中一个分区改打了一些,不改大分区,会导致分区重叠。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将0x20000 改为0x200000

配置完成后,保存(Save)然后退出。就会出现以下画面,代表配置成功。

在这里插入图片描述
编译项目
petalinux-build

注意:petalinux-build可能失败,可能是由于一些库没有安装到位,需要添加库,如何添加请看我那篇关于petalinux-build错误的文章。

petalinux-build的时间比较长,成功后会出现几个文件夹,如下图所示:

在这里插入图片描述
进入images文件夹,进入Linux文件夹,可以看到相关文件

在这里插入图片描述
现在我们将在SDK中生成的csdn_fsbl.elf 文件放到这个文件夹中
在这里插入图片描述

在这里插入图片描述
通过petalinux-package --boot --fsbl <FSBL image> --fpga <FPGA bitstream> --u-boot --kernel 命令可以生成BOOT.BIN文件,后面的–kernel表示生成的这个BOOT.BIN已经包含了uimage,可以直接启动系统。
将生成的BOOT.BIN复制到windows下,顺便把csdn_fsbl.elf文件也一起复制过去。

在这里插入图片描述
在这里插入图片描述

回到我们的SDK软件,准备开始烧写。

1、进入xilinx-----> Program FPGA
在这里插入图片描述
将FPGA文件烧录进去
在这里插入图片描述
2、进入xilinx-----> Program Flash 烧录BOOT.BIN 和csdn_fsbl.elf
在这里插入图片描述

烧录完成后,重启开发板,可以看到系统成功启动,并且掉电不会丢失,重启依然存在。
用户名和密码都是 root

在这里插入图片描述
在这里插入图片描述