告别SDK!Vitis 2019.2下ZYNQ QSPI固化保姆级教程(附启明星7020实测避坑)

张开发
2026/4/20 4:12:26 15 分钟阅读

分享文章

告别SDK!Vitis 2019.2下ZYNQ QSPI固化保姆级教程(附启明星7020实测避坑)
Vitis 2019.2环境下ZYNQ QSPI程序固化全流程实战指南在FPGA开发领域ZYNQ系列芯片因其独特的ARMFPGA架构备受青睐。然而当Xilinx将开发工具从SDK迁移到Vitis后许多工程师在程序固化环节遇到了挑战。本文将深入解析Vitis 2019.2环境下的QSPI固化全流程帮助开发者高效完成从比特流生成到最终烧录的完整操作。1. 环境准备与项目升级1.1 开发环境配置工欲善其事必先利其器。在开始之前请确保已准备好以下环境软件要求Vivado 2019.264位版本Vitis统一开发平台对应版本的驱动和许可证硬件要求ZYNQ开发板本文以启明星7020为例USB-JTAG调试器QSPI Flash芯片提示虽然本文以启明星7020为例但操作流程适用于大多数ZYNQ开发板只需注意引脚分配的差异。1.2 项目升级关键步骤从旧版本迁移项目时需要特别注意以下升级环节# 项目目录结构建议 /project_root /vivado # Vivado工程文件 /vitis # Vitis工作区 /src # 源代码项目文件升级双击.xpr文件打开工程选择Automatically upgrade...选项等待Vivado完成自动升级IP核升级在IP Status报告中选中所有需要升级的IP点击Upgrade Selected按钮确认升级对话框QSPI接口配置打开Block Design双击ZYNQ Processing System IP核在Peripheral I/O配置中启用Quad SPI Flash2. Vitis平台项目创建2.1 硬件导出新变化Vitis引入了全新的硬件描述文件格式——XSAXilinx Support Archive取代了传统的.hdf文件。导出时需注意选项推荐设置说明Include bitstream勾选包含PL部分的配置导出路径/vitis保持工程结构清晰文件格式XSAVitis专用硬件描述文件导出完成后通过Vivado菜单栏的Tools Launch Vitis启动开发环境。2.2 平台项目建立要点在Vitis中创建Platform Project时有几个关键决策点工作区选择建议使用独立的/vitis目录避免路径过长可考虑subst命令项目命名规范平台项目plat_功能如plat_ov5640_hdmi应用项目app_功能处理器配置选择正确的CPU类型通常为ps7_cortexa9_0确认Standalone Domain设置// 典型的主函数框架 #include xparameters.h #include xil_printf.h int main() { xil_printf(Hello from ZYNQ!\n); while(1); return 0; }3. 应用工程与Boot镜像生成3.1 应用工程配置技巧创建应用工程时以下几个细节容易出错工程类型选择空工程Empty Application适合已有代码Hello World模板可用于快速验证路径包含问题右键项目 Properties C/C General添加路径/platform_project/ps7_cortexa9_0/standalone_domain/bsp/ps7_cortexa9_0/include源代码导入直接复制到/src目录确保包含所有依赖文件3.2 Boot Image生成自动化Vitis最大的改进之一就是简化了Boot Image的创建流程。与传统SDK相比主要优势体现在无需手动创建FSBLVitis自动生成First Stage Bootloader开发者只需提供应用代码BIF文件自动生成系统自动创建Boot Image Format描述包含比特流、FSBL和应用代码的完整配置一键式操作右键应用工程 Create Boot Image保持默认设置 Create Image注意生成过程中控制台会显示详细日志如遇错误应仔细检查此处信息。4. 烧录实战与问题排查4.1 QSPI烧录完整流程按照以下步骤完成最终烧录硬件准备BOOT_CFG跳线设置为JTAG模式全ON连接USB-JTAG调试器给开发板上电烧录操作右键应用工程 Program Flash保持默认设置 Program等待控制台显示Flash programming completed启动验证将BOOT_CFG跳线设置为QSPI启动通常为SW2 OFF重新上电观察板载LED或串口输出4.2 常见问题解决方案在实际操作中可能会遇到以下典型问题问题1MIO与QSPI引脚冲突现象烧录成功后无法从QSPI启动解决方案确认ZYNQ配置中已明确启用Quad SPI Flash检查MIO引脚分配是否占用QSPI所需引脚在Vivado中重新生成比特流并导出问题2头文件找不到现象编译时报错xparameters.h not found解决方案# 确保包含路径正确 /project_dir/vitis/plat_xxx/ps7_cortexa9_0/standalone_domain/bsp/ps7_cortexa9_0/include问题3Flash识别失败现象Program Flash时提示无法识别Flash型号解决方案检查JTAG连接是否稳定确认开发板供电充足尝试降低JTAG时钟频率经过多次项目实践我发现最常被忽视的环节是ZYNQ IP核中QSPI的使能设置。很多开发者直接沿用旧项目配置却忽略了Vitis环境下的这一关键步骤。此外保持工程目录结构清晰可以避免90%以上的路径相关问题。

更多文章