有些应用中,单板没有DDR,OCM又不够存储所有数据和指令。这种情况下,Xilinx提供了参考设计Zynq-7000 AP SoC Boot - Booting and Running Without External Memory,把代码和只读数据放在QSPI Flash中运行程序,这就是execute in place (XIP)。
上述XIP参考设计工作正常,但是只更新到了Vivado/SDK 2017.3,不匹配当前大部分应用中的工具版本。另外,上述XIP参考设计难于理解,也难于移植到其它单板。旧版本XIP参考设计的缺点。
1. XIP参考设计工具版本旧。2. XIP参考设计改动的文件很多。3. XIP的相关代码没有单独标示出来。4. 有些改动还在BSP工程里,重新生成BSP工程,会被覆盖。
为了便于使用,我把XIP参考设计更新到Vivado/SDK 2018.3,并减少特殊文件,使用宏DDRLESS_XIP_SYSTEM包含所有XIP代码。改动后,所有与XIP相关的文件在FSBL或者Application的工程src目录下。所以SDK 2018.3版XIP参考设计具有以下优点。
1. XIP参考设计工具版本新。2. XIP参考设计改动的文件更少。3. XIP的相关代码单独标示。4. 便于移植2018.3版XIP参考设计到其它单板。5. 便于移植2018.3版XIP参考设计到其它工具版本。
Vivado 工程
01
Zynq-7000 AP SoC Boot - Booting and Running Without External Memory提供了TCL脚本project.tcl、system_top.tcl,用于恢复硬件工程。
把其中的版本号,从2017.3改为2018.3后,可以使用Viva