diff --git a/soc/espressif/esp32c6/default.ld b/soc/espressif/esp32c6/default.ld index 52fcf69732f..45c762e8e73 100644 --- a/soc/espressif/esp32c6/default.ld +++ b/soc/espressif/esp32c6/default.ld @@ -93,6 +93,8 @@ REGION_ALIAS("rtc_reserved_seg", lp_reserved_seg ); /* Default entry point: */ ENTRY(CONFIG_KERNEL_ENTRY) +_heap_sentry = DRAM_RESERVED_START; + SECTIONS { #ifdef CONFIG_BOOTLOADER_MCUBOOT @@ -651,7 +653,7 @@ SECTIONS _image_ram_start = _iram_start; #include - ASSERT(((__bss_end - ORIGIN(sram0_0_seg)) <= LENGTH(sram0_0_seg)), "DRAM segment data does not fit.") + ASSERT(((_end - ORIGIN(sram0_0_seg)) <= LENGTH(sram0_0_seg)), "SRAM code/data does not fit.") /* --- END OF DRAM --- */ diff --git a/soc/espressif/esp32c6/memory.h b/soc/espressif/esp32c6/memory.h index 500325545f0..496ea78b73e 100644 --- a/soc/espressif/esp32c6/memory.h +++ b/soc/espressif/esp32c6/memory.h @@ -28,9 +28,13 @@ */ #define DRAM_BUFFERS_START 0x4086ad08 -#define DRAM_STACK_START 0x4087c610 +#define DRAM_BUFFERS_END 0x4087c610 +#define DRAM_STACK_START DRAM_BUFFERS_END #define DRAM_ROM_BSS_DATA_START 0x4087e610 +/* Set the limit for the application runtime dynamic allocations */ +#define DRAM_RESERVED_START DRAM_BUFFERS_END + /* For safety margin between bootloader data section and startup stacks */ #define BOOTLOADER_STACK_OVERHEAD 0x0 /* These lengths can be adjusted, if necessary: FIXME: optimize ram usage */ @@ -44,8 +48,7 @@ #define BOOTLOADER_USER_SRAM_END (DRAM_BUFFERS_START - BOOTLOADER_STACK_OVERHEAD) /* Start of the lower region is determined by region size and the end of the higher region */ -#define BOOTLOADER_IRAM_LOADER_SEG_START \ - (BOOTLOADER_USER_SRAM_END - BOOTLOADER_IRAM_LOADER_SEG_LEN) +#define BOOTLOADER_IRAM_LOADER_SEG_START (BOOTLOADER_USER_SRAM_END - BOOTLOADER_IRAM_LOADER_SEG_LEN) #define BOOTLOADER_IRAM_SEG_START (BOOTLOADER_IRAM_LOADER_SEG_START - BOOTLOADER_IRAM_SEG_LEN) #define BOOTLOADER_DRAM_SEG_START (BOOTLOADER_IRAM_SEG_START - BOOTLOADER_DRAM_SEG_LEN)