QSPI Flash的作用

news/2025/4/1 15:22:27/文章来源:https://www.cnblogs.com/yanghonker/p/18800493

QSPI Flash的作用

QSPI Flash(Quad SPI Flash)是一种非易失性存储器,通过四线SPI接口与处理器或FPGA/SoC(如Xilinx ZYNQ)通信。它在嵌入式系统中的核心作用如下:


1. 核心功能

  • 存储启动代码(Boot Code)

    • 多数嵌入式系统(如ZYNQ的PS)从QSPI Flash启动,存储第一阶段的引导程序(如FSBL,First Stage Boot Loader)、硬件配置文件(如PL比特流)或操作系统镜像。
    • 系统上电时,处理器直接从QSPI Flash加载并执行初始化代码。
  • 存储FPGA配置数据

    • 在ZYNQ等SoC中,PL(可编程逻辑)的硬件比特流文件可存储在QSPI Flash中,由PS在启动时加载到PL,实现逻辑配置。
  • 固件与应用程序存储

    • 存储用户应用程序、操作系统内核或其他长期不变的固件代码,支持脱机运行。
  • 数据存储

    • 保存系统参数、校准数据或日志等需要长期保留的信息。

2. 在ZYNQ平台中的典型应用

  • 启动流程

    1. ZYNQ上电后,PS的BootROM从QSPI Flash读取FSBL
    2. FSBL初始化PS(如DDR、外设),并将PL的比特流文件或应用程序(如U-Boot)从QSPI加载到内存。
    3. 启动操作系统或用户程序。
  • 动态重配置
    通过PS在运行时从QSPI Flash读取不同比特流文件,动态重构PL逻辑功能。


3. 对比其他存储器的优势

特性 QSPI Flash NOR/NAND Flash SD/eMMC
接口 四线SPI,引脚占用少 并行/SPI接口 SD/MMC总线
启动支持 直接支持处理器启动(XIP*) NOR支持XIP,NAND不支持 通常需BootLoader加载
随机读取速度 高速(四线模式提升吞吐量) NOR较快,NAND较慢 中等
容量 通常几Mb~几Gb NOR较小,NAND较大 较大(几GB~TB)
成本与复杂度 低(接口简单,无需控制器) NOR成本高,NAND需坏块管理 需协议栈支持

*XIP(eXecute In Place):代码可直接在Flash中运行,无需加载到RAM。


4. 设计注意事项

  • 分区规划:需合理划分QSPI Flash区域(如Boot分区、PL配置分区、数据分区)。
  • 读写寿命:Flash有擦写次数限制(通常10万次),频繁写入需配合磨损均衡算法。
  • 接口配置:ZYNQ需在Vivado中正确配置QSPI控制器,并设置Boot模式引脚选择QSPI启动。

总结

QSPI Flash在嵌入式系统中扮演启动媒介、配置存储和固件仓库的角色,尤其适合需要快速启动、低引脚占用和可靠非易失存储的场景。在ZYNQ等SoC中,它是连接PS与PL协同工作的关键硬件基础之一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/908085.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apple Final Cut Pro 11.1 - 专业后期制作 (视频剪辑)

Apple Final Cut Pro 11.1 - 专业后期制作 (视频剪辑)Apple Final Cut Pro 11.1 - 专业后期制作 (视频剪辑) Final Cut Pro 11.1.0 + Compressor 4.10.0 + Motion 5.10.0 请访问原文链接:https://sysin.org/blog/apple-final-cut-pro/ 查看最新版。原创作品,转载请保留出处。…

Adobe Photoshop 2025 v26.5 (macOS, Windows) - 照片和设计软件

Adobe Photoshop 2025 v26.5 (macOS, Windows) - 照片和设计软件Adobe Photoshop 2025 v26.5 (macOS, Windows) - 照片和设计软件 Acrobat、After Effects、Animate、Audition、Bridge、Character Animator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、Lightroo…

VMware Aria Operations 8.18.3 新增功能简介

VMware Aria Operations 8.18.3 新增功能简介VMware Aria Operations 8.18.3 - 多云 IT 运维管理 通过统一的高性能平台,实现跨私有云、混合云和多云环境的 IT 运维管理。 请访问原文链接:https://sysin.org/blog/vmware-aria-operations/ 查看最新版。原创作品,转载请保留出…

CCF的GESP等级考试与CSP-J/S竞赛

CCF的GESP等级考试与CSP-J/S竞赛介绍一、GESP介绍 GESP 即 CCF 编程能力等级认证,由中国计算机学会发起并主办,是为青少年计算机编程学习者提供能力验证的线下平台. 其目的是提升青少年计算机和编程教育培训水平,推广和普及青少年计算机和编程教育,选拔优秀人才. 它的适用年…

【计算机网络】网络排错思路总结

明人不说暗话,这篇文章我们来聊一个非常有用,同时也是程序员必备的技能,那就是网络排错思路大总结。 有了这个技能,如果以后发生领导、妹子电脑上不了网的情况,你上去就是一顿操作,稳稳的~~注意:一般一台电脑有多个网卡。一个是PCI网卡是用于插网线的, 另一个是WireLes…

【计算机网络】CDN内容分发网络

背景本来是为了深入了解 CDN 的,结果发现前置知识:IP、域名、DNS 都还不算特别熟,所以先写了他们 现在终于来聊一聊 CDN 啦 本文素材均出自:https://www.bilibili.com/video/BV12T4y1P7Fh,动画仍然满分如何打开一个网站 前面说过了浏览器访问域名 DNS 负责解析域名,找到域…

关于electron如何获取dropAndDrag的文件全路径

问题 当托放文件到窗口时,React应用无法获取文件的全路径,因为新版本去掉了“path”属性。那么如何在托放文件时,获取全路径呢? 参考链接 https://www.electronjs.org/docs/latest/api/web-utils 使用webUtils 如下图,preload.js里面把webUtils.getPathForFile暴露给渲染进…

Vue中 this.$emit() 方法详解, 帮助子组件向父组件传递事件

this.$emit()是 Vue.js 中一个很有用的方法,可以帮助子组件向父组件传递事件前言 在Vue中,this.$emit()方法用于触发自定义事件。它是Vue实例的一个方法,可以在组件内部使用。 使用 this.$emit() 方法,可以向父组件发送自定义事件,并传递数据给父组件。父组件可以通过监听这…

Unity 运用新输入方法进行移动 (input System)

首先在包管理器中添加 input System重启后进入编辑项目中 找到玩家-配置 将Api兼容级别 改成 .NET Framework 活动输出处理改成 输入系统包(新)创建瓦片地图矩形 添加调色板 为瓦片地图添加Tilemap Collider 2D组件以及Composite Collider 2D(会自动添加Rigidbody 2d组件)组…

C#之Bitmap

SetPixel和GetPixel private void btnC_Click(object sender, RoutedEventArgs e) {OpenFileDialog dia = new OpenFileDialog();dia.Filter = "图像文件|*.png;*.bmp;*.jpg|所有文件|*.*";dia.Multiselect = false;if (dia.ShowDialog() == true){var fileName=dia.…

DVWA靶场 - Command Injection

Low 代码审计: 从源码中可以看出,代码只是执行了一个ping 命令,并没有对后面的参数做限制因此我们可以分别使用 ;、 |、||、&、&&进行注入;,命令行可以使用whoami、ipconfig/ifconfig、ls/dir 等Medium 代码审计: 对比代码发现,;和&& 被加入了黑名…