ZYNQ - 无DDR固化程序(压缩FSBL以能固化更大的应用程序在OCM上)

应用背景

由于ZYNQ去掉DDR之后,arm空间仅剩余256kbit(192+64),而FSBL占用资源过多,所以对FSBL的配置相关操作进行压缩裁剪,整合到静态链接库,可以用于无FSBL的固化启动。 在FPGA端不ENABLE DDR,在SDK端正常建立工程,补充内容如下:

适用板卡

适用于ZYNQ7系列板卡。

移动部分文件

将导入SDK的平台文件夹下的ps7_init.c和ps7_init.h移动到src

添加静态链接库

新建一个文件夹(可直接添加在src中)添加libno_ddr_boot.a,将no_ddr_boot.h添加到src中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c9j99ZwV-1651209582685)(C:\Users\Administrator\Desktop\ZYNQ无DDR固化程序.assets\image-20220423171826061.png?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg==,t_20)]

添加路径信息

点击properties,添加相关编译信息

编辑directories,

在这里插入图片描述

编辑libraries,

在这里插入图片描述

更改平台文件

在platform.c文件中进行如下更改,包含以下头文件:

在这里插入图片描述

进行ps7_init的初始化,在109行添加init_FPGA();

在这里插入图片描述

生成镜像文件

使用该版本无需添加系统生成,只需添加elf和bit文件。

烧写固化

可以新建fsbl工程进行引导固化,屏蔽DDR有关的操作,可手动定义一个宏定义用于调过该段,XPAR_PS7_DDR_0

编译工程,生成的fsbl的elf用于引导固化烧写flash。

在jtag模式下进行烧写下载。

工程文件和静态链接库

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 3
收藏 4
关注 14
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧