我们刚开始使用ZYNQ时,习惯使用JTAG在线将ZYNQ的PS和PL部分的配置文件烧录进ZYNQ,这样方便我们进行调试,但是却带来了掉电配置文件丢失的问题,因此,在我们学习ZYNQ的路上,必须要学会如何把配置文件保存进非易失的存储器件当中去。
配置文件有哪些?
ZYNQ的配置信息包括了PS端程序以及PL端配置信息,其体现在文件上分别为:
- PL端的Bit文件
- PS端的ELF文件
当然,仅仅有这两个文件还不够,我们还需要一段代码帮助这两个文件配置,这也就是" FSBL.elf "文件。
ZYNQ的启动顺序
对于ZYNQ Soc来说,PS端是作为主器件,率先上电,并且承当对PL端的配置任务,因此我们需要将BIT文件存储到和PS端连接的片外非易 失性存储器中:
- Quad SPI Flash
- NAND Flash
- NOR Flash
- SD 卡
并且由ZYNQ当中固化的的引导程序会一步步引导PL的配置和PS端程序的执行。具体来说,ZYNQ上电后先会执行片上的BootROM,BootROM 中的代码首先会在片外的非易失性存储器中寻找一个头文件,头文件里定义了一些启动信息,用于配置 BootROM 的运行。
BootROM执行完毕后,就进入First-Stage Boot Loader(FSBL)帮助配置PS和PL端具体顺序如下:
- 初始化 PS;
- 配置 PL;
- 加载裸机应用程序到 DDR 中,或者加载 Second-Stage Boot Loader(SSBL);
- 开始执行裸机应用程序,或者 SSBL(用于操作系统引导)
程序固化需要整合的文件
由ZYNQ引导程序的流程我们知道,我们应该在PS端所连接的外部非易失存储器中放置以下文件:
- BootROM的头文件,用来控制BootROM设置ZYNQ,比如就地执行、加密、FSBL 偏移量、镜像文件大小等;
- First-Stage Boot Loader;
- PL 配置文件,即 BIT 文件;
- 运行在 PS 上的软件应用程序;
但是事实上我们并不需要将这些文件一股脑都烧录进存储器中,我们会将FSBL以及Bit文件和C程序(体现为elf文件)在SDK中一起制作成一个启动镜像,之后只需要烧录镜像到存储器当中即可。
制作镜像过程
思路
制作FSBL----依次添加FSBL、bit、elf----生成镜像;一共三步即可
详细步骤
首先我们要制作FSBL文件;
打开SDK-->New application project,并且按部就班填好工程名:
之后工程模板选择ZYNQ FSBL
之后对工程进行编译(快捷键CTRL + B),这样FSBL文件就成功生成了,并且在工程文件夹下的DeBug文件夹下能找到
为了方便制作镜像,我们将FSBL文件、FPGA配置文件(Bit)、程序配置文件(elf)放到同一个文件夹下:
之后开始正式制作镜像:Xilinx---Creat Boot Image
在弹出来的界面中先配置好路径,这里有两个文件,第一个后缀.bif是镜像配置文件,第二个后缀.bin则是我们需要的镜像文件。
路劲配置好后,点击ADD,依次添加FSBL和FPGA配置文件以及程序配置文件,注意这里添加顺序十分重要。
FSBL文件添加时,类型需要选择bootloader,其余的两个文件选择默认datafile即可:
添加完毕之后,即可点击Creat Image,生成镜像文件:
我们可以在文件夹中查看到我们生成的 .bin文件,至此镜像制作完成。
镜像烧录
SD卡
SD卡启动比较简单,首先我们要确保SD卡格式化为Fat32格式,将BOOT.bin文件拷贝进SD卡(注意名字一定得是BOOT),最后将我们的Boot引脚调整为从SD启动即可。
QSPI Flash
Flash启动就类似FPGA的程序固化,我们需要先使用JTAG调试器将镜像烧录进Flash,之后再调整启动模式为QSPI Flash启动即可。
首先点击Xilinx里的Program Flash
之后定位BOOT文件和FSBL文件,再点击Program进行编程即可(注意此时开发板启动模式需要调整到JTAG启动)
之后将启动模式调整到QSPI Flash即可!文章来源:https://www.toymoban.com/news/detail-788116.html
文中图片部分取自网络,仅做教学用途,联系侵删。文章来源地址https://www.toymoban.com/news/detail-788116.html
到了这里,关于ZYNQ之路--程序固化教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!