MicroZed开发实录-程序从QSPI Flash启动~!
时间:10-02
整理:3721RD
点击:
之前程序一直工作在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,bit文件和hello world的elf文件。位置不能颠倒。而后再output path中选择生成mcs文件(QSPI Flash)或bit(SD card)文件。

(5)Xilinx tools – Program Flash
选择刚刚生成的mcs文件。Program。
(6)测试
通过Putty进行测试,将跳线跳为从QSPI启动,每次复位后,串口输出Hello World。

另外,SD卡中的程序要命名为BOOT.bin。
之前在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,bit文件和hello world的elf文件。位置不能颠倒。而后再output path中选择生成mcs文件(QSPI Flash)或bit(SD card)文件。

(5)Xilinx tools – Program Flash
选择刚刚生成的mcs文件。Program。
(6)测试
通过Putty进行测试,将跳线跳为从QSPI启动,每次复位后,串口输出Hello World。

另外,SD卡中的程序要命名为BOOT.bin。
赞!发现我昨天问的问题小编都有回答啦,但是有个建议,下面三个文件的具体文件名和顺序应该显示为文字版的,另外FSBL文件是hello,world程序切换到release,Build All之后自动生成的么?
感谢分享!
提一个问题,我也是走同样的过程,发现个问题,我将.BIN文件放到SD卡里启动正常,而使用QSPI时,采用mcs文件,出现配置完成信号DONE有效后,立马就灭掉,而且PL的逻辑功能也立即失效了!
我遇到的问题也是,求如何解决
我也遇到这个问题了,麻烦您 提供下您的解决方法吗,让我也参考下,弄了好几天没有进展,谢谢了,邮件联系627917312@qq.com 非常感谢了
我也碰到这个问题了,请问解决了吗?
多谢,终于会了
