马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
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 里的代码可以被修改
|