1. ZYNQ7020程序固化实验概述
在嵌入式开发中,程序固化是将调试好的程序永久存储在非易失性存储器中的过程。对于Xilinx ZYNQ7000系列芯片而言,程序固化有其特殊性 - 由于ZYNQ是ARM+FPGA的异构架构,程序固化需要考虑PS(处理系统)和PL(可编程逻辑)两部分的协同工作。
正点原子V1开发板搭载的ZYNQ7020芯片支持多种启动方式,其中最常用的是通过QSPI Flash和SD卡启动。本实验将详细介绍从Vivado工程配置到最终程序固化的完整流程,涵盖FSBL生成、BOOT.bin文件制作以及两种启动方式的实现方法。
提示:ZYNQ启动过程分为三个阶段 - BootROM(固化在芯片内部)、FSBL(First Stage Bootloader)和用户程序。理解这个流程对后续操作至关重要。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件工程配置
2.1 Vivado基础工程设置
首先需要确保Vivado工程已正确配置PS端的外设接口。以VDMA测试工程为例,原始工程可能未启用QSPI和SD卡控制器,这需要进行以下修改:
- 打开Block Design中的ZYNQ7 Processing System IP核
- 在Peripheral I/O Pins选项卡中:
- 启用QSPI Flash控制器,使用MIO1-6引脚
- 启用SD0控制器,使用MIO40-45引脚
- 启用SD卡检测引脚MIO10
- 在Clock Configuration中确认SD0和QSPI的时钟设置正确
注意:不同开发板的引脚分配可能有所差异,务必参考具体开发板的原理图进行配置。
2.2 生成硬件比特流
完成上述配置后:
- 保存Block Design
- 在Sources面板右键点击顶层设计,选择"Generate Output Products"
- 生成比特流文件(Generate Bitstream)
- 导出硬件(File → Export → Export Hardware),勾选Include bitstream选项
3. FSBL生成与配置
3.1 创建FSBL工程
FSBL(First Stage Bootloader)是ZYNQ启动过程中的关键环节,负责初始化DDR、外
