文件名称:内存管理 内存管理的 源码
文件大小: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