初级会员
- 积分
- 162
- 金钱
- 162
- 注册时间
- 2015-11-16
- 在线时间
- 31 小时
|
楼主 |
发表于 2016-8-1 08:08:17
|
显示全部楼层
已经加了保护:
//释放内存(外部调用)
//memx:所属内存块
//ptr:内存首地址
void myfree(u8 memx,void *ptr)
{
// u32 offset;
// if(ptr==NULL)return;//地址为0.
// offset=(u32)ptr-(u32)mallco_dev.membase[memx];
// mymem_free(memx,offset);//释放内存
OS_CPU_SR cpu_sr=0;
u32 offset;
if(ptr==NULL)return; //地址为0.
OS_ENTER_CRITICAL(); //添加保护
offset=(u32)ptr-(u32)mallco_dev.membase[memx];
mymem_free(memx,offset);//释放内存
OS_EXIT_CRITICAL();
}
//分配内存(外部调用)
//memx:所属内存块
//size:内存大小(字节)
//返回值:分配到的内存首地址.
void *mymalloc(u8 memx,u32 size)
{
// u32 offset;
// offset=mymem_malloc(memx,size);
// if(offset==0XFFFFFFFF)return NULL;
// else return (void*)((u32)mallco_dev.membase[memx]+offset);
OS_CPU_SR cpu_sr=0;
u32 offset;
OS_ENTER_CRITICAL(); //添加保护
offset=mymem_malloc(memx,size);
OS_EXIT_CRITICAL();
if(offset==0XFFFFFFFF)return NULL;
else return (void*)((u32)mallco_dev.membase[memx]+offset);
} |
|