当前位置: 首页 > news >正文

STM32八股【3】------RAM和片上FLASH

1、RAM和FLASH构成

1.RAM

┌──────────────────────────┐  
│       栈区 (Stack)        │ ← 从RAM顶端向下扩展(存储局部变量、函数调用信息)
│--------------------------│  
│       堆区 (Heap)         │ ← 从.bss段底部向上扩展(动态分配的内存,如malloc)
│--------------------------│  
│      .bss 未初始化数据区   │ ← 未初始化的全局变量、静态变量(启动时清零)
│--------------------------│  
│      .data 已初始化数据区  │ ← 已初始化的全局变量、静态变量(从Flash加载初始值)
│--------------------------│  
│      .rodata 常量区       │ ← **可能不存在**(通常.rodata保留在Flash,除非优化需要)
│--------------------------│  
│      .text 代码区         │ ← **仅当代码需加速时存在**(如从Flash复制到RAM执行)
└──────────────────────────┘

2.FLASH

┌──────────────────────────┐  
│        中断向量表          │ ← 系统启动代码(如复位向量)
│--------------------------│  
│      .text 代码区         │ ← 程序代码(函数、指令)
│--------------------------│  
│      .rodata 常量区       │ ← 只读数据(常量、字符串)
│--------------------------│  
│      .data 初始值         │ ← 已初始化变量的初始值(运行时复制到RAM的.data区)
│--------------------------│  
│      .bss 信息            │ ← **不占空间**,仅记录.bss段大小(用于启动时清零RAM)
│--------------------------│  
│      其他自定义只读数据     │ ← 配置参数、字体、固件资源等
└──────────────────────────┘
=

相关文章:

  • 高并发系统中的限流策略:滑动窗口限流与Redis实现
  • 【QT】一文学会 QT 多线程(QThread )
  • Qt开发:QComboBox的使用
  • C++学习之云盘上传文件列表下载
  • C#基础学习(三)值类型和引用类型:编程世界的“现金“ vs “银行卡“,以及string这个“渣男“的叛变行为
  • 2059-Authentication plugin ‘caching_sha2_password‘ cannot be loaded
  • 【C++初阶】从零开始模拟实现vector(含迭代器失效详细讲解)
  • 大数据运维实战之YARN任务内存泄露排查实战:从节点掉线到精准定位的完整指南
  • 生成模型速通(Diffusion,VAE,GAN)
  • 理解使用Kubernetes对象
  • Java IO 流:从字节到字符再到Java 装饰者模式(Decorator Pattern),解析与应用掌握数据流动的艺术
  • macos设置docker可以ping通容器
  • Spring Boot(十五):集成Knife4j
  • 算法竞赛备赛——【数据结构】栈单调栈
  • 07_GRU模型
  • ChatGPT vs DeepSeek vs Copilot vs Claude:谁将问鼎AI王座?
  • HTML 表单处理进阶:验证与提交机制的学习心得与进度(一)
  • 优选算法的睿智之林:前缀和专题(一)
  • Codeforces Round 1012 (Div. 2)(ABCD)
  • 【Vue3入门2】02-记事本案例
  • 中国空间站多项太空实验已取得成果,未来将陆续开展千余项研究
  • 空调+零食助顶级赛马备战,上海环球马术冠军赛即将焕新登场
  • “80后”商洛市委副书记、市政府党组副书记赵孝任商洛市副市长
  • 为治理商家“卷款跑路”“退卡难”,预付式消费司法解释5月起实施
  • 结婚这件事,年轻人到底怎么想的?
  • 徐徕任上海浦东新区副区长,此前已任区委常委