盼望所长大人、各位大侠以及学有所得朋友指点和监督!先道一声:谢谢了! 首先学习内存管理的函数。 下面是内存管理的C函数 //内存管理 #include<reg52.h> #include "Memory.h" //内存初始化 内存初始指针指向RAM最后
unsigned char idata *pRamEad; //初始化 void Memory_Init() { pRamEad=0; } //析构 /**************************/ void Memory_Destory(void) { } //内存分配 //返回分配后的初始指针 unsigned char idata *Memory_Malloc(unsigned char Msize) { pRamEad-=Msize; return pRamEad; } //用于指定数据清除内存
void Memory_Memset(unsigned char idata *pRam,unsigned char mChar, unsigned char mLen) { while(mLen--) { *pRam++=mChar; } } 下面是内存管理的头文件: #ifdef _MemoryH //用户可以使用的变量
#else //---------------------------------------------------------- //内存初始化 //内存初试指针总是指向RAM最后 //---------------------------------------------------------- extern void Memory_Init(unsigned char *pRamEnd);
//---------------------------------------------------------- //析构 //---------------------------------------------------------- extern void Memory_Destory(void);
//---------------------------------------------------------- //内存分配 //返回分配后的起始指针 //---------------------------------------------------------- extern unsigned char * Memory_Malloc( unsigned char mSize );
//---------------------------------------------------------- //用指定数据清除内存 //---------------------------------------------------------- extern void Memory_Memset( unsigned char idata *pRam, unsigned char mChar, unsigned char mLen );
#endif 这是在主函数的调用
Memory_Init((unsigned char idata *)0xff );//内部RAM的最后端 注意绿色部分!头文件和C函数以及调用是不一样的!不知道是为什么?有什么问题? |