mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-04 05:04:33 +02:00
fix(esp_system): avoid placing sections between ASSERT_SECTIONS_GAP checks
This commit is contained in:
@@ -382,45 +382,6 @@ SECTIONS
|
|||||||
} > default_rodata_seg
|
} > default_rodata_seg
|
||||||
ASSERT_SECTIONS_GAP(.flash.rodata, SECTION_AFTER_FLASH_RODATA)
|
ASSERT_SECTIONS_GAP(.flash.rodata, SECTION_AFTER_FLASH_RODATA)
|
||||||
|
|
||||||
/* External RAM */
|
|
||||||
/**
|
|
||||||
* This section is required to skip flash sections, because `extern_ram_seg`
|
|
||||||
* and `drom_seg` / `irom_seg` are on the same bus when app build use flash sections
|
|
||||||
*/
|
|
||||||
.ext_ram.dummy (NOLOAD):
|
|
||||||
{
|
|
||||||
. = ORIGIN(extern_ram_seg);
|
|
||||||
. = . + (_rodata_reserved_end - _flash_rodata_dummy_start);
|
|
||||||
. = ALIGN (_esp_mmu_page_size);
|
|
||||||
} > extern_ram_seg
|
|
||||||
|
|
||||||
#if CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
|
|
||||||
/* This section holds .ext_ram.bss data, and will be put in PSRAM */
|
|
||||||
.ext_ram.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
_ext_ram_bss_start = ABSOLUTE(.);
|
|
||||||
|
|
||||||
mapping[extern_ram]
|
|
||||||
|
|
||||||
ALIGNED_SYMBOL(4, _ext_ram_bss_end)
|
|
||||||
} > extern_ram_seg
|
|
||||||
#endif //CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
|
|
||||||
|
|
||||||
#if CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY
|
|
||||||
/**
|
|
||||||
* This section holds data that won't be initialised when startup.
|
|
||||||
* This section locates in External RAM region.
|
|
||||||
*/
|
|
||||||
.ext_ram_noinit (NOLOAD) :
|
|
||||||
{
|
|
||||||
_ext_ram_noinit_start = ABSOLUTE(.);
|
|
||||||
|
|
||||||
*(.ext_ram_noinit*)
|
|
||||||
|
|
||||||
ALIGNED_SYMBOL(4, _ext_ram_noinit_end)
|
|
||||||
} > extern_ram_seg
|
|
||||||
#endif //CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY
|
|
||||||
|
|
||||||
#if EH_FRAME_LINKING_ENABLED
|
#if EH_FRAME_LINKING_ENABLED
|
||||||
.eh_frame_hdr :
|
.eh_frame_hdr :
|
||||||
{
|
{
|
||||||
@@ -495,6 +456,45 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(16, _heap_start)
|
ALIGNED_SYMBOL(16, _heap_start)
|
||||||
} > sram_seg
|
} > sram_seg
|
||||||
|
|
||||||
|
/* External RAM */
|
||||||
|
/**
|
||||||
|
* This section is required to skip flash sections, because `extern_ram_seg`
|
||||||
|
* and `drom_seg` / `irom_seg` are on the same bus when app build use flash sections
|
||||||
|
*/
|
||||||
|
.ext_ram.dummy (NOLOAD):
|
||||||
|
{
|
||||||
|
. = ORIGIN(extern_ram_seg);
|
||||||
|
. = . + (_rodata_reserved_end - _flash_rodata_dummy_start);
|
||||||
|
. = ALIGN (_esp_mmu_page_size);
|
||||||
|
} > extern_ram_seg
|
||||||
|
|
||||||
|
#if CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
|
||||||
|
/* This section holds .ext_ram.bss data, and will be put in PSRAM */
|
||||||
|
.ext_ram.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
_ext_ram_bss_start = ABSOLUTE(.);
|
||||||
|
|
||||||
|
mapping[extern_ram]
|
||||||
|
|
||||||
|
ALIGNED_SYMBOL(4, _ext_ram_bss_end)
|
||||||
|
} > extern_ram_seg
|
||||||
|
#endif //CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
|
||||||
|
|
||||||
|
#if CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY
|
||||||
|
/**
|
||||||
|
* This section holds data that won't be initialised when startup.
|
||||||
|
* This section locates in External RAM region.
|
||||||
|
*/
|
||||||
|
.ext_ram_noinit (NOLOAD) :
|
||||||
|
{
|
||||||
|
_ext_ram_noinit_start = ABSOLUTE(.);
|
||||||
|
|
||||||
|
*(.ext_ram_noinit*)
|
||||||
|
|
||||||
|
ALIGNED_SYMBOL(4, _ext_ram_noinit_end)
|
||||||
|
} > extern_ram_seg
|
||||||
|
#endif //CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY
|
||||||
|
|
||||||
#include "elf_misc.ld.in"
|
#include "elf_misc.ld.in"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -240,45 +240,6 @@ SECTIONS
|
|||||||
} > default_rodata_seg
|
} > default_rodata_seg
|
||||||
ASSERT_SECTIONS_GAP(.flash.rodata, SECTION_AFTER_FLASH_RODATA)
|
ASSERT_SECTIONS_GAP(.flash.rodata, SECTION_AFTER_FLASH_RODATA)
|
||||||
|
|
||||||
/* External RAM */
|
|
||||||
/**
|
|
||||||
* This section is required to skip flash sections, because `extern_ram_seg`
|
|
||||||
* and `drom_seg` / `irom_seg` are on the same bus when app build use flash sections
|
|
||||||
*/
|
|
||||||
.ext_ram.dummy (NOLOAD):
|
|
||||||
{
|
|
||||||
. = ORIGIN(extern_ram_seg);
|
|
||||||
. = . + (_rodata_reserved_end - _flash_rodata_dummy_start);
|
|
||||||
. = ALIGN (_esp_mmu_page_size);
|
|
||||||
} > extern_ram_seg
|
|
||||||
|
|
||||||
#if CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
|
|
||||||
/* This section holds .ext_ram.bss data, and will be put in PSRAM */
|
|
||||||
.ext_ram.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
_ext_ram_bss_start = ABSOLUTE(.);
|
|
||||||
|
|
||||||
mapping[extern_ram]
|
|
||||||
|
|
||||||
ALIGNED_SYMBOL(4, _ext_ram_bss_end)
|
|
||||||
} > extern_ram_seg
|
|
||||||
#endif //CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
|
|
||||||
|
|
||||||
#if CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY
|
|
||||||
/**
|
|
||||||
* This section holds data that won't be initialized when startup.
|
|
||||||
* This section locates in External RAM region.
|
|
||||||
*/
|
|
||||||
.ext_ram_noinit (NOLOAD) :
|
|
||||||
{
|
|
||||||
_ext_ram_noinit_start = ABSOLUTE(.);
|
|
||||||
|
|
||||||
*(.ext_ram_noinit*)
|
|
||||||
|
|
||||||
ALIGNED_SYMBOL(4, _ext_ram_noinit_end)
|
|
||||||
} > extern_ram_seg
|
|
||||||
#endif //CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY
|
|
||||||
|
|
||||||
#if EH_FRAME_LINKING_ENABLED
|
#if EH_FRAME_LINKING_ENABLED
|
||||||
.eh_frame_hdr :
|
.eh_frame_hdr :
|
||||||
{
|
{
|
||||||
@@ -353,6 +314,45 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(16, _heap_start)
|
ALIGNED_SYMBOL(16, _heap_start)
|
||||||
} > sram_seg
|
} > sram_seg
|
||||||
|
|
||||||
|
/* External RAM */
|
||||||
|
/**
|
||||||
|
* This section is required to skip flash sections, because `extern_ram_seg`
|
||||||
|
* and `drom_seg` / `irom_seg` are on the same bus when app build use flash sections
|
||||||
|
*/
|
||||||
|
.ext_ram.dummy (NOLOAD):
|
||||||
|
{
|
||||||
|
. = ORIGIN(extern_ram_seg);
|
||||||
|
. = . + (_rodata_reserved_end - _flash_rodata_dummy_start);
|
||||||
|
. = ALIGN (_esp_mmu_page_size);
|
||||||
|
} > extern_ram_seg
|
||||||
|
|
||||||
|
#if CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
|
||||||
|
/* This section holds .ext_ram.bss data, and will be put in PSRAM */
|
||||||
|
.ext_ram.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
_ext_ram_bss_start = ABSOLUTE(.);
|
||||||
|
|
||||||
|
mapping[extern_ram]
|
||||||
|
|
||||||
|
ALIGNED_SYMBOL(4, _ext_ram_bss_end)
|
||||||
|
} > extern_ram_seg
|
||||||
|
#endif //CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
|
||||||
|
|
||||||
|
#if CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY
|
||||||
|
/**
|
||||||
|
* This section holds data that won't be initialized when startup.
|
||||||
|
* This section locates in External RAM region.
|
||||||
|
*/
|
||||||
|
.ext_ram_noinit (NOLOAD) :
|
||||||
|
{
|
||||||
|
_ext_ram_noinit_start = ABSOLUTE(.);
|
||||||
|
|
||||||
|
*(.ext_ram_noinit*)
|
||||||
|
|
||||||
|
ALIGNED_SYMBOL(4, _ext_ram_noinit_end)
|
||||||
|
} > extern_ram_seg
|
||||||
|
#endif //CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY
|
||||||
|
|
||||||
#include "elf_misc.ld.in"
|
#include "elf_misc.ld.in"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user