一、资源占用
嵌入式系统开发时,在程序源码设计编写完成后,需要使用编译器将程序源码转换编译为控制器平台可以识别的二进制文件(通常是.hex文件)。在编译器件编译器可以获取了程序所需要占用的存储资源信息,一般也会输出供程序编写者查看。
以Keil MDK为例,编译后的存储资源占用信息输出如下:
Code:程序源码编译后指令集所占用的空间,该部分存放于程序存储空间。
RO-Data:程序源码中,被声明为只读的常量数据占用空间,通常会被编译器放在程序存储空间。
RW-Data:已经初始化了,或者初始化值非0的可读可写的全局变量和局部静态变量占用的空间。
ZI-Data:没有初始化,或者初始化值为0的可读可写的全局变量和局部静态变量占用的空间。
因此,程序占用的FLASH空间为:Code + RO-Data + RW-Data;
程序运行所需RAM空间为:RW-Data + ZI-Data。
那么,由上图所示的程序编译信息可知,该程序所需的FLASH空间为:4036byte;RAM空间为:1648byte。