|
一直对怎么去计算程序占用的ROM和RAM空间大小不解,而且做项目的时候一般需要估算一下程序可能需要占用空间大小才好选取用多大ROM和RAM空间的MCU来做,举个简单的程序吧:程序功能实现LED闪烁:
#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar temp;
sbit LED=P2^3;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
while(1)
{
LED=~LED;
delay(10);
}
}
这段程序占用单片机空间大小是怎么计算的呢?是不是这样:
定义了一个uchar的全局变量,占用1个字节,delay(uint z)形参(16位)定义不占用ROM,但运行时占用2字节的RAM,delay函数内部定义了两个uint(16位)的变量,占用2字节ROM,那是不是可以这样理解这段程序编译后占用单片机的ROM大小为:
ROM = 3Byte+ 引用头文件占用的ROM大小
运行时程序占用RAM大小:
RAM = ?不知道该怎么计算
不知道实际是怎么计算的,希望得到帮助,困惑好久了,谢谢!
|
|