动态内存管理
少于1分钟
说明
- XWOS不使用picolibc提供的动态内存管理的算法。使用的是内存池算法:
移植方法
- 源码路径:
xwmd/libc/picolibcac/mem.c
- 重写picolibc的函数:
void * malloc(size_t n);
void * realloc(void * p, size_t n);
void * calloc(size_t elem_nr, size_t elem_sz);
void * memalign(size_t alignment, size_t n);
void * valloc(size_t n);
void * pvalloc(size_t n);
void free(void * p);
int getpagesize(void);
- 无需重写的函数:
int posix_memalign(void ** memptr, size_t align, size_t size); // picolibc提供基于memalign实现
void * aligned_alloc(size_t alignment, size_t size); // picolibc提供基于memalign实现
- 还没实现的函数:
mallopt
malloc_usable_size
malloc_stats
mallinfo