zynq+linux固化程序,FPGA 程序固化

本文详细介绍了ZYNQ7000 SOC芯片的启动流程,包括从BOOT ROM加载FSBL的第一阶段,以及FSBL在QSPI Flash启动方式中的工作。通过SDK工具生成BOOT.bin,将程序固化到FLASH中,实现ZYNQ系统从启动到运行PL端配置及应用程序的过程。
摘要由CSDN通过智能技术生成

上一节我们只使用ZYNQ的PL端资源,单独控制PL端的LED实现流水灯:blog.csdn.net/fengyuwuzu0…。但是掉电后程序会丢失,那么如何固化代码到FLASH呢?就是本节的目的了。

一、ZYNQ的启动流程

ZYNQ7000 SOC 芯片可以从 FLASH 启动,也可以从 SD 卡里启动, 本节介绍程序 FLASH 启动的方法。Zynq7000 SOC 芯片上电后,最先运行的是ARM端系统(PS)。然后再通过ARM系统软件部分加载FPGA的比特流文件.bit至FPGA(PL),配置FPGA PL端的逻辑功能。ZYNQ 系统的启劢流程如下:

1.1 ZYNQ启动分为两个阶段

第一阶段是 BOOT ROM(ZYNQ厂家固化代码)

第二阶段是 FSBL (First Stage Bootloader)SDK工具来制作。

经过以上两个阶段,PL端配置程序及应用程序才开始运行。

1.1 第一阶段 (BOOT ROM)上电后,Zynq7000 SOC 会首先执行片内 Boot ROM 代码,Boot ROM 代码读取 Boot mode 寄存器来判断是哪一种启动方式(SD card/QSPI Flash/JTAG)。

确定好哪种启劢方式后,Boot ROM 从相应的启动设备(SD Card/QSPI Flash)加载 First Stage Bootloader (FSBL) 到On Chip Memory(OCM) RAM,并且将执行权交付给 FSBL。

1.2 第二阶段 FSBL (First Stage Bootloader)

使用SDK 工具一步步生成 FSBL 代码和可执行文件,结合代码可知 FSBL 主要做了如下工作:

初始化 CPU,初始化串口;

Processor System (PS) 一些控制器的初始化,如 MIO, PLL, CLK and DDR;

禁止 L1 Data Cache;

注册 ARM 中断向量;

通过 Boot mode 寄存器,判断是哪种启动方式。

1.2.1 QSPI Flash 启动方式:初始化 QSPI Flash 控刢器;

从 Flash 拷贝 system.bit 到 FPGA (如果 Flash 中存有 system.bit);

从 QSPI Flash 拷贝应用程序的代码到DDR3;

调转到应用程序执行;

1.2.2 SD Card 启动方式:初始化 SD 控刢器;

从 SD Card 拷贝 system.bit 到 FPGA (如果 BOOT.BIN 中存有 system.bit);

从 SD card 拷贝应用程序的代码到 DDR3;

跳转到应用程序执行;

1.2.3 JTAG 启动方式,直接退出。

2 制作BOOT.bin

2.1 新建项目

2.2 配置PS端资源、启动SDK、生成BOOT.bin

(1)ZYNQ 的PS开发一般有原理框图的形式来设计,这样硬件的连接看起来会更加直观。点击 Create Block Design 按钮来添加原理图设计文件。

0e1ecbbc3f8f7808dbd7da3ee7f7fb12.png

在弹出的对话框里输入原理图设计文件的名字,返里我们取名为"system"。

b04de33cdfffaae3c3eae2aa9c501974.png

(2)出现 Diagram 的空白对话框,点击 图标+添加 ARM 处理器内核到这个空白的原理图里。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值