深入理解 Xtensa 架构 ESP32 内存架构(SRAM、IRAM、IROM、DRAM、DROM详解 ...

打印 上一主题 下一主题

主题 1639|帖子 1639|积分 4917

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
ESP32 及其他 Xtensa 架构 MCU 中,内存被分别为差别的地区,以优化性能和存储管理。这些内存地区包罗 SRAM, IRAM, DRAM, IROM, DROM,它们各有用途。

1. 内存地区总览

ESP32 的内存架构重要由:


  • SRAM(Static RAM)
  • IRAM(Instruction RAM)
  • IROM(Instruction ROM)
  • DRAM(Data RAM)
  • DROM(Data ROM)
组成,每个部分有特定的用途。
名称作用存储内容特性SRAM(Static RAM)片上 RAMIRAM + DRAM速度快,供 CPU 使用IRAM(Instruction RAM)指令 RAM存放可实行代码(运行时加载)运行时可修改DRAM(Data RAM)数据 RAM存放 .bss(未初始化数据)、.data(已初始化数据)运行时可修改IROM(Instruction ROM)指令 ROM存放 Flash 里的 .text(步调代码)运行时不可修改DROM(Data ROM)数据 ROM存放 Flash 里的 .rodata(只读数据)运行时不可修改
2. 详细解析

2.1 SRAM(Static RAM,片上静态 RAM)



  • SRAM 是 MCU 内部的 RAM,供 CPU 使用
  • IRAM(存放指令)+ DRAM(存放数据) 组成
  • 运行速度快(比外部 Flash 快许多)
   SRAM 的分别
  SRAM0 + SRAM1(用于 IRAM 和 DRAM)
  

  • IRAM:指令 RAM,存放 可实行代码
  • DRAM:数据 RAM,存放 数据(变量、堆、栈)
  SRAM2(仅用于 DRAM)
  

  • 仅存放 数据
  
2.2 IRAM(Instruction RAM,指令 RAM)



  • 存放 可实行代码
  • 用于高实时性使命,好比 停止处理
  • 代码必须从 Flash 加载到 IRAM 才气运行
  • IRAM 里的代码可以被修改
继续阅读请点击广告
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表