ZYNQ 的程序固化是指将程序代码永久存储到非易失性存储器中,使系统上电后能自动加载运行的过程。主要固化方式:**QSPI Flash固化:**最常用方式,容量小,如启动代码、FPGA 配置。**NAND Flash固化:**适合大容量程序存储,如文件系统。**SD卡固化:**方便更新,适合开发阶段。

1 VIVADO

创建block design,添加ps ip。使能QSPI外设,其他不需要的外设或者引脚可以取消勾选。
在这里插入图片描述
在这里插入图片描述

运行block automation,校验。
在这里插入图片描述

对刚才配置好的PS生成HDL wrapper。
在这里插入图片描述

修改打包的顶层文件,将PL部分实现的顶层设计作为一个模块实例化到Wrapper里,线网同名调用即可。
在这里插入图片描述

生成比特流,导出硬件(xsa格式的文件)。
在这里插入图片描述

2 VITIS

启动vitis IDE,创建app project。有三个创建project选项。platform project是一个工程的平台工程,通过xsa文件生成,也就是你在vivado里设计的工程,它在vitis里作为一个平台,其上搭建application project。选择application project,如果没有platform的话,软件会引导你生成platform。选择platform project的话,会先创建platform,然后再手动创建application project。也就是说,我们在vitis里的工程,就是application project,而我们又必须使用xsa文件生成一个硬件平台承载application project。这就是两个工程的区别和联系。
在这里插入图片描述

选择vivado中导出的硬件xsa文件,勾选启动部件。
在这里插入图片描述

注意这里的app project名称不要直接写fsbl。因为会生成
在这里插入图片描述

保持默认。
在这里插入图片描述

选择FSBL模板。
在这里插入图片描述

右击xxx_system,Build project。
在这里插入图片描述

Create boot image。创建一个名为output的文件夹用于存放启动文件:output.bif和BOOT.bin。制作启动镜像需要添加3个源文件:fsbl作为bootloader,比特流文件bit和顶层可执行文件elf作为data partition。
在这里插入图片描述

烧录到flash。
在这里插入图片描述

如果是第一次烧录,直接把跳帽偏置在QSPI即可,否则会出现初始化失败错误。如果flash已经烧录了一个版本,需要将跳帽偏置在JTAG,然后烧录,否则也会报错。烧录结束后再把跳帽放会QSPI。
在这里插入图片描述在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐