1:如在zynq 平台约束报错如下
这个警告的核心原因是:你使用的 Zynq 芯片系列不支持在 XDC 约束文件中设置BITSTREAM.CONFIG.SPI_BUSWIDTH属性。
- Zynq-7000 系列:其配置由 PS(ARM 处理器)通过 BootROM 完成,而非 PL(FPGA)直接从 Flash 加载。因此,
BITSTREAM.CONFIG.SPI_BUSWIDTH这类用于纯 FPGA 配置的属性在 Zynq-7000 上是不存在的,强行设置就会触发警告。 - Zynq UltraScale+ MPSoC 系列:在较新的 Vivado 版本中,该属性的设置方式也发生了变化,直接在 XDC 中设置同样可能报错。
2. 当从软核sdk 移植程序到硬核平台的过程中报如下截图错误(即使加了#include <math.h>)
2.1:原理
2.2解决方法如下:
3:DDR3挂在PS端的,如果没用到DDR3的存储功能,只运行ps的程序。ddr3控制器可以不配置吗——必须配置DDR3
4:Zynq的固化流程
上电复位释放 ↓ 【Stage0 BootROM(芯片内置,不可修改)】 1. 读取启动模式引脚MIO[2:6] 2. 初始化启动介质(QSPI/SD等) 3. 搜索BOOT.BIN,加载FSBL到OCM 4. 跳转OCM,移交执行权 → FSBL ↓ 【Stage1 FSBL(一阶引导,用户可定制,运行于OCM)】 1. PS时钟、MIO、外设基础配置 2. 初始化DDR控制器 ✅关键步骤 3. 【可选】加载bit流,通过PCAP配置PL(FPGA) 4. 加载下一级程序 ↓ ┌──────────────┬──────────────┐ │ 裸机Standalone路线 │ Linux系统路线 │ │ FSBL加载应用程序至DDR │ FSBL启动U-Boot(SSBL) │ │ ↓ │ ↓ │ │ 直接运行用户裸机代码 │ U-Boot→加载内核+设备树 │ │ ↓ │ │ │ 启动Linux操作系统 └──────────────┴──────────────┘5:如何结局下面的错误
6:如果双击vitis后打开如下这个界面——
说明已经选了路径
通过如下关闭已经选路径
然后重新建文件夹
7.1:PL和PS接口主要就是如下三类
7.2:EMIO:可接外部Pin和内部逻辑
8;软件架构
9:1. Platform工程能不能不带PL逻辑bit?~可以
你说的硬件平台(Platform Project)≠ PL比特流bit文件,二者完全分开!
1. Platform硬件平台工程(Vitis)
Platform 的作用:导入 Vivado 导出的 hw.xsa 文件,定义PS配置(时钟、DDR、MIO分配、外设引脚),这是PS运行的基础,必须要有!
2. bit文件:只是PL的逻辑配置镜像,不属于Platform硬件定义,只是BOOT.BIN里可选的加载段。
10:BIN文件和elf文件生成位置如下
工程编译过后可以看到系统工程和应用工程下各自生成了一个Debug文件夹,系统工程下的Debug文 件里包含的是BOOT.BIN(固化文件),应用工程下的Debug文件里包含的是axi_gpio_fsbl.elf(应用工程 烧录文件)
11:点击两个地方能dubg 程序
11.1
11.2
12.1:自动添加fsbl.elf文件的方法
2022的vitis的fsbl.elf文件有可能不在boot文件夹里面就在如下这个地方
12.2还有一种手动生成的运行函数fsbl的方法
首先确保xilffs勾选
基于同一个XSA创建fsbl.elf文件