赞
踩
通常对FPGA下载程序时,会采用JTAG口下载,完成好HDL设计,并且验证无误后,对设计文件进行综合,布局布线以及生成比特流文件,而FPGA开发板要想工作,需要将该文件烧写进FPGA芯片中。但是FPGA是基于RAM工艺(如LUT的实质就是RAM),因此会掉电丢失,再次上电后需要重新加载bit流。一般FPGA的外围会有一个非易失性存储器:Flash或SD卡等。可以将程序加载进去,这样的话,下次上电后可以直接从该存储器中加载程序,这就是固化的过程。
FSBL的功能:(first stage boot loader 第一阶段引导加载程序)
①初始化PS的配置,具体的配置方法由Xilinx硬件配置工具提供。
②如果镜像中有bitstream文件部分,则用它配置PL部分。
③从非易失性存储器(NAND/NOR FLASH)中加载SSBL(second stage boot loader,u-boot)或裸机程序到RAM(DDR)中,并将执行权限移交给它。
注意,在将权限移交给SSBL或裸机程序之前,FSBL会关闭cache和MMU,因为u-boot在执行开始时假设它们都是关闭的。
两种程序固化方法:(1、SD卡方式 2、Quad SPI Flash方式)
以AXI_GPIO工程为例(利用AXI总线中断,用PL端的开关对PS端的LED进行控制)
①首先需要在原有的block design中更改配置,点开zynq模块配置界面,因为要用两种sd卡和flash两种方法进行固化,所以在外设i/o引脚配置界面中,需要勾选Quad SPI Flash和SD0(同时选择40-45引脚,可以在原理图中查看),点击ok。
②在sources界面中重新generate output products,由于不需要对PS端的引脚重新绑定,所以无需重新生成顶层文件,重新导出file->export->export hardware(注意包含bitstream),最后launch SDK。
③在SDK中先创建一个新的工程名为FSBL,在templates中选择Zynq FSBL选项,点击finish。
④鼠标选中所建的工程本例子中为axi_gpio文件工程,点击xilinx->点击creat boot image,自动会帮助我们在相应的文件夹中生成BOOT.bin文件,在file path中有三个文件,分别是FSBL.elf、比特流文件、裸机引用程序elf,这三个文件的顺序不能乱,他们是按顺序执行的,最后点击creat image即可。
⑤找到相对应的BOOT.bin文件拷贝到SD卡中,然后将SD卡插入板子中,将MIO4、MIO5接至高电位(SD Card启动模式),在ug585手册中如下图中可以看出当需要配置成SD卡启动,则需要将MIO4、MIO5配置成1,也就是高电位,最后开关打开上电即可自动通过SD卡下载程序。效果如图所示。
①1-3同SD卡的操作,在flash启动时,将MIO5接高电位、MIO4接低电位(Quad-SPI启动模式),在SDK中点击Xilinx->program flash->在device中点击select选择Auto Detect->在image中浏览BOOT.bin文件->在FSBL File中浏览FSBL.elf文件->点击program即可。结果也如上图所示。
本工程基于vivado 2018.2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。