首页 > 代码库 > 变量存储——iRAM解析

变量存储——iRAM解析

//对于C51来说,内部RAM只有256Byte//其中包括,低128Byte直接寻址的data和高128Byte间接寻址的idata(也包括SFR)//data   定义的变量只能寻址低128Byte//idata  定义的变量可以寻址整个iRAM
#define LEN 120 
data unsigned char tt1[LEN]; idata unsigned char tt2[127]; void main() {      unsigned char i,j;          for(i = 0;  i < LEN; ++i )     {         j = i;          //注释掉这一行,编译器,无法优化变量j,就会将j放到RAM区域,从而会引发溢出错误        tt1[j] = 0x55;     } } /***********************极限分配iRAM的例子************************//************************ [iRAM Space Map] ************************              __________________________________________________             | R0~R7  +   tt1   +   tt2   +   SP(at least)      |             |                                                  |             |  8B    +   120B  +   127B   +  1B =  256 Byte    |             |__________________________________________________|************************ [iRAM Space Map] ************************/
代码来源于网络,特发此与大家分享,感谢原作者!

变量存储——iRAM解析