|||
之前程序一直工作在JTAG调试模式,裸机程序没有下载到SD卡或QSPI FLASH,今天花时间稍微研究下如何下载,并从SD卡以及QSPI启动。
之前在JTAG的调试阶段,export to SDK的时候,自动生成了初始化ps的ps7_init.tcl文件,这个文件配置了ps部分。
但在实际的嵌入式系统中,没有JTAG线缆来传递这部分信息。因此需要文件来配置Zynq的PS部分,这个文件就是FSBL(first stage boot loader)文件。
以Hello World为例,简要说明下FSBL工程的建立以及从QSPI的启动过程。
(1)建立HelloWorld工程。
(2)建立FSBL工程。
File – New – Application Project,输入文件名,并且新建BSP,下一步,选择Zynq FSBL,finish。
(3)将Helloworld和MZ_FSBL的Build方式由Debug变为Release。Build All。
(4)Xilinx Tools – Creat Zynq Boot Image
选择creat new bif file – Boot image partitions中,分别选择FSBL的elf文件作为bootloader(D:\xilinx\led\led\led.sdk\SDK\SDK_Export\FSBL\Release\FSBL.elf),bit文件(D:\xilinx\led\led\led.runs\impl_1\ system_stub.bit)和hello world的elf文件(D:\xilinx\led\led\led.sdk\SDK\SDK_Export\led\ Release \led.elf)。位置不能颠倒。而后再output path中选择生成mcs文件(QSPI Flash)或bit(SD card)文件。
(5)Xilinx tools – Program Flash
选择刚刚生成的mcs文件。Program。
(6)测试
通过Putty进行测试,将跳线跳为从QSPI启动,每次复位后,串口输出Hello World。
另外,SD卡中的程序要命名为BOOT.bin。