一、现象
刚在写STM32的程序,在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息:
Build target 'TEST'
compiling gpio.c...
..\..\User\Sourse\gpio.c(44): warning: #1-D: last line of file ends without a newline
linking...
Program Size: Code=21120 RO-data=476 RW-data=2744 ZI-data=2232
FromELF: creating hex file...
"..\Obj\TEST.axf" - 0 Error(s), 1 Warning(s).
二、解释
Code是代码占用的空间,RO-data是 Read Only 只读常量的大小,如const型,RW-data是(Read Write) 初始化了的可读写变量的大小,ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化。
简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code+RO Data+RW Data
程序运行的时候,芯片内部RAM使用的空间为: RW Data + ZI Data

本文介绍了在Keil环境下编译STM32程序时,Build Output显示的Code、RO-data、RW-data和ZI-data的含义。Code代表代码占用的FLASH空间,RO-data为只读常量,RW-data是已初始化的可读写变量,而ZI-data是未初始化的可读写变量,不计入代码大小,运行时占用RAM。
最低0.47元/天 解锁文章
5310

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



