深入理解 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]