当前位置:首页 > 单片机 > 单片机
[导读]在Keil MDK编译器编译后,信息栏都会显示编译情况,这其中就包含了FLASH跟SRAM的信息。如下图所示,/*********************************************************************************************/查看FLASH跟S

在Keil MDK编译器编译后,信息栏都会显示编译情况,这其中就包含了FLASH跟SRAM的信息。如下图所示,


/*********************************************************************************************/

查看FLASH跟SRAM的占用空间问题主要看下面的语句。

Program Size: Code=29864 RO-data=123592 RW-data=60 ZI-data=3900

/*********************************************************************************************/

其中 要着重注意的是Code、RO-data、RW-data、ZI-data所代表的意思

Code:表示程序所占用 FLASH 的大小( FLASH)。
RO-data:即 Read Only-data, 表示程序定义的常量,如 const 类型( FLASH)。
RW-data:即 Read Write-data, 表示已被初始化的全局变量( SRAM)

ZI-data:即 Zero Init-data, 表示未被初始化的全局变量(SRAM)

/*********************************************************************************************/

那么FLASH和SRAM占用情况的计算方式如下所示:

flash = Code + RO-data + RW-data = 29864+ 123592+ 60= 153516 bytes

sram = RW-data + ZI-data = 60+ 3900= 3960bytes

还有一个要特别注意的是程序的大小不是.hex文件的大小,而是编译结果的Code+RO-data。

在程序初始化的时候,RW-data会从FLASH中拷贝到RAM中。



/*********************************************************************************************/

PS:

很多东西都是自己网上查阅资料,查到的,最主要的是希望能在总结过程中,理清思路。

/*********************************************************************************************/


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭