ZYNQ QSPI FLASH启动系统的方法,包括各种错误的解决,petalinux的使用,vivado的使用,详细讲解(一)

前言
我的ZYNQ开发板上无SD卡和网口,所以只能设置为QSPI flash启动,为了这样启动系统,我遇到了很多问题,在此简单的总结一下。我vivado版本为2017.4,petalinux版本为2019.1,我在此强烈建议将vivado和petalinux的版本统一,统一版本会少出现很多问题。

petalinux2019.1的安装已经有很多博客写过了,我就不再赘述了,其中可能出现的错误在我的另一篇博客中有写。

一、vivado的使用,如何配置硬件资源
QSPI flash要启动系统,必须生成BOOT.BIN文件,petalinux生成BOOT.BIN文件有两种方法:
1、使用xilinx官方的BSP包,直接生成BOOT.BIN
2、使用vivado构造硬件资源,导入ubuntu里,使用petalinux生成BOOT.BIN
我使用的板子肯定没有官方的BSP包的,因此我采用的是第二种方法,使用vivado配置硬件资源。

1、创建项目,设置芯片型号,我是用的是ZYNQ7000系列的芯片,型号是X7ZC030ffg676

在这里插入图片描述
2、创建核心,配置硬件资源,关闭时钟
选择QSPI FLASH ,和UATR1,每个板子UART1对应的引脚可能不同,请自行选择。
在这里插入图片描述
在这里插入图片描述
由于没有PL资源,因此我们可以直接关闭时钟,下面是关闭后的图片:
在这里插入图片描述
在这里插入图片描述
根据自己的芯片设置DDR
在这里插入图片描述

3、进行封装,并编译,生成bit文件

将生成的核连接起来
在这里插入图片描述
封装
在这里插入图片描述

编译,生成bit流
在这里插入图片描述

生成结束后,出现一个窗口,点击取消
在这里插入图片描述

导出硬件资源,启动SDK
在这里插入图片描述

4、添加文件,使用fsbl模板,修改相关配置
vivado2017.4在使用的时候要进行一些配置

设置环境变量
进入系统的高级设置,点击设置环境变量

在这里插入图片描述
在这里插入图片描述
新建两个环境变量

计算机à属性à高级系统设置à高级à环境变量à新建系统变量
变量名:XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ
变量值:10000000

在这里插入图片描述

启动SDK后,新建工程,使用系统自带的FSBL模板
在这里插入图片描述
在debug.h中添加 #define FSBL_DEBUG_INFO 宏定义,fsbl在启动后会打印相关信息
在这里插入图片描述
由于vivado2017.4软件本身的原因,在设置为QSPI flash启动的时候必须设置为JTAG启动才行,我们可以在main.c中添加一行
BootModeRegister = JTAG_MODE; 就不用设置板子也可以下载。
在这里插入图片描述

保存设置,build project

在这里插入图片描述

  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Zynq QSPI Flash启动是指使用Zynq芯片的QSPI闪存作为启动设备来启动系统。在这种启动方式下,Zynq芯片会从QSPI闪存中读取启动程序,然后执行该程序来启动系统。这种启动方式具有启动速度快、可靠性高等优点,因此在一些应用场合下被广泛采用。 ### 回答2: Zynq是赛灵思(Xilinx)公司推出的一种FPGA和ARM Cortex-A9双核处理器内核组成的SoC。QSPI(Quad SPI)是四线SPI模式的一种扩展,它使用四根数据线,能够提供更高的数据传输速率。QSPI Flash是一种存储器芯片,通常由Spansion、Micron、Winbond等厂商生产,它能够在低功耗的情况下提供高速度的数据存取。 在Zynq中,系统启动时会从QSPI Flash中读取启动代码,然后将代码加载到内存中执行。因此,QSPI Flash启动Zynq启动的基础。以下是关于Zynq QSPI Flash启动的步骤: 1.配置QSPI Flash:需要通过手动设置或使用软件自动化配置工具来设置QSPI Flash的模式、时序和其他参数。这些参数需要与Zynq芯片的规格书配合设置,确保QSPI Flash与芯片能够正常通信。 2.在Vivado里进行设计: 需要在Vivado中设计一个Zynq系统包括Zynq处理器IP核和QSPI Flash IP核,并将两个IP核链接在一起,以实现启动时芯片从QSPI Flash中读取代码。 3.生成bitstream: 在完成设计后,需要使用Vivado生成Zynq系统的bitstream。bitstream是一个二进制文件,包含了Zynq芯片的配置信息,可以在生产过程中烧录到芯片上。bitstream中的配置信息包括了QSPI Flash的配置参数、启动代码的地址位置和大小等。 4.编写启动代码:需要编写适合于Zynq启动代码,该代码需要放置在QSPI Flash的制定地址位置以供Zynq进行启动启动代码可以是裸机代码或操作系统(如Linux)。 5.测试系统:当设计和开发工作完成后,需要进行系统测试。通过对系统的测试,可以确保QSPI Flash启动的正确性。 在进行Zynq QSPI Flash启动设计时,需要考虑芯片与QSPI Flash之间的通信和数据传输,注重细节,确保系统的稳定性和可靠性。 ### 回答3: Zynq QSPI flash启动是指FPGA芯片通过QSPI接口连接外部闪存启动。这种启动方式具有启动速度快、布线短等优点,非常适合使用在资源受限的嵌入式系统中。 下面简要介绍Zynq QSPI flash启动的基本流程和注意事项。 1. 确定启动模式:Zynq支持两种启动模式,分别是JTAG启动和QSPI启动。在实际应用中,一般使用QSPI启动。 2. 配置引脚:根据所使用的芯片和开发板,需要确认相关的引脚连接配置。例如,需要确认QSPI数据线、时钟线、CS线等连接方式。 3. 配置闪存:在设计和布局PCB时,需要确认闪存的操作模式、地址空间、芯片选择等参数。在实际操作中,需要编写相应的启动代码和修改Vivado中的设计约束文件。 4. 切换MIO模式:为了让QSPI启动,需要切换相应引脚的MIO模式。例如,需要将SD0引脚切换为QSPI MIO模式。 5. 烧录启动镜像:制作好启动镜像后,需要使用编程器将镜像烧录到闪存中。常见的启动镜像格式包括BIF、SD等。 注意事项: 1. 保证闪存中有启动镜像。 2. 确认各个引脚的连接方式和信号电平,防止可能存在的焊接错误或短路现象。 3. 在编写启动代码和设计约束文件时,需要熟悉Zynq启动流程和寄存器配置信息,避免出现错误。 4. 选择合适的闪存芯片和布局方式,以保证启动速度和布线长度的平衡。 总之,Zynq QSPI flash启动是一种高效、便捷的启动方式,可以大大降低嵌入式系统启动时间,提高系统性能。但操作时需要注意各种细节,小心谨慎,以保证操作的正确性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值