Vivado单核程序固化
By Vivado 2018.3
On Zedboard
1. 配置 QSPI FLASH 接口
打开 ZYNQ7 的 Re-customize IP,进行如下配置,
QSPI 频率默认为 200 需要改为 125,还有系统晶振不要配置错了,
2. 新建 FSBL 工程
更改完毕后,生成比特流文件,export 到 SDK 内,新建工程文件
File -> New -> Application Project
工程名称为 FSBL ,将类型选为 Zynq FSBL,
3. 生成 *.bin 文件
选择要固化的工程,生成 *.bin 文件,
右键需要固化的工程,点击 Create Boot Image ,
在新建的窗口中出现 FSBL.elf 、 *.bit 、 *.elf 三个文件用于制作镜像文件,点击 Create Image 即可完成 Boot.bin 的创建,可用于 SD 卡启动文件 和 SPI 启动文件,
4. 添加环境变量
从 Vivado 2017.4 开始, Xilinx 官方为了使 Zynq-7000 和 Zynq UltraScale + 实现流程相同,在 QSPI FLASH 上做了变化,使 Zynq-7000 变成需要指定的 “fsbl”,这个 fsbl 用于初始化系统(主要使运行ps7_init()),Xilinx 官网中 Xilinx Answer70548 和 Xilinx Answer 70148 提供了 Vivado 17.3 QSPI FLASH 下载方法;
首先新建环境变量,
由于本人使用的是 Win11 ,此处提供 Win 11 操作方式,其他系统类似,
打开设置,点击 ‘系统“ ,滑到最底部,点击 ”系统信息“ -> “高级系统设置”
”高级“ -> ”环境变量“,添加如下变量到系统变量中
1 | 变量名:XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ |
5. 生成加载 QSPI FLASH 的 fsbl 文件
新建一个 FSBL 工程,工程文件命名为 zynq_fsbl ;
流程同 #2. 新建 FSBL 工程;
打开 zynq_fsbl 的 main.c 文件 ,在此处添加
1 | BootModeRegister = JTAG_MODE; |
6. 烧录固化
将跳线帽改为 QSPI 启动模式,
跳线帽模式如下表所示,
开发板上电,Xilinx -> Program Flash ,
选择刚才的 BOOT.BIN 和 zynq_fsbl.elf ,分别在需要固化文件目录下的 \bootimage\BOOT.bin 和 \zynq_fsbl\Debug\zynq_fsbl.elf ,记得把下面的 Blank check after erase 和 Venify after flash √上
最后 Program 等待就ok了,这样板子掉电以后仍能运行我们烧写的程序。