Vivado+Vitis将程序固化的Flash的操作流程

描述

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

1 VIVADO

创建block design,添加ps ip。使能QSPI外设,其他不需要的外设或者引脚可以取消勾选。

FPGA

FPGA

运行block automation,校验。

FPGA

对刚才配置好的PS生成HDL wrapper。

FPGA

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

FPGA

生成比特流,导出硬件(xsa格式的文件)。

FPGA

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。这就是两个工程的区别和联系。

FPGA

选择vivado中导出的硬件xsa文件,勾选启动部件。

FPGA

注意这里的app project名称不要直接写fsbl。因为会生成

FPGA

保持默认。

FPGA

选择FSBL模板。

FPGA

右击xxx_system,Build project。

FPGA

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

FPGA

烧录到flash。

FPGA

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

FPGA

FPGA

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分