嵌入式完整内存占用计算
2026/8/5 8:11:10 网站建设 项目流程

三段回顾精简版

  1. .text:程序代码(编译后的机器码)、const 常量、字符串常量 →存 Flash,只读
  2. .data:全局 /static 带初始值变量。初始样板存在 Flash,运行拷贝到 RAM
  3. .bss:全局 /static 未初始化变量。只占用 RAM,不占用 Flash 镜像

局部变量:栈 (Stack);动态 malloc:堆 (Heap),不属于 text/data/bss

一、计算公式(重中之重)

1)FLASH 总占用(固件烧录大小,elf/bin 文件大小)

Flash_Size = .text _Size + .data_Size

✅解释:

  • .bss 全部是 0,bin 文件不会存储这些零数据,不计入 Flash
  • const 常量属于.text,算进 Flash

2)运行时 RAM 最小静态占用

RAM_Static = .data + .bss

✅解释: 上电后.data 拷贝到 RAM、.bss 内存清零,这两块是永久占用的静态内存。

3)系统完整 RAM 总需求(产品硬件选型必须算这个!)

RAM_TotalNeeded = .data + .bss + Stack + Heap

  • Stack:栈,局部变量、函数调用、中断现场
  • Heap:堆,malloc/free 动态内存(不用 malloc 可以 Heap=0)

二、实例演算

假设编译器 map 文件输出:

.text = 128KB .data =

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询