diff --git a/components/esp32/ld/esp32.project.ld.in b/components/esp32/ld/esp32.project.ld.in index 84ff5fc672..2051976b34 100644 --- a/components/esp32/ld/esp32.project.ld.in +++ b/components/esp32/ld/esp32.project.ld.in @@ -37,9 +37,7 @@ SECTIONS . = ALIGN(4); _rtc_force_fast_start = ABSOLUTE(.); - _coredump_rtc_fast_start = ABSOLUTE(.); - mapping[rtc_fast_coredump] - _coredump_rtc_fast_end = ABSOLUTE(.); + mapping[rtc_force_fast] *(.rtc.force_fast .rtc.force_fast.*) . = ALIGN(4) ; @@ -58,12 +56,6 @@ SECTIONS { _rtc_data_start = ABSOLUTE(.); - /* coredump mapping */ - _coredump_rtc_start = ABSOLUTE(.); - mapping[rtc_coredump] - _coredump_rtc_end = ABSOLUTE(.); - - /* should be placed after coredump mapping */ mapping[rtc_data] *rtc_wake_stub*.*(.data .rodata .data.* .rodata.* .bss .bss.*) @@ -202,12 +194,6 @@ SECTIONS *(.gnu.linkonce.s2.*) *(.jcr) - /* coredump mapping */ - _coredump_dram_start = ABSOLUTE(.); - mapping[dram_coredump] - _coredump_dram_end = ABSOLUTE(.); - - /* should be placed after coredump mapping */ _esp_system_init_fn_array_start = ABSOLUTE(.); KEEP (*(SORT(.esp_system_init_fn) SORT(.esp_system_init_fn.*))) _esp_system_init_fn_array_end = ABSOLUTE(.); @@ -369,12 +355,6 @@ SECTIONS . = ALIGN(4); _iram_data_start = ABSOLUTE(.); - /* coredump mapping */ - _coredump_iram_start = ABSOLUTE(.); - mapping[iram_coredump] - _coredump_iram_end = ABSOLUTE(.); - - /* should be placed after coredump mapping */ mapping[iram0_data] _iram_data_end = ABSOLUTE(.); diff --git a/components/esp32c3/ld/esp32c3.project.ld.in b/components/esp32c3/ld/esp32c3.project.ld.in index fdf6be2881..012deb1a68 100644 --- a/components/esp32c3/ld/esp32c3.project.ld.in +++ b/components/esp32c3/ld/esp32c3.project.ld.in @@ -39,9 +39,7 @@ SECTIONS . = ALIGN(4); _rtc_force_fast_start = ABSOLUTE(.); - _coredump_rtc_fast_start = ABSOLUTE(.); - mapping[rtc_fast_coredump] - _coredump_rtc_fast_end = ABSOLUTE(.); + mapping[rtc_force_fast] *(.rtc.force_fast .rtc.force_fast.*) . = ALIGN(4) ; @@ -60,12 +58,6 @@ SECTIONS { _rtc_data_start = ABSOLUTE(.); - /* coredump mapping */ - _coredump_rtc_start = ABSOLUTE(.); - mapping[rtc_coredump] - _coredump_rtc_end = ABSOLUTE(.); - - /* should be placed after coredump mapping */ mapping[rtc_data] *rtc_wake_stub*.*(.data .rodata .data.* .rodata.* .bss .bss.*) @@ -181,12 +173,6 @@ SECTIONS *(.gnu.linkonce.s2.*) *(.jcr) - /* coredump mapping */ - _coredump_dram_start = ABSOLUTE(.); - mapping[dram_coredump] - _coredump_dram_end = ABSOLUTE(.); - - /* should be placed after coredump mapping */ _esp_system_init_fn_array_start = ABSOLUTE(.); KEEP (*(SORT(.esp_system_init_fn) SORT(.esp_system_init_fn.*))) _esp_system_init_fn_array_end = ABSOLUTE(.); @@ -369,12 +355,6 @@ SECTIONS . = ALIGN(16); _iram_data_start = ABSOLUTE(.); - /* coredump mapping */ - _coredump_iram_start = ABSOLUTE(.); - mapping[iram_coredump] - _coredump_iram_end = ABSOLUTE(.); - - /* should be placed after coredump mapping */ mapping[iram0_data] _iram_data_end = ABSOLUTE(.); diff --git a/components/esp32s2/ld/esp32s2.project.ld.in b/components/esp32s2/ld/esp32s2.project.ld.in index c60d29b665..307de69c58 100644 --- a/components/esp32s2/ld/esp32s2.project.ld.in +++ b/components/esp32s2/ld/esp32s2.project.ld.in @@ -45,9 +45,7 @@ SECTIONS . = ALIGN(4); _rtc_force_fast_start = ABSOLUTE(.); - _coredump_rtc_fast_start = ABSOLUTE(.); - mapping[rtc_fast_coredump] - _coredump_rtc_fast_end = ABSOLUTE(.); + mapping[rtc_force_fast] *(.rtc.force_fast .rtc.force_fast.*) . = ALIGN(4) ; @@ -65,12 +63,6 @@ SECTIONS { _rtc_data_start = ABSOLUTE(.); - /* coredump mapping */ - _coredump_rtc_start = ABSOLUTE(.); - mapping[rtc_coredump] - _coredump_rtc_end = ABSOLUTE(.); - - /* should be placed after coredump mapping */ mapping[rtc_data] *rtc_wake_stub*.*(.data .rodata .data.* .rodata.* .bss .bss.*) @@ -208,12 +200,6 @@ SECTIONS *(.gnu.linkonce.s2.*) *(.jcr) - /* coredump mapping */ - _coredump_dram_start = ABSOLUTE(.); - mapping[dram_coredump] - _coredump_dram_end = ABSOLUTE(.); - - /* should be placed after coredump mapping */ _esp_system_init_fn_array_start = ABSOLUTE(.); KEEP (*(SORT(.esp_system_init_fn) SORT(.esp_system_init_fn.*))) _esp_system_init_fn_array_end = ABSOLUTE(.); diff --git a/components/esp32s3/ld/esp32s3.project.ld.in b/components/esp32s3/ld/esp32s3.project.ld.in index b1d19cae40..a1729c9eb8 100644 --- a/components/esp32s3/ld/esp32s3.project.ld.in +++ b/components/esp32s3/ld/esp32s3.project.ld.in @@ -39,9 +39,7 @@ SECTIONS . = ALIGN(4); _rtc_force_fast_start = ABSOLUTE(.); - _coredump_rtc_fast_start = ABSOLUTE(.); - mapping[rtc_fast_coredump] - _coredump_rtc_fast_end = ABSOLUTE(.); + mapping[rtc_force_fast] *(.rtc.force_fast .rtc.force_fast.*) . = ALIGN(4) ; @@ -60,12 +58,6 @@ SECTIONS { _rtc_data_start = ABSOLUTE(.); - /* coredump mapping */ - _coredump_rtc_start = ABSOLUTE(.); - mapping[rtc_coredump] - _coredump_rtc_end = ABSOLUTE(.); - - /* should be placed after coredump mapping */ mapping[rtc_data] *rtc_wake_stub*.*(.data .rodata .data.* .rodata.* .bss .bss.*) @@ -211,12 +203,6 @@ SECTIONS *(.gnu.linkonce.s2.*) *(.jcr) - /* coredump mapping */ - _coredump_dram_start = ABSOLUTE(.); - mapping[dram_coredump] - _coredump_dram_end = ABSOLUTE(.); - - /* should be placed after coredump mapping */ _esp_system_init_fn_array_start = ABSOLUTE(.); KEEP (*(SORT(.esp_system_init_fn) SORT(.esp_system_init_fn.*))) _esp_system_init_fn_array_end = ABSOLUTE(.); @@ -386,12 +372,6 @@ SECTIONS . = ALIGN(4); _iram_data_start = ABSOLUTE(.); - /* coredump mapping */ - _coredump_iram_start = ABSOLUTE(.); - mapping[iram_coredump] - _coredump_iram_end = ABSOLUTE(.); - - /* should be placed after coredump mapping */ mapping[iram0_data] _iram_data_end = ABSOLUTE(.); diff --git a/components/espcoredump/linker.lf b/components/espcoredump/linker.lf index 89b9dbcd50..8222781ff2 100644 --- a/components/espcoredump/linker.lf +++ b/components/espcoredump/linker.lf @@ -17,16 +17,22 @@ if IDF_TARGET_ESP32S2 = n: [scheme:coredump_default] entries: - dram_coredump -> dram_coredump - rtc_coredump -> rtc_coredump - rtc_fast_coredump -> rtc_fast_coredump + dram_coredump -> dram0_data + rtc_coredump -> rtc_data + rtc_fast_coredump -> rtc_force_fast if IDF_TARGET_ESP32S2 = n: - iram_coredump -> iram_coredump + iram_coredump -> iram0_data [mapping:coredump_default] archive: * entries: - * (coredump_default) + * (coredump_default); + rtc_fast_coredump -> rtc_force_fast emit(coredump_rtc_fast), + rtc_coredump -> rtc_data emit(coredump_rtc), + dram_coredump -> dram0_data emit(coredump_dram) + if IDF_TARGET_ESP32S2 = n: + * (coredump_default); + iram_coredump -> iram0_data emit(coredump_iram) [mapping:espcoredump] archive: libespcoredump.a