分析程序大小及内存占用情况:读-only数据集、可写数据集和不可变数据集的解释
发布时间
阅读量:
阅读量
一、现象
刚刚在编写STM32的程序时,当在Keil环境中完成工程的编译后,在下方的Build Output窗口中会显示如下内容:
Build target 'TEST'
正在编译gpio.c...
....\User\Sourse\gpio.c(44): 警告: #1-D: 文件的最后一行缺少换行符
正在链接...
程序大小:代码=21120 RO数据=476 RW数据=2744 ZI数据=2232
FromELF:正在生成hex文件...
"..\Obj\TEST.axf" - 0个错误,1个警告。
二、解释
Code代表代码所占用的存储区域,RO-data表示只读常量的容量,例如const类型的变量;RW-data指的是已初始化的可读写变量所占空间,而ZI-data则是未初始化的可读写变量所占空间。ZI-data不被计入代码部分,因为它在程序中并未被显式初始化。
简而言之,在进行程序烧录时,FLASH存储器中被占用的部分包括:Code、RO Data以及RW Data。而在程序运行阶段,芯片内部RAM所使用的空间则由RW Data与ZI Data共同构成。
三、代表概念的内涵解析
Code=21120:表示程序代码所占用的字节数量
RO-data=476:用于标识程序中指令与常量所占据的存储空
全部评论 (0)
还没有任何评论哟~
