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的配置和最终镜像的打包方式,但用户应用程序代码通常无需修改。

相关推荐
黄埔数据分析1 天前
QDMA把描述符当数据搬移, 不用desc engine
fpga开发
devmoon1 天前
Polkadot SDK 平行链模板搭建全流程指南
web3·区块链·sdk·比特币·波卡
atsec1 天前
固安全之本,应支付之变 - 2025年支付卡产业动态和趋势分享
sdk·pci dss·pci标准家族·pci ssc·kmo·ess
南檐巷上学1 天前
基于FPGA的正弦信号发生器、滤波器的设计(DAC输出点数受限条件下的完整正弦波产生器)
fpga开发·数字信号处理·dsp·dds
嵌入式-老费1 天前
Linux Camera驱动开发(fpga + csi rx/csi tx)
fpga开发
ALINX技术博客2 天前
【202601芯动态】全球 FPGA 异构热潮,ALINX 高性能异构新品预告
人工智能·fpga开发·gpu算力·fpga
JJRainbow2 天前
SN75176 芯片设计RS-232 转 RS-485 通信模块设计原理图
stm32·单片机·嵌入式硬件·fpga开发·硬件工程
s9123601012 天前
FPGA眼图
fpga开发
北京青翼科技2 天前
【PCIe732】青翼PCIe采集卡-优质光纤卡- PCIe接口-万兆光纤卡
图像处理·人工智能·fpga开发·智能硬件·嵌入式实时数据库
minglie12 天前
verilog信号命名规范
fpga开发