Merge branch 'fix/reduce_rtc_text_size_v5.3' into 'release/v5.3'

fix(system): linker script: free unused .rtc.text memory for esp32c3, esp32s2 (v5.3)

See merge request espressif/esp-idf!35367
This commit is contained in:
Jiang Jiang Jian 2025-02-28 14:17:45 +08:00
commit 7b0c6f45aa
3 changed files with 20 additions and 9 deletions

View File

@ -19,14 +19,18 @@ SECTIONS
{ {
ALIGNED_SYMBOL(4, _rtc_fast_start) ALIGNED_SYMBOL(4, _rtc_fast_start)
HIDDEN(_rtc_code_start = .);
mapping[rtc_text] mapping[rtc_text]
*rtc_wake_stub*.*(.text .text.*) *rtc_wake_stub*.*(.text .text.*)
*(.rtc_text_end_test) *(.rtc_text_end_test)
/* Padding for possible CPU prefetch + alignment for PMS split lines */ HIDDEN(_rtc_code_end = .);
. += _esp_memprot_prefetch_pad_size;
. = ALIGN(_esp_memprot_align_size); /* Padding for possible CPU prefetch + 4B alignment for PMS split lines. */
. = ((_rtc_code_end - _rtc_code_start) == 0) ?
ALIGN(0) : _esp_memprot_prefetch_pad_size + ALIGN(4);
_rtc_text_end = ABSOLUTE(.); _rtc_text_end = ABSOLUTE(.);
} > rtc_iram_seg } > rtc_iram_seg

View File

@ -26,13 +26,16 @@ SECTIONS
{ {
ALIGNED_SYMBOL(4, _rtc_text_start) ALIGNED_SYMBOL(4, _rtc_text_start)
HIDDEN(_rtc_code_start = .);
mapping[rtc_text] mapping[rtc_text]
*rtc_wake_stub*.*(.literal .text .literal.* .text.*) *rtc_wake_stub*.*(.literal .text .literal.* .text.*)
/* Padding for possible CPU prefetch + alignment for PMS split lines */ HIDDEN(_rtc_code_end = .);
. += _esp_memprot_prefetch_pad_size;
. = ALIGN(_esp_memprot_align_size); /* Possibly align + 16B for CPU dummy speculative instruction fetch. */
. = ((_rtc_code_end - _rtc_code_start) == 0) ? ALIGN(0) : ALIGN(4) + 16;
_rtc_text_end = ABSOLUTE(.); _rtc_text_end = ABSOLUTE(.);
} > rtc_iram_seg } > rtc_iram_seg

View File

@ -20,6 +20,8 @@ SECTIONS
ALIGNED_SYMBOL(4, _rtc_fast_start) ALIGNED_SYMBOL(4, _rtc_fast_start)
ALIGNED_SYMBOL(4, _rtc_text_start) ALIGNED_SYMBOL(4, _rtc_text_start)
HIDDEN(_rtc_code_start = .);
*(.rtc.entry.literal .rtc.entry.text) *(.rtc.entry.literal .rtc.entry.text)
mapping[rtc_text] mapping[rtc_text]
@ -27,9 +29,11 @@ SECTIONS
*rtc_wake_stub*.*(.literal .text .literal.* .text.*) *rtc_wake_stub*.*(.literal .text .literal.* .text.*)
*(.rtc_text_end_test) *(.rtc_text_end_test)
/* Padding for possible CPU prefetch + alignment for PMS split lines */ HIDDEN(_rtc_code_end = .);
. += _esp_memprot_prefetch_pad_size;
. = ALIGN(_esp_memprot_align_size); /* Padding for possible CPU prefetch + 4B alignment for PMS split lines. */
. = ((_rtc_code_end - _rtc_code_start) == 0) ?
ALIGN(0) : _esp_memprot_prefetch_pad_size + ALIGN(4);
_rtc_text_end = ABSOLUTE(.); _rtc_text_end = ABSOLUTE(.);
} > rtc_iram_seg } > rtc_iram_seg