【JokerのZYNQ7020】SDK程序从QSPI启动。

软件环境:vivado 2017.4        硬件平台:XC7Z020


之前写的QSPI启动是对ZYNQ的PS装Linux系统的,如果不想搞那么麻烦或者功能要求单一,调试又想方便一些,直接写SDK应用,然后固化进QSPI,每次上电从QSPI搬到DDR运行,是再好不过的了,这次就说说怎么搞。只拿个简单工作做个示例。

【JokerのZYNQ7020】SDK程序从QSPI启动。

既然扯到QSPI,那QSPI肯定要配好,记得勾选feedback clock。

【JokerのZYNQ7020】SDK程序从QSPI启动。

时钟150 M,这个根据具体情况具体调整,不要超范围就好。

【JokerのZYNQ7020】SDK程序从QSPI启动。

vivado这边就没啥了,编译,生成bitstream,然后是SDK这边,这里用自带的lwip_echo工程做为app的例子。双击lscript.ld确认一下,程序的运行空间确实在DDR即ps7_ddr_0里。

【JokerのZYNQ7020】SDK程序从QSPI启动。

然后创建FSBL, 也就是First Stage Boot Loader,作用前面已经说了,在系统上电启动,PL端把bitstream加载完成以后,从QSPI把PL的程序,搬出来,解码变成可执行程序,搬进DDR里运行。

【JokerのZYNQ7020】SDK程序从QSPI启动。

 

再确认一遍,这里,应用是lwip_echo,启动fsbl是zynq_fsbl。 接下来就是启动文件的制作过程。右键应用程序顶层文件夹,选择create boot image。

【JokerのZYNQ7020】SDK程序从QSPI启动。

在对应的路径下面,加载如下对应的文件,然后点击create image。

【JokerのZYNQ7020】SDK程序从QSPI启动。

 

成功以后,可以看到,左侧的应用文件夹下面多出来了个bootimage文件夹,里面包含了启动文件BOOT.bin和应用lwip_echo.bif。

【JokerのZYNQ7020】SDK程序从QSPI启动。

再接下来就是烧写啦,选择最上面的Xilinx、program flash。

【JokerのZYNQ7020】SDK程序从QSPI启动。

image文件的BOOT.bin和fsbl文件的zynq_fsbl两个填充正确,然后就开始烧写啦,烧写的时间长度取决于两个烧写文件的大小。 

【JokerのZYNQ7020】SDK程序从QSPI启动。

 烧写完成以后可以看到下面console会提示successful。

【JokerのZYNQ7020】SDK程序从QSPI启动。

接下来重新上电,验证一下, 嗯哼,确实是没问题的啦。

【JokerのZYNQ7020】SDK程序从QSPI启动。