From 2e5b4736fe86e852c218d9ed0e492ba9ea6a3d56 Mon Sep 17 00:00:00 2001 From: aozima Date: Wed, 14 Jul 2021 22:08:30 +0800 Subject: [PATCH] [kernel] update memheap auto binding policy. --- src/Kconfig | 15 +++++++++++---- src/memheap.c | 2 ++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Kconfig b/src/Kconfig index 71abd9cf4f..fc7fcd54f4 100644 --- a/src/Kconfig +++ b/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 diff --git a/src/memheap.c b/src/memheap.c index 8422b1d802..d1c2822922 100644 --- a/src/memheap.c +++ b/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)