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进行烧录



相关推荐
吉他英雄一里21 小时前
FPGA--RAM
fpga开发
szxinmai主板定制专家1 天前
储能 EMS、微网控制器选型:RK3588、RK3576、RK3568+FPGA 怎么选?多网、多 CAN、EMC 设计权衡
人工智能·深度学习·机器学习·fpga开发·工业网关·rk3576·电力网关
XMAIPC_Robot1 天前
ARM+FPGA+AI船舶/工业自动化控制器EMC测试等级解析(IEC60533/IEC60945)
arm开发·人工智能·fpga开发·zynq·arm+fpga·rk3588+fpga
ALINX技术博客1 天前
ALINX 亮相 2026 工博会,聚焦 FPGA 行业应用场景
ai·fpga开发·射频工程
星夜离尘561 天前
FPGA 复位回归实验:双时钟停钟、释放中重入与消费端首拍自检
fpga开发
szxinmai主板定制专家2 天前
ZYNQ 数据采集方案踩坑总结:电力强电磁干扰、工业现场多协议适配优化
运维·人工智能·fpga开发·机器人·zynq
幻智星科技2 天前
一个开源的纯FPGA网口采集卡
网络协议·fpga开发·udp
bobuddy2 天前
硬件加速三件套:emulator-FPGA 原型-云仿真
fpga开发
szxinmai主板定制专家2 天前
软硬协同!ZYNQ 高速多通道同步采集,变电站 / 工厂设备状态监测方案详解
人工智能·深度学习·机器学习·fpga开发·zynq·rk3576
FPGA小徐2 天前
FPGA 8阶LFSR加扰/解扰器设计
fpga开发