STM32 串口IAP ROM和RAM计算

Code = 9172
RO-data = 336
RW-data = 60
ZI-data = 7516

1️⃣ ROM(Flash)占用

ROM = Code + RO-data + RW-data

因为:

  • Code:程序代码(放在 ROM)

  • RO-data:只读常量(放在 ROM)

  • RW-data:有初值的全局/静态变量,初值存放在 ROM

计算:

 
ROM = 9172 + 336 + 60 = 9568 bytes

👉 ROM ≈ 9.3 KB


2️⃣ RAM 占用

RAM = RW-data + ZI-data

因为:

  • RW-data:运行时需要在 RAM 中

  • ZI-data:未初始化的全局/静态变量(BSS 段)

计算:

 
RAM = 60 + 7516 = 7576 bytes

👉 RAM ≈ 7.4 KB


✅ 最终结论

类型大小
ROM (Flash) 9568 B ≈ 9.3 KB
RAM 7576 B ≈ 7.4 KB

 

9568 字节换成**地址偏移(十六进制)**如下:

1️⃣ 十进制 → 十六进制

 
9568 (dec) = 0x2560 (hex)

2️⃣ 含义说明

  • 如果 ROM 起始地址是 0x08000000(常见 STM32)
    那么程序会占用的地址范围是:

 
起始:0x08000000 结束:0x08000000 + 0x2560 = 0x08002560

⚠️ 结束地址通常是 最后一个字节的下一个地址(即 size 作为偏移量)


3️⃣ 对照表(方便你看)

大小十进制十六进制
ROM 占用 9568 B 0x2560
RAM 占用 7576 B 0x1D98

 

posted @ 2025-12-20 09:24  多多和羊羊  阅读(0)  评论(0)    收藏  举报