浏览代码

[kernel] update memheap auto binding policy.

aozima 3 年之前
父节点
当前提交
2e5b4736fe
共有 2 个文件被更改,包括 13 次插入4 次删除
  1. 11 4
      src/Kconfig
  2. 2 0
      src/memheap.c

+ 11 - 4
src/Kconfig

@@ -268,11 +268,18 @@ menu "Memory Management"
         help
             Using static memory fixed partition
 
-    config RT_USING_MEMHEAP
+    menuconfig RT_USING_MEMHEAP
         bool "Using memory heap object"
         default n
-        help
-            Using memory heap object to manage dynamic memory heap.
+
+        if RT_USING_MEMHEAP
+
+            if RT_USING_MEMHEAP_AS_HEAP
+            config RT_USING_MEMHEAP_AUTO_BINDING
+                bool "Use all of memheap objects as heap"
+                default y
+            endif
+        endif
 
     choice
         prompt "Dynamic Memory Management"
@@ -289,7 +296,7 @@ menu "Memory Management"
 
         if RT_USING_MEMHEAP
         config RT_USING_MEMHEAP_AS_HEAP
-            bool "Use all of memheap objects as heap"
+            bool "Use memheap objects as heap"
         endif
 
         config RT_USING_USERHEAP

+ 2 - 0
src/memheap.c

@@ -852,6 +852,7 @@ void *rt_malloc(rt_size_t size)
 
     /* try to allocate in system heap */
     ptr = rt_memheap_alloc(&_heap, size);
+#ifdef RT_USING_MEMHEAP_AUTO_BINDING
     if (ptr == RT_NULL)
     {
         struct rt_object *object;
@@ -881,6 +882,7 @@ void *rt_malloc(rt_size_t size)
                 break;
         }
     }
+#endif /* RT_USING_MEMHEAP_AUTO_BINDING */
 
 #ifdef RT_USING_MEMTRACE
     if (ptr == RT_NULL)