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

相关推荐
ShiMetaPi6 小时前
GM-3568JHF丨ARM+FPGA异构开发板系列教程:外设教程 08 串口
stm32·单片机·fpga开发·rk3568
Aaron15887 小时前
基于RFSOC+VU13P在6G通感一体化的技术应用浅析
算法·fpga开发·硬件架构·硬件工程·信号处理·射频工程·基带工程
博览鸿蒙8 小时前
宸极教育 | FPGA直播课程重磅上线!
fpga开发
FPGA_无线通信1 天前
AD9361 IQ接口框架搭建
fpga开发
chinxue20081 天前
VSCODE使用vivado
ide·vscode·fpga开发·编辑器
m0_555762901 天前
FPGA比特流(Bitstream)深度解析
fpga开发
Aaron15882 天前
AD9084和Versal RF系列具体应用案例对比分析
嵌入式硬件·算法·fpga开发·硬件架构·硬件工程·信号处理·基带工程
FPGA小迷弟2 天前
modelsim使用教程,仿真技巧,精华帖
fpga开发·verilog·fpga·modelsim
华舞灵瞳2 天前
学习FPGA(八)快速傅里叶变换
学习·fpga开发
stars-he2 天前
FPGA学习笔记(7)以太网UDP数据报文发送电路设计(一)
笔记·网络协议·学习·fpga开发·udp