RT_USING_SMALL_MEM_AS_HEAP RT_USING_MEMHEAP_AS_HEAP RT_USING_SLAB_AS_HEAP 应该是宏最终这样被...
} 查看kservice.c文件,实际可以通过rtconfig.h中的宏定义来控制内存分配的实现方式,这里指定RT_USING_SMALL_MEM_AS_HEAP作为内存分配方式,将这个宏添加到rtconfig.h中宏定义。 /* Memory Management */#defineRT_USING_MEMPOOL#defineRT_USING_SMALL_MEM#defineRT_USING_HEAP#defineRT_USING_SMALL_MEM_AS_HEAP/...
* Please modify RT_HEAP_SIZE if you enable RT_USING_HEAP * the RT_HEAP_SIZE max value = (sram size - ZI size), 1024 means 1024 bytes */ #define RT_HEAP_SIZE (15*1024) static rt_uint8_t rt_heap[RT_HEAP_SIZE]; RT_WEAK void *rt_heap_begin_get(void) { return rt_heap; } ...
for (ptr = (rt_uint8_t *)small_mem->lfree - small_mem->heap_ptr; ptr <= small_mem->mem_size_aligned - size; ptr = ((struct rt_small_mem_item *)&small_mem->heap_ptr[ptr])->next) { mem = (struct rt_small_mem_item)&small_mem->heap_ptr[ptr]; if ((!MEM_ISUSED(mem)...
#define RT_USING_HEAP /* Using Small MM--是否使用小存储容量的片子的功能,用效率来换空间的意思*...
#define RT_USING_MEMPOOL #define RT_USING_SMALL_MEM #define RT_USING_MEMHEAP #define RT_MEMHEAP_FAST_MODE #define RT_USING_SMALL_MEM_AS_HEAP #define RT_USING_MEMTRACE #define RT_USING_HEAP /* Kernel Device Object */ #define RT_USING_DEVICE ...
mem2->prev = ptr;#ifdefRT_USING_MEMTRACErt_smem_setname(mem2," ");#endif/* RT_USING_MEMTRACE *///设置当前信息块的下一个为pt2/* and insert it between mem and mem->next */mem->next = ptr2;//如果不是初始时候的第一块那需要把end of heap的pre指向ptr2if(mem2->next != small_...
#define RT_USING_EVENT #define RT_USING_MAILBOX #define RT_USING_MESSAGEQUEUE /* Memory Management */ #define RT_PAGE_MAX_ORDER 11 #define RT_USING_MEMPOOL #define RT_USING_SMALL_MEM #define RT_USING_MEMHEAP #define RT_MEMHEAP_FAST_MODE #define RT_USING_MEMHEAP_AS_HEAP #define RT_USING...
# CONFIG_RT_USING_SIGNALS is not set # # Memory Management # CONFIG_RT_USING_MEMPOOL=y CONFIG_RT_USING_SMALL_MEM=y # CONFIG_RT_USING_SLAB is not set # CONFIG_RT_USING_MEMHEAP is not set CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y # CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set # CONFIG...
注:在开启 memheap 之后原来的 heap 功能将被关闭,两者只可以通过打开或关闭 RT_USING_MEMHEAP_AS_HEAP 来选择其一 memheap 工作机制如下图所示,首先将多块内存加入 memheap_item 链表进行粘合。当分配内存块时,会先从默认内存堆去分配内存,当分配不到时会查找 memheap_item 链表,尝试从其他的内存堆上分配...