【文件属性】:
文件名称:内存管理 内存管理的 源码
文件大小:2KB
文件格式:RAR
更新时间:2012-11-03 07:42:57
这是我自己写的内存管理的 源码,希望对大家有用
这是一段内存管理的代码
OS_U8* MicrOS_MemMalloc(OS_U32 size)
{
OS_U8 *addr;
#if (MICROS_TASKHEAP==1)
addr = MicrOS_MemMallocFromPool(&(MicrOS_CurrentTask->OSTCBTaskHeapFreelist), size);
#else
addr = MicrOS_MemMallocFromPool(&MicrOS_Freelist, size);
#endif
return addr;
}
OS_RET MicrOS_MemFree(OS_U8 *ptr)
{
OS_U8 ret;
#if (MICROS_TASKHEAP==1)
ret = MicrOS_MemFreeToPool(&(MicrOS_CurrentTask->OSTCBTaskHeapFreelist), ptr);
#else
ret = MicrOS_MemFreeToPool(&MicrOS_Freelist, ptr);
#endif
return ret;
}
OS_U8* MicrOS_MemOSMallocHeap(OS_U32 size)
{
OS_U8 *addr;
addr = MicrOS_MemMallocFromPool(&MicrOS_Freelist, size);
return addr;
}
OS_U8* MicrOS_MemOSMallocStack(OS_U32 size)
{
OS_U8 *addr;
addr = MicrOS_MemMallocFromPool(&(MicrOS_TaskStack.OStackFreeList), size);
#if (MICROS_STACK_GROWTH==STACK_GROWTH_DOWN)
addr += size;
#endif
return addr;
}
OS_RET MicrOS_MemOSFreeHeap(OS_U8 *ptr)
{
OS_U8 ret;
ret = MicrOS_MemFreeToPool(&MicrOS_Freelist, ptr);
return ret;
}
OS_RET MicrOS_MemOSFreeStack(OS_U8 *ptr)
{
OS_U8 ret;
ret = MicrOS_MemFreeToPool(&(MicrOS_TaskStack.OStackFreeList), ptr);
return ret;
}
【文件预览】:
内存管理.c