软件:STM32-F1系列-存储器映像(2026/7/5)

所有存储器可以分成两大类

一:易失性存储器(Volatile Memory)

①:SRAM

SRAM = Static Random Access Memory

中文:静态随机存取存储器

核心一句话

高速、无需刷新、掉电丢失,用于“运行中的临时数据”

特点

  • ⚡ 速度最快(CPU同级访问)

  • ❌ 掉电即丢数据(易失性)

  • ❌ 成本高、面积大

  • ❌ 容量一般较小

  • ❌ 不需要刷新

嵌入式用途

  • 变量(全局/局部)

  • 堆(heap)

  • 栈(stack)

  • DMA缓存

典型位置

  • STM32内部RAM

  • CPU Cache(本质也是SRAM)

②:DRAM

DRAM = Dynamic Random Access Memory

中文:动态随机存取存储器

核心一句话

大容量、便宜、需要刷新、用于“运行缓存扩展”

特点

  • ⚡ 比SRAM慢

  • ✔ 容量大、密度高

  • ❌ 必须周期刷新(Refresh)

  • ❌ 控制复杂(需要控制器)

  • ❌ 掉电丢失

嵌入式用途

  • SDRAM(LCD framebuffer)

  • Linux系统内存(DDR)

  • 大数据缓存

典型形式

  • SDRAM(嵌入式常见)

  • DDR SDRAM(高端SoC)

二:非易失性存储器(Volatile Memory)

③:EEPROM

英文全称:EEPROM = Electrically Erasable Programmable Read-Only Memory

中文:电可擦可编程只读存储器

核心一句话

小容量、可字节擦写、用于“参数长期保存”

特点

  • ✔ 掉电不丢失

  • ✔ 可以按“字节/很小粒度”写入

  • ❌ 写入慢

  • ❌ 擦写寿命有限

  • ❌ 容量小(KB级常见)

嵌入式用途

  • 参数保存(PID参数、校准值)

  • 设备ID

  • 少量配置数据

工程现实

👉 很多MCU没有真正EEPROM
→ 用Flash模拟EEPROM

④:Flash

英文全称:Flash Memory

中文:闪存

核心一句话

大容量非易失存储,但“必须整块擦写”

特点

  • ✔ 掉电不丢失

  • ✔ 容量大

  • ❌ 写入前必须擦除(块/页)

  • ❌ 写入次数有限

  • ❌ 写入速度比RAM慢


细分特点(工程重点)

NOR Flash

  • ✔ 可执行代码(XIP)

  • ✔ 随机读取

  • ❌ 写慢

  • 👉 用于:MCU程序存储


NAND Flash

  • ✔ 容量巨大

  • ✔ 成本低

  • ❌ 不能直接执行

  • ❌ 需要ECC + 控制器

  • 👉 用于:SD卡 / eMMC


SPI Flash(工程最常见)

  • ✔ NOR Flash + SPI接口

  • ✔ 引脚少

  • ✔ 易扩展

  • 👉 用于:STM32外扩、ESP32、文件系统

三:总结

四:SD卡

SD卡在嵌入式存储体系里不属于SRAM/DRAM/EEPROM/Flash这一层级分类,它属于更上层的一类:

基于 NAND Flash 的“存储卡系统(Storage Card)”

五:写入方式