首页 > Web开发 > 详细

ZYNQ Bare Metal裸机程序固化:烧录程序进入QSPI-Flash

时间:2021-05-25 09:22:56      阅读:18      评论:0      收藏:0      [点我收藏+]

Vivado + Xilinx SDK版本 = 2019.1。

由于ZYNQ器件内部含有ARM子系统(PS), 所以在启动时,FPGA(PL)的配置需要在ARM子系统启动后进行:

技术分享图片

同时, PS对PL的配置是通过专用配置接口PCAP(Processor Configuration Access Port)实现的:

技术分享图片

所以,ZYNQ器件若非从JTAG启动,就需要将FPGA的.bit配置文件和ARM的.elf镜像文件全部整合进Boot Image里面,然后进行烧录。

说明一下利用JTAG将ZYNQ固件/程序烧录到QSPI中的操作步骤。

一、在Vivado环境中启用外接QSPI Flash接口控制器。

使能QSPI控制器和专用MIO管脚:

技术分享图片

确认QSPI控制器与实际器件的参数相互兼容,注意数据线宽度:

技术分享图片

 

二、在Vivado中生成Bitstream,并更新.bit配置文件和.hdf硬件平台文件。

 

三、启动SDK。

这里假定SDK硬件平台工程中的.bit文件和Hardware Platform描述文件已经被上述操作更新,并且搭建起了SDK应用工程(Application Project和对应的BSP)。

1、将BSP中的Xilinx文件系统库(xilffs,Xilinx FAT File System)启用,配置选项默认:

技术分享图片

开启xilffs才能构建后面的FSBL即BootLoader工程。

2、基于现有的HW平台和BSP,建立一个FSBL(First-Stage BootLoader)工程。

这个FSBL工程将作为BootROM固件,为器件启动(Boot)做基础的准备工作,它的main()函数大致包括这些过程:

(1)初始化MIO,初始化PLL,初始化时钟,初始化DDR;

(2)清空器件的数据缓存;

(3)映射/注册异常处理例程;

(4)测试DDR读写功能;

(5)初始化PCAP;

(6)确定启动方式(QSPI FLASH,NOR FLASH,SD,JTAG等等);

(7)加载启动镜像(Boot Image)。

3、编译这个FSBL工程,生成对应的.elf文件,它生成在FSBL工程的Debug目录下。

4、选中FSBL工程,然后执行菜单栏Xilinx -> Create Boot Image,生成一个.bif文件(Boot Image File):

技术分享图片

镜像文件的组成,第一部分是FSBL(首先执行的启动程序),然后是PL逻辑电路配置,最后是PS程序。注意将FSBL.elf的分区类型设定为BootLoader,其他两个文件可以指定为DataFile。

5、使用Xilinx -> Program Flash Memory功能烧写.bin文件到存储器件,注意Flash Type需要对应实际器件:

技术分享图片

 

四、完成,将BOOT方式调整为QSPI FLASH,上电启动。

 

ZYNQ Bare Metal裸机程序固化:烧录程序进入QSPI-Flash

原文:https://www.cnblogs.com/YangGuangPu/p/14805024.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!