应用背景
由于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模式下进行烧写下载。