ESP32 内存占用统计报告

作者:追风剑情 发布于:2026-6-26 17:48 分类:物联网

ESP-IDF 编译成功后,会生成一份“内存占用统计报告”。

111111.png

原文

Total image size: 1323140 bytes (.bin may be padded larger) Note: The reported total sizes may be smaller than those in the technical reference manual due to reserved memory and application configuration. The total flash size available for the application is not included by default, as it cannot be reliably determined due to the presence of other data like the bootloader, partition table, and application partition size.

译文

总镜像大小:1323140 字节(.bin 文件实际大小可能因填充而更大)
注意: 报告中的总大小可能小于技术参考手册中的标称值,这是由于预留内存和应用程序配置导致的。默认情况下,应用程序可用的总闪存大小不包含在此统计中,因为受引导加载程序、分区表和应用分区大小等其他数据影响,无法可靠地确定该值。

统计表列
列表 说明
Memory Type/Section 内存的类型(如 Flash、IRAM、DRAM)或具体的段名称(如 .text、.data)。
Used [bytes] 当前程序在该内存段中实际占用的字节数。
Used [%] 该内存段的使用百分比(Used / Total)。
Remain [bytes] 该内存段剩余可用的字节数(Total - Used)。
Total [bytes] 该内存段的总容量。


1. Flash Code (闪存代码区)

这部分存储的是你的程序代码(指令)。

  • .text: 这是最主要的代码段,包含了所有的程序指令。892,122 字节 就是你的固件逻辑大小。

2. Flash Data (闪存数据区)

这部分存储的是存放在 Flash 中的常量数据。

  • .rodata: 只读数据,例如字符串常量、const 全局变量。283,240 字节 代表这些数据的大小。

  • .appdesc: 应用描述信息,很小,256 字节。

3. IRAM (指令 RAM)

这是 ESP32 内部用于运行关键代码的高速 RAM。它的速度比 Flash 快,但容量有限(通常 128KB)。

  • .text (IRAM 部分): 被指定放入 IRAM 运行的那部分代码。

  • .vectors: 中断向量表,固定占用 1027 字节。

4. DRAM (数据 RAM)

这是 ESP32 的主 RAM,用于存放运行时的动态数据(变量、堆、栈)。

  • .bss: 存放未初始化的全局和静态变量,它们在程序启动时会被清零。

  • .data: 存放已初始化的全局和静态变量。

5. RTC SLOW (RTC 慢速内存)

这是 RTC(实时时钟)模块使用的慢速内存,在深度睡眠时仍可保留数据。

  • .rtc_slow_reserved: 由系统保留的 RTC 内存,占 24 字节,非常小。


标签: IoT

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号