开发板:Zynq7030数据采集板
PC平台:Ubuntu-18.04 + MobaXterm
开发环境:Xilinx Vivado + SDK -18.3
交叉编译工具:arm-linux-gnueabihf-
学习目标:生成 fsbl.elf 文件
一、Zynq-7000系列启动顺序
Zynq-7000是一个可扩展处理平台,具有ARM核心和FPGA可编程单元。整个启动过程包括了PS端ARM的配置,也有PL端FPGA的配置。
Zynq-7000支持从多种设备启动,包括:JTAG,NAND,parallel NOR,Serial NOR (Quad-SPI),以及SD卡,通过几个特殊的MIO引脚的状态来确定启动设备,如下图所示。 目前使用的Zynq7030数据采集板可支持JTAG、QSPI和SD卡启动,学习中选用从SD卡启动。
Zynq-7000的启动过程如下图所示:

熟悉Linux的都知道系统启动离不开BootLoader,u-boot便是一种常用的BootLoader程序。在Zynq中,系统启动需要有一个文件叫 BOOT.bin ,组成文件如下表所示:
包含文件 | 作用 |
---|---|
fsbl.elf | 第一阶段启动代码,用来完成全局初始化和硬件配置 |
硬件比特流.bit文件 | 用来配置PL端(可选!若不添加此项,可启动后由软件配置) |
u-boot.elf | 用来初始化ARM端,引导Linux操作系统 |
一般在生成fsbl.elf文件时候,已经在Vivado里面生成了硬件比特流.bit文件。所以在制作BOOT.bin文件时,只需要再编译生成一个u-boot.elf文件即可。
二、FSBL制作
本篇先开始制作fsbl.elf和硬件比特流.bit文件。
fsbl生成
首先仍然是创建一个Vivado工程,并命名为fsbl。
然后按照之前的文章配置好工程,并完成创建。
进入到界面后,点击 Create Block Design 创建一个原理框图设计,并命名为fsbl。
接着添加 Zynq 7 Processin