fix(system): linker script: free unused .rtc.text memory for esp32c3/esp32s2/esp32s3

This commit is contained in:
Alexey Lapshin
2024-10-04 19:24:16 +07:00
committed by BOT
parent 796ca12684
commit c06fb3b759
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