Introduce ARCH_HAVE_EXTRA_HEAPS, this config is going to be used for

chips that have multiple separate heaps.
For now it's used to enable APIs to initialize the different heaps
during the start sequence but can be extended for other purposes that
manage those heaps.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
This commit is contained in:
Abdelatif Guettouche 2021-06-25 15:07:23 +01:00 committed by Xiang Xiao
parent db18a12844
commit 0a4982a80e
3 changed files with 21 additions and 11 deletions

View file

@ -259,9 +259,17 @@ config ARCH_NEED_ADDRENV_MAPPING
bool
default n
config ARCH_HAVE_TEXT_HEAP
bool "Special memory region for dynamic code loading"
config ARCH_HAVE_EXTRA_HEAPS
bool
default n
---help---
Special memory regions used as separate heaps
config ARCH_HAVE_TEXT_HEAP
bool
default n
---help---
Special memory region for dynamic code loading
config ARCH_HAVE_MULTICPU
bool
@ -372,7 +380,7 @@ config ARCH_USE_MPU
selection will always be forced.
config ARCH_USE_TEXT_HEAP
bool "Enable separate text heap for dynamic code loading"
bool "Enable separate text allocation for dynamic code loading"
default n
depends on ARCH_HAVE_TEXT_HEAP
---help---

View file

@ -754,22 +754,22 @@ uintptr_t pgalloc(uintptr_t brkaddr, unsigned int npages);
#endif
/****************************************************************************
* Name: up_textheap_init
* Name: up_extraheaps_init
*
* Description:
* Initialize the text heap.
* Initialize any extra heap.
*
****************************************************************************/
#if defined(CONFIG_ARCH_USE_TEXT_HEAP)
void up_textheap_init(void);
#if defined(CONFIG_ARCH_HAVE_EXTRA_HEAPS)
void up_extraheaps_init(void);
#endif
/****************************************************************************
* Name: up_textheap_memalign
*
* Description:
* Allocate memory from the text heap with the specified alignment.
* Allocate memory for text sections with the specified alignment.
*
****************************************************************************/
@ -781,7 +781,7 @@ FAR void *up_textheap_memalign(size_t align, size_t size);
* Name: up_textheap_free
*
* Description:
* Free memory from the text heap.
* Free memory allocated for text sections.
*
****************************************************************************/

View file

@ -572,8 +572,10 @@ void nx_start(void)
}
#endif
#ifdef CONFIG_ARCH_USE_TEXT_HEAP
up_textheap_init();
#ifdef CONFIG_ARCH_HAVE_EXTRA_HEAPS
/* Initialize any extra heap. */
up_extraheaps_init();
#endif
#ifdef CONFIG_MM_IOB