zynq启动和程序固化流程

普通FPGA启动

FPGA的启动方式主要包含主动模式、被动模式和JTAG模式。

主动模式(AS模式)

当FPGA器件上电时,它作为控制器从配置器件EPCS中主动发出读取数据信号,并将EPCS的数据读入到自身中,实现对FPGA的编程。这种模式下,配置信息储存在EPCS等非易失性存储器中,适用于不需要频繁升级的场景。EPCS(Erasable Programmable Configurable Serial)是一种串行存储器,专门用于存储和加载FPGA的配置数据。

被动模式(PS模式)

则是由外部计算机或其他控制器件如微控制器来控制配置过程。在此模式下,EPCS作为控制器件把FPGA当作存储器,将数据写入FPGA,以实现编程。该模式可以实现在线可编程,方便升级。

JTAG模式

是一种直接对FPGA进行编程的模式,由于其基于SRAM,断电后需要重新烧写,主要用于调试目的。JTAG接口包括TDI、TDO、TMS、TCK和可选的TRST信号线。

此外,还存在一些特定的启动方式,例如SPI闪存设备启动、micro SD卡启动和U盘启动。这些方法通过将配置文件存储在相应的介质中,然后让FPGA在上电时通过对应的接口读取配置数据来实现启动。

ZYNQ启动

ZYNQ 的启动是由 ARM 主导的,此流程包括 FPGA 程序的加载,可参考UG585文件。主要有以下两到三个阶段:

Stage 0 :在上电复位或热复位后,处理器首先执行 BootRom 里的代码,该代码用户不可更改,代码里包含了最基本的 NAND,NOR,Quad-SPI,SD 和 PCAP 的驱动。以及把 stage 1 的代码(FSBL 代码(First Stage Boot Loader))搬运到OCM 中,空间限制为 192KB。
Stage 1: 当 BootRom 搬运 FSBL 到 OCM 后,处理开始执行 FSBL 代码。FSBL主要有以下几个作用:1.初始化PS端的配置,包括初始化DDR,MIO,这些配置来源于vivado工程中对ZYNQ核的配置。2.如果有PL程序,加载PL端的bitstream。3.加载bootloader或者bare-metal程序到DDR,然后执行该程序。
Stage 2: Second stage bootloader 是可选项,一般是在运行操作系统的情况下使用,比如u-boot。

程序固化

1.新建FSBL项目到工程中

在这里插入图片描述
在这里插入图片描述
选择zynq FSBL模版
在这里插入图片描述
添加FSBL工程后,项目会自动编译。

2.创建boot.bin文件。

在这里插入图片描述
选在需要bin文件和bif文件导出的路径
在这里插入图片描述

3.添加启动文件,主要有FSBL.elf的bootloader文件,hello项目elf的datafile,以及PL的bitsream文件,没有的话可以不添加。

在这里插入图片描述
在这里插入图片描述
点击创建creat image
在这里插入图片描述
查看文件是否生成
在这里插入图片描述

4.对flash进行烧录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

稚肩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值