STM32中IRAM和IROM详细解释

在STM32微控制器中,​​IRAM(Internal RAM)​ ​和​​IROM(Internal ROM)​​是两种关键的内存区域,分别用于存储运行时数据和程序代码。

1. IRAM(Internal RAM)​​

​​定义​​
  • ​IRAM​ 是STM32内部的​随机存取存储器(RAM)​ ,用于存储​运行时数据​(如变量、堆栈、堆等)。
  • 属于易失性存储器,断电后数据丢失。
​​特点​​
  • ​用途​ :
    • 存储全局变量、静态变量、局部变量。
    • 函数调用时的栈空间(Stack)。
    • 动态内存分配(Heap,如malloc分配的内存)。
  • ​访问速度​:极快(与CPU同频,零等待周期)。
  • ​地址范围​ :
    • STM32F103C8T6的IRAM地址为 0x20000000(主RAM)和 0x10000000(CCM RAM,部分型号支持)。
  • ​大小​ :
    • STM32F103C8T6:主RAM 20KB(0x20000000 ~ 0x20005000),无CCM RAM。

​​2. IROM(Internal ROM)​​

​​定义​​
  • ​IROM​ 是STM32内部的​只读存储器(ROM)​ ,通常指​Flash存储器​ ,用于存储​程序代码(Code)和常量数据​。
  • 属于非易失性存储器,断电后数据保留。
​​特点​​
  • ​用途​ :
    • 存储编译后的程序代码(.text段)。
    • 只读常量(如const变量、字符串常量)。
    • 中断向量表(位于Flash起始地址)。
  • ​访问速度​:较慢(需等待周期,STM32F103 Flash访问需2个等待周期@72MHz)。
  • ​地址范围​ :
    • STM32F103C8T6:0x08000000 ~ 0x0801FFFF(128KB Flash)。
  • ​大小​ :
    • STM32F103C8T6:64KB或128KB(具体型号需查手册)。

3. FLASH中存储的是IRAM还是IROM?​​

  • ​FLASH存储的是IROM空间​,即程序代码和常量数据。
  • ​IRAM(RAM)​ 是独立于Flash的物理内存,​不存储在Flash中​。
  • ​误区澄清​ :
    • Flash和IROM是同一物理存储器的两种表述:
      • ​硬件角度​:称为Flash(闪存)。
      • ​软件/链接脚本角度​:称为IROM(因为存储只读内容)。
    • IRAM(RAM)是另一块独立的内存区域,与Flash无关。

4. 关键对比

5. 总结​​

  • ​IRAM​ :运行时数据存储(RAM),地址0x20000000,速度快但容量小。
  • ​IROM​ :程序代码存储(Flash),地址0x08000000,容量大但访问较慢。
  • ​Flash属于IROM空间​,与IRAM无关。

理解这两者的区别,能帮助优化STM32的代码布局和内存管理(例如将关键代码拷贝到RAM执行以提升速度)。

注:本文内容是本人在公司做项目内存使用出现问题时在AI上询问的,也许可以对各位学习内存存储时有一定的帮助,对本文内容请理性查阅使用。

相关推荐
芯祥联8 分钟前
STM32 上跑 MQTT 怎么选?嵌入式 MQTT 客户端 C 语言实现对比
c语言·stm32·单片机·嵌入式硬件·网络协议·开源·broker
Brilliantwxx9 小时前
【STM32】 NVIC 与 EXTI 中断 · 超详细源码级解析
stm32·单片机·嵌入式硬件
加载力科技10 小时前
硬盘咔咔响是坏盘信号!赶在数据丢失前克隆换盘:不重装系统、不丢文件
windows·嵌入式硬件·系统安全·策略模式·命令模式·硬盘
niuTaylor11 小时前
飞腾 FT-2000/4 Ubuntu 内存卡 / NVMe SSD 系统制作完整指南
linux·服务器·人工智能·驱动开发·单片机
思茂信息11 小时前
CST软件BCI仿真模型及仿真案例
开发语言·单片机·嵌入式硬件·算法·emc
李永奉13 小时前
中科蓝讯SDK开发-BT897X、BT891X、AB573X、AB572X 系列 触摸按键提示音功能实现
网络·单片机·嵌入式硬件·mcu·物联网
Zw-awa13 小时前
定时器到底在数什么:STM32 的时间基准从哪里来
stm32
三佛科技-1873661339713 小时前
FT32F405RE02-LB是什么芯片?基于ARM Cortex M4带FPU的MCU芯片解析
stm32·单片机·嵌入式硬件
嵌入式分享14 小时前
嵌入式分#49:浅 8080,RGB,LVDS 与 MIPI 显口
嵌入式硬件·lcd
szarron15 小时前
VNA6 便携式矢量网络分析仪|1MHz‑6.3GHz 手持 VNA 真实应用场景全解析
前端·嵌入式硬件·信息可视化·数据挖掘·数据分析