tsx81429 发表于 2025-3-30 22:34:58

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

在 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 里的代码可以被修改
页: [1]
查看完整版本: 深入理解 Xtensa 架构 ESP32 内存架构(SRAM、IRAM、IROM、DRAM、DROM详解)