Keil-MDK编译完成后代码大小

Posted pertor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keil-MDK编译完成后代码大小相关的知识,希望对你有一定的参考价值。

 

Code 代表执行的代码,程序中所有的函数都位于此处。

RO-data 代表只读数据,程序中所定义的全局常量数据和字符串都位于此处。

RW-data 代表已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。

ZI-data 代表未初始化的读写数据,程序中定义了但没有初始化的全局变量和静态变量位于此处。

KEIL RVMDK编译后的信息

Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116

这些参数的单位是Byte,几个参数分别代表含义如下: 

1KB=1024B;1MB=1024KB=1024×1024B。其中1024=2^10。
1B(byte,字节)= 8 bit(见下文);
1KiB(Kibibyte,千字节)=1024B= 2^10 B;
1MiB(Mebibyte,兆字节,百万字节,简称“兆”)=1024KB= 2^20 B;

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

 

文章参考:https://blog.csdn.net/fxh296249331/article/details/50721896

以上是关于Keil-MDK编译完成后代码大小的主要内容,如果未能解决你的问题,请参考以下文章

keil编译成功如何显示

装箱与拆箱

VS2005中#ifdef XXXX后代码灰色相关智能帮助不可用

JVM内存模型

Java 代码编译和执行的整个过程

JVM:Java内存区域