欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MDK编译生成的BIN文件占用FLASH大小

程序员文章站 2022-05-23 23:28:01
...

STM32烧写Flash时用到的BIN文件大小

在MDK中,通过fromelf.exe命令将hex文件转换成bin文件时,所占用的Flash空间是多大?
从哪里看呢?

1、资源浏览器中通过查看文件属性可以看到

MDK编译生成的BIN文件占用FLASH大小
上图中,大小一栏中的数字3716,即是BIN文件所占用Flash空间的大小。

2、相同功能的浏览器也可以看到

在TotalCommander中也同样可以通过文件的属性看到BIN文件的大小。
MDK编译生成的BIN文件占用FLASH大小
可以看到,BIN文件的大小同样是3716字节。

3、MDK编译后的信息中通过计算得到

MDK编译生成的BIN文件占用FLASH大小

compiling stm32f1xx_hal_cortex.c...
compiling system_stm32f1xx.c...
compiling stm32f1xx_hal_flash_ex.c...
compiling stm32f1xx_hal_pwr.c...
compiling stm32f1xx_hal_flash.c...
linking...
Program Size: Code=3340 RO-data=360 RW-data=16 ZI-data=1088  
FromELF: creating hex file...
After Build - User command #1: fromelf.exe --bin -o "IAP_USER-APP_CubeMX\IAP_USER-APP_CubeMX.bin" "IAP_USER-APP_CubeMX\IAP_USER-APP_CubeMX.axf"
"IAP_USER-APP_CubeMX\IAP_USER-APP_CubeMX.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:  00:00:14

如上所示,
Code = 3340 :是代码占用3340 的空间

RO-data = 360 : Read Only 表示只读常量,占用360字节,如const型,字符串常量

RW-data = 16 : RW-data 表示已经初始化的可读写变量,占用16字节

ZI-data = 1088 :ZI-data表示未初始化的可读写变量,ZI-data不占用FLASH。

烧写的时,占用FLASH的段为: Code + RO-data + RW-data
程序运行时,芯片内部RAM占用的空间为:RW-data + ZI-data
上电后,初始化时RW-data从FLASH拷贝到RAM。

结论:

最方便快捷的观察渠道,还是通过资源浏览器类的工具直接获取。

参考文章:
https://blog.csdn.net/kuangdoushi/article/details/69499933

相关标签: 调试 STM32