PYNQ-Z1开发板通过QSPI FALSH启动UBOOT

PYNQ-Z1开发板通过QSPI FALSH启动UBOOT

  • 前期准备工作
    • 安装虚拟机和ubuntu
    • 安装petalinux
    • 安装vivado和SDK
    • 下载PYNQ-Z1的board file文件
  • 方法实现
    • 使用vivado创建工程将硬件信息导出
    • 通过petalinux进行配置相关的启动文件
    • 通过SDK将BOOT.BIN烧录到flash中
  • 效果展示
    • PUTTY显示

前期准备工作

安装虚拟机和ubuntu

测试环境的虚拟机版本是VMware15.5的版本,对于ubuntu版本是16.04版本。具体过程和准备配置见以下博客链接:https://blog.csdn.net/weixin_45226765/article/details/104863934

安装petalinux

安装petalinux的环境依赖。(输入以下指令,注意要有sudo
sudo apt-get install build-essential vim tofrodos \
iproute2 gawk gcc git make net-tools zlib1g-dev \
libssl-dev flex bison libselinux1 libncurses5-dev \
tftpd lib32z1 lib32ncurses5 libbz2-1.0:i386 \
lib32stdc++6 xvfb chrpath socat autoconf libtool
在这里插入图片描述
修改/bin/sh,在出现的界面选择否
在这里插入图片描述
安装一些缺失的库(输入一下指令,同样注意要有sudo,如果后面安装显示仍然缺失库,再次执行如下命令安装一次缺失的库,再安装petalinux
sudo apt-get install texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev zlib1g:i386 libncurses5 libncurses5-dev libc6:i386 libstdc++6:i386 zlib1g:i386 libssl-dev tftpd tftp openbsd-inetd
在这里插入图片描述
从xilinx官网下载petalinux安装包(版本是2019.2)
在linux系统的目录下创建一个文件夹取名为petalinux,然后通过winSCP 把下载的petalinux文件从window下载到linux的petalinux文件夹下。 同时给予安装包运行权限,运行安装包安装到petalinux文件夹下。
在这里插入图片描述
这里会出现许可,一共是三个,按回车进入,按Q退出,然后按Y 表示同意。
在这里插入图片描述
启动petalinux环境
在这里插入图片描述

安装vivado和SDK

安装vivado版本为2019.1,这个版本安装是可以选择附带SDK2019.1
安装过程比较简单。最后如下图所示:
在这里插入图片描述

下载PYNQ-Z1的board file文件

通过以下网址可以下载到:
https://github.com/cathalmccabe/pynq-z1_board_files
将下载好的PYNQ-Z1.zip文件解压到安装好的vivado路径下面的\vivado\2019.1\data\boards\board_fies 里面即可。

方法实现

使用vivado创建工程将硬件信息导出

首先在D盘(任意磁盘)创建一个空的文件夹用来存放工程,取名为qspi。打开vivado,选择新建一个工程。点击NEXT。如下图所示,工程路径存放在之前我们创建的qspi空文件夹下面,然后工程名称取名为QSPI。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第1张图片
点击next选择RTL project,在选择NEXT
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第2张图片
选择board,找到PYNQ-Z1,选择NEXT(如下图所示)
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第3张图片
选择FINISH即可完成工程的创建。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第4张图片
选择创建BLOCK,跳出对话框,默认点OK
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第5张图片
选择+添加IP,选择类型为ZYNQ7
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第6张图片
选择run block automation,跳出对话框,默认点OK,此时会自动连接引脚。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第7张图片
将M_AXI_GP0_ACLK引脚连接到FCLK_CLK0,否则在生成HDL的时候会报错。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第8张图片
切到source下,右击创建HDL如下图所示。跳出对话框默认OK。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第9张图片
如下图所示导出产品。跳出对话框默认GRENERATE即可。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第10张图片
生产比特流文件,选择OK。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第11张图片
将硬件信息导出
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第12张图片
导出的时候比特流文件也要导出,记得勾选。否则后期生产BOOT.BIN缺失FPGA文件
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第13张图片
此时在工程文件下的SDK文件夹下面就会出现design_1_wrapper.hdf文件。即硬件描述文件

通过petalinux进行配置相关的启动文件

通过petalinux创建工程文件夹并将其命名为PYNQ
在这里插入图片描述
进入文件夹下,通过winSCP将window下的硬件描述文件design_1_wrapper.hdf复制到PYNQ文件夹下面。进入PYNQ文件夹下。配置硬件信息。
在这里插入图片描述
注意:虚拟机窗口最大化,否则容易出现报错。
Subsystem AUTO Hardware Settings —> Advanced bootable images storage Settings —>boot image settings —> image storage media选项中选择 primary flash

PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第14张图片
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第15张图片
Subsystem AUTO Hardware Settings —> Advanced bootable images storage Settings —>kernel image settings —> image storage media选项中选择 primary flash
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第16张图片
设置好,选择保存。
编译
在这里插入图片描述
编译完成后将所需要的文件打包成BOOT.BIN。特别注意要把kernel内核文件也打包进去。
如下图所示,打包成功。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第17张图片
通过winSCP将linux系统下打包生成的BOOT.BIN文件下载到windows系统中。

通过SDK将BOOT.BIN烧录到flash中

接着之前的vivado工程,打开SDK。跳出对话框默认选择ok。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第18张图片
等待打开SDK,选择xilinx,然后选择program FLASH。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第19张图片
Image文件选择之前生产的BOOT.BIN文件。FSBL文件选择定制好的fsbl文件。点击Program进行烧录。烧录的过程要连接开发板上电,并且将开发板最好连接着JTAG,等待烧录成功。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第20张图片

效果展示

PUTTY显示

将开发板启动模式设为qspi,打开PUTTY,启动开关上电。我这串口对应的是COM4,波特率设定为115200。可以看到串口打印的信息,这里截个开头和结尾。

PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第21张图片
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第22张图片
对应开发板的启动状态。
PYNQ-Z1开发板通过QSPI FALSH启动UBOOT_第23张图片
由于本人只是一个萌新,同时也在学习阶段,只是将学习的过程记录下来,方便以后遇到可以查阅,中间可能会有不足或者错误,希望大佬看到能够及时指出,相互交流,最后由衷感谢朽木白露大佬对我整个制作过程的帮助,万分感谢。
这是他的博客https://me.csdn.net/qq_45467083
同时为了方便大家,将生成的BOOT.BIN文件已上传csdn供大家下载。
下载链接 :https://download.csdn.net/download/weixin_45226765/12292950

你可能感兴趣的:(嵌入式,linux,ubuntu)