linking…
Program Size: Code=4972 RO-data=268 RW-data=52 ZI-data=1700
FromELF: creating hex file…
After Build - User command #1: C:Keil_v5ARMARMCCbinfromelf.exe --bin -o …OBJUSART.bin …OBJUSART.axf
“…OBJUSART.axf” - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:20
Code = 4972 :是代码占用4972 的空间
RO-data = 268 : Read Only 表示只读常量,占用268字节,如const型,字符串常量
RW-data = 52 : RW-data 表示已经初始化的可读写变量,占用52字节
ZI-data = 1700 :ZI-data表示未初始化的可读写变量,ZI-data不占用FLASH。
烧写的时,占用FLASH的段为: Code + RO-data + RW-data
程序运行时,芯片内部RAM占用的空间为:RW-data + ZI-data
上电后,初始化时RW-data从FLASH拷贝到RAM
所以生成的bin文件大小为:4972 + 268 + 52 = 5292 即 0x1A4C
本文详细解析了一段嵌入式程序的编译过程,包括Code、RO-data、RW-data和ZI-data等段的内存占用情况。在程序烧录时,Code与RO-data存储于Flash,而RW-data与ZI-data在运行时占用RAM。其中,Code为4972字节,RO-data为268字节,RW-data为52字节,ZI-data为1700字节。在上电初始化时,RW-data会从Flash复制到RAM。整个编译和内存管理过程对于理解嵌入式系统的资源利用至关重要。
5302

被折叠的 条评论
为什么被折叠?



