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