我把内存管理实验例程下载到开发板,按键分配的第一次内存是0X20009AA0;
我在mallo.c文件开头定义了一些全局变量,结果按键分配的第一次内存是0X20009AC0;
u32 g,h,j,k,l,ll,lll,llll,a,b;
但是我再加变量,结果按键分配的第一次内存是0X20009AC0;
u32 g,h,j,k,l,ll,lll,llll,a,b;
u32 d;
我是这么想的,全局变量占用内存,那mallco_dev.membase[memx]在内存的地址会偏移,所以按键返回分配的地址
return (void*)((u32)mallco_dev.membase[memx]+offset);
会随着我加的全局变量数增多而增加,
void *mymalloc(u8 memx,u32 size)
{
u32 offset;
offset=my_mem_malloc(memx,size);
if(offset==0XFFFFFFFF)return NULL;
else return (void*)((u32)mallco_dev.membase[memx]+offset);
|