news 2026/7/14 19:50:23

XIP默认指XIP Flash及其扩展应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
XIP默认指XIP Flash及其扩展应用

非常好的问题,它触及了嵌入式系统设计中的一个核心概念。

让我们来分层次清晰地解答:

1. XIP 的默认含义

是的,在大多数嵌入式开发语境下,“XIP”默认指的就是在 XIP Flash 上执行程序。

原因如下:

  • 历史与普遍性:Nor Flash(XIP Flash的主流类型)是最早、最广泛支持XIP的非易失性存储器。它允许CPU像读取内存一样直接通过地址总线读取数据,无需先拷贝到RAM。
  • 系统启动的必要性:系统上电后,RAM(包括PSRAM)是空的,CPU需要立刻从某个已知地址获取第一条指令。这个“启动设备”必须是非易失性且支持XIP的。Nor Flash(或类似技术的QSPI Flash)完美扮演了这个角色。
  • 代码存储的基础:对于许多资源受限的MCU,代码通常存储在片上Flash或外部Nor Flash中,并直接从那里执行,以节省宝贵的RAM空间。

因此,当人们说“这个芯片支持XIP”或“我们在XIP模式下运行”,默认就是指代码存储在Flash中并直接从Flash执行。


2. XIP 能否指在 PSRAM 上执行程序?

答案是:技术上完全可以,但这是一种特定且高级的用法。

核心前提:XIP 是一种“执行模式”,而不是存储器的固有属性。它的定义是“就地执行”,即CPU直接从代码所在的存储器地址取指并执行,无需将代码先复制到系统RAM

只要满足以下条件,任何存储器都可以支持XIP:

  1. 存储器映射:该存储器的物理存储单元被映射到CPU的地址空间(即有一个具体的地址范围,如0x6000_0000)。
  2. 随机访问:CPU可以通过地址总线随机访问该存储器的任意位置,并且访问延迟和时序是可预测的(满足CPU取指要求)。
  3. 总线支持:连接该存储器的总线(如AHB、AXI、QSPI)支持高效、低延迟的读取操作。

PSRAM(伪静态随机存储器)是一种易失性的RAM,但它具有类似SRAM的接口(无需复杂刷新),通常通过类似QSPI或HyperBus的高速接口连接。它完全满足上述XIP条件


3. 为什么在 PSRAM 上执行 XIP 不那么“默认”?

虽然技术上可行,但将PSRAM用作XIP设备有以下挑战和考虑,使其成为“非默认”选择:

  • 易失性问题:PSRAM掉电后数据丢失。因此,你不能直接从PSRAM启动(Boot)。系统必须从一个非易失性XIP设备(如Flash)启动,由启动代码(Bootloader)将应用程序代码从Flash(或其它存储)加载到PSRAM中,然后跳转到PSRAM的地址去执行。这个过程本身已经不是“直接就地执行存储介质里的原始代码”了。
  • 需要初始化:PSRAM控制器通常在上电后需要配置(如时序、时钟模式),之后才能使用。这个初始化代码必须在能运行的地方执行,比如片内SRAM或Flash。
  • 成本与功耗:PSRAM通常比Flash更贵,且作为易失性存储器,保持数据需要持续供电,功耗通常高于Flash。
  • 速度匹配:虽然PSRAM速度比Nor Flash快,但比芯片内部的紧密耦合内存(TCM)或系统SRAM慢。对于追求极致性能的代码段(如中断服务程序),仍可能需要拷贝到更快的内存中执行。

4. 典型应用场景

那么,什么时候会使用“XIP from PSRAM”呢?

  • 性能提升:当应用程序代码太大,无法全部放入高速片上SRAM,但直接在外置Flash中执行(XIP from Flash)又成为性能瓶颈时。一个常见的优化方案是:
    1. 系统从Flash启动。
    2. 将关键的、对性能敏感的函数或代码段(如视频编解码算法、图形处理库)从Flash加载到PSRAM
    3. CPU跳转到PSRAM的地址去全速执行这些代码。
  • 大容量代码执行:对于需要运行大型应用(如LVGL图形库、解释器)的物联网设备或高端MCU,片上Flash和RAM都不够用。可以将整个应用存放在大容量的QSPI NAND Flash中,启动时将其加载到大容量的外部PSRAM(如Octal PSRAM)中,然后在PSRAM中全速运行。

总结

特性XIP Flash (默认的XIP)XIP from PSRAM
存储器类型非易失性 (Nor, QSPI Flash)易失性 (PSRAM)
能否作为启动设备,是主要用途不能,需要从Flash启动并加载
主要目的存储并直接执行代码,节省RAM提供比Flash更快的执行速度,或作为大容量执行内存
典型访问接口QSPI, OSPI, HyperFlashQSPI, OSPI, HyperRAM (与Flash接口类似)
执行速度较慢(受Flash读延迟和接口带宽限制)较快(接近RAM速度)
成本与功耗较低(存储成本)较高

结论:

  1. 默认情况:XIP指的是在XIP Flash上执行程序。
  2. 广义概念:XIP是一种执行模式,只要存储器被映射到CPU地址空间且支持随机读,PSRAM、甚至标准的DRAM(理论上)都可以支持XIP
  3. 实际应用:在PSRAM上执行XIP是一种性能优化或容量扩展手段,通常需要与Flash配合使用(从Flash启动并加载代码至PSRAM),而非替代Flash作为启动和主存储设备。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 18:42:33

YOLO26适合移动端?轻量版yolo26n部署可行性分析

YOLO26适合移动端?轻量版yolo26n部署可行性分析 最近不少开发者在问:刚发布的YOLO26系列里那个最小的yolo26n模型,到底能不能跑在手机、边缘设备或者低配嵌入式板子上?不是光看论文参数,而是真正在实际环境里跑得动、…

作者头像 李华
网站建设 2026/6/30 22:23:28

Linux零基础入门:30分钟搭建第一个服务器

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个面向Linux新手的可视化学习应用,包含:1) 图形化命令行模拟器;2) 分步任务指引系统;3) 实时错误检查;4) 成就奖励…

作者头像 李华
网站建设 2026/6/26 12:06:07

企业级开发环境搭建:IDEA安装与团队规范配置

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个企业级IDEA配置工具,功能包括:1)批量许可证激活 2)统一插件管理(如CheckStyle、SonarLint) 3)团队代码模板导入 4)共享运行配置 5)Maven/Gradle统一…

作者头像 李华
网站建设 2026/7/4 5:35:01

告别任务管理器!Process Explorer高效使用全攻略

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Process Explorer功能增强插件,添加:1) 快捷键自定义 2) 常用操作宏 3) 自动化监控任务 4) 数据导出和分析功能。要求保留原生界面风格&#xff0c…

作者头像 李华
网站建设 2026/7/5 20:36:31

电商系统实战:用Postman测试支付接口全流程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个电商支付接口测试模拟系统,要求:1. 模拟支付宝/微信支付接口 2. 包含订单创建、支付请求、回调验证全流程 3. 预设各种测试用例(支付成功、余额不足…

作者头像 李华
网站建设 2026/7/3 12:54:35

Z-Image-Turbo采样算法对比:不同方法效果实测

Z-Image-Turbo采样算法对比:不同方法效果实测 1. 快速上手:Z-Image-Turbo UI界面初体验 Z-Image-Turbo不是那种需要敲一堆命令、调一堆参数才能看到结果的模型。它配了一个开箱即用的图形界面,点点鼠标、输几句话,高清图就出来了…

作者头像 李华