ZYNQ几种boot模式下sdk文件区别

ZYNQ有多种启动模式,每种模式对应的SDK生成文件有所不同。以下是主要启动模式及其SDK文件区别:

1. JTAG模式

  • 用途:调试和开发
  • 生成文件
    • FSBL.elf(First Stage Bootloader)
    • xxx.bit(FPGA比特流文件)
    • 应用程序.elf(用户应用程序)
  • 启动过程:通过JTAG直接加载到内存执行

2. QSPI Flash启动

  • 生成的关键文件BOOT.bin

  • 文件组成

    1. Boot Header(引导头,包含配置信息)
    2. FSBL.elf(第一阶段引导程序)
    3. bitstream.bit(可选,FPGA配置)
    4. 应用程序.elf(用户程序)
  • SDK操作

    bash 复制代码
    Create Boot Image → 生成 BOOT.bin

3. SD卡启动

  • 生成文件BOOT.bin
  • 文件结构
    • SD卡FAT32分区只需包含:

      复制代码
      BOOT.bin
      [可选] system.bit (如果未集成到BOOT.bin中)
      [可选] uImage (Linux内核)
      [可选] devicetree.dtb (设备树)
      [可选] uramdisk.image.gz (根文件系统)

4. NAND Flash启动

  • 生成文件BOOT.bin
  • 额外考虑
    • NAND需要坏块管理
    • FSBL需支持NAND控制器
    • 可能生成.mcs文件用于烧录

5. NOR Flash启动

  • 生成文件BOOT.bin
  • 特点
    • 支持XIP(eXecute In Place)
    • 启动速度较快

SDK中创建启动镜像的区别

通用步骤

bash 复制代码
1. 编译FSBL.elf
2. 导出硬件bit文件
3. 编译应用程序.elf
4. 使用"Create Boot Image"工具打包

模式特定的差异

启动模式 输出文件 FSBL配置差异 烧录工具
QSPI BOOT.bin 配置QSPI控制器 Vivado/SDK Flash Programmer
SD卡 BOOT.bin 配置SD/eMMC控制器 直接复制到SD卡
NAND BOOT.bin 配置NAND控制器,支持坏块处理 Flash Programmer
NOR BOOT.bin 配置NOR控制器,支持XIP Flash Programmer
JTAG 无需打包 直接调试 JTAG下载器

关键配置区别

FSBL配置

c 复制代码
// bsp设置中的差异
#define FSBL_DEBUG_INFO  // 调试信息
#define QSPI_BOOT        // QSPI启动配置
#define SD_BOOT          // SD卡启动配置

BIF文件示例

bash 复制代码
// QSPI启动的BIF文件
the_ROM_image:
{
    [bootloader] fsbl.elf
    system.bit
    application.elf
}

实用建议

  1. SD卡模式最适合开发和原型验证
  2. QSPI模式适合产品部署(成本低)
  3. JTAG模式仅用于调试
  4. 生产时考虑:
    • QSPI:小容量,低成本
    • eMMC/SD:大容量,易更新
    • NAND:大容量,需坏块管理

文件生成命令示例

bash 复制代码
# 生成BOOT.bin
bootgen -image bootimage.bif -arch zynq -o BOOT.bin -w on

# 生成QSPI烧录文件
bootgen -image bootimage.bif -arch zynq -format mcs -o output.mcs

不同启动模式主要影响FSBL的配置和最终镜像的打包方式,但用户应用程序代码通常无需修改。

相关推荐
坏孩子的诺亚方舟2 天前
FPGA系统架构设计实践15_高云Arora V系列时钟体系
fpga开发·系统架构
FPGA小徐2 天前
入门 CNN 结构全解析|从流程图理论到 FPGA Verilog 硬件实现(含习题带讲解)
fpga开发
FPGA小徐2 天前
FPGA 数字信号处理:并行 FIR 与串行滤波器设计原理、对比与完整 Verilog 实现
fpga开发
Saniffer_SH3 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
火花页.3 天前
【正点原子ZYNQ领航者7020】AXI GPIO与EMIO联合自行编写的verilog模块完成按键控制LED以及LED闪烁
zynq
zlinear数据采集卡4 天前
双核架构深度解析:ARM+FPGA如何让数据采集卡实现500Ksps高性能?
arm开发·fpga开发·架构
9527华安4 天前
FPGA实现GTH Transceivers Wizard传输2路视频,基于aurora 8b10b编解码架构,提供4套工程源码和技术支持
fpga开发·gth·aurora 8b10b·transceivers
FPGA小徐4 天前
FPGA 数字信号处理(二):并行 FIR 滤波器的 Verilog 全流程设计与实现
fpga开发
国科安芯4 天前
基于AS32S601ZIT2型抗辐照MCU的商业航天卫星姿态确定与控制系统研究
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
ALINX技术博客5 天前
【黑金云课堂】FPGA技术教程FPGA基础:I2C 总线通信技术
fpga开发·i2c