This is an automated email from the ASF dual-hosted git repository. yamamoto pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit fcafacb9a3a872957a0dd9044e943a6370b42782 Author: Abdelatif Guettouche <abdelatif.guettou...@espressif.com> AuthorDate: Thu Mar 11 15:19:02 2021 +0100 esp32_allocateheap.c: Adjust the region of the heap coming from the external memory when a BSS section is allowed to reside there. Signed-off-by: Abdelatif Guettouche <abdelatif.guettou...@espressif.com> --- arch/xtensa/src/common/xtensa_attr.h | 4 +++- arch/xtensa/src/esp32/esp32_allocateheap.c | 13 +++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/arch/xtensa/src/common/xtensa_attr.h b/arch/xtensa/src/common/xtensa_attr.h index fa67cbb..9b9e82d 100644 --- a/arch/xtensa/src/common/xtensa_attr.h +++ b/arch/xtensa/src/common/xtensa_attr.h @@ -69,10 +69,12 @@ #define RTC_RODATA_ATTR __attribute__((section(".rtc.rodata"))) -/* Forces bss variable into external memory. */ +/* Allow bss variables into external memory. */ #ifdef CONFIG_XTENSA_EXTMEM_BSS # define EXT_RAM_ATTR __attribute__((section(".extmem.bss"))) +#else +# define EXT_RAM_ATTR #endif #endif /* __ARCH_XTENSA_SRC_COMMON_XTENSA_ATTR_H */ diff --git a/arch/xtensa/src/esp32/esp32_allocateheap.c b/arch/xtensa/src/esp32/esp32_allocateheap.c index d040771..12502b9 100644 --- a/arch/xtensa/src/esp32/esp32_allocateheap.c +++ b/arch/xtensa/src/esp32/esp32_allocateheap.c @@ -148,11 +148,16 @@ void xtensa_add_region(void) umm_addregion(start, size); #endif -#if defined(CONFIG_ESP32_SPIRAM) - /* Check for any additional memory regions */ - +#ifdef CONFIG_ESP32_SPIRAM # if defined(CONFIG_HEAP2_BASE) && defined(CONFIG_HEAP2_SIZE) - umm_addregion((FAR void *)CONFIG_HEAP2_BASE, CONFIG_HEAP2_SIZE); +# ifdef CONFIG_XTENSA_EXTMEM_BSS + start = (FAR void *)(&_ebss_extmem); + size = CONFIG_HEAP2_SIZE - (size_t)(&_ebss_extmem - &_sbss_extmem); +# else + start = (FAR void *)CONFIG_HEAP2_BASE; + size = CONFIG_HEAP2_SIZE; +# endif + umm_addregion(start, size); # endif #endif }