應用背景
由于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模式下進行燒寫下載。