From 29d038032e34d27cb69cd30665a1658621a5c8be Mon Sep 17 00:00:00 2001 From: seteiro <276597748+cms19859230182-lang@users.noreply.github.com> Date: Mon, 21 Sep 2026 18:49:12 +0800 Subject: [PATCH 1/2] [bsp][ESP32_C3] match Windows GNU ld object paths in IRAM globs Windows GNU ld reports object paths with backslashes, so slash-based input-section and EXCLUDE_FILE globs never matched. Replace those path separators with '?' so both Unix and Windows builds place IRAM code correctly. Comments and generated-from paths are unchanged. --- bsp/ESP/ESP32_C3/idf_port/ld/sections.ld | 241 ++++++++++++----------- 1 file changed, 121 insertions(+), 120 deletions(-) diff --git a/bsp/ESP/ESP32_C3/idf_port/ld/sections.ld b/bsp/ESP/ESP32_C3/idf_port/ld/sections.ld index ddb6f7d4e88..9264a3da2ce 100644 --- a/bsp/ESP/ESP32_C3/idf_port/ld/sections.ld +++ b/bsp/ESP/ESP32_C3/idf_port/ld/sections.ld @@ -143,79 +143,80 @@ SECTIONS _iram_text_start = ABSOLUTE(.); *(.iram1 .iram1.*) - *app_trace/app_trace.*(.literal .literal.* .text .text.*) - *app_trace/app_trace_util.*(.literal .literal.* .text .text.*) - *app_trace/port_uart.*(.literal .literal.* .text .text.*) - *esp_event/default_event_loop.*(.literal.esp_event_isr_post .text.esp_event_isr_post) - *esp_event/esp_event.*(.literal.esp_event_isr_post_to .text.esp_event_isr_post_to) - *esp_hw_support/cpu.*(.literal.esp_cpu_compare_and_set .text.esp_cpu_compare_and_set) - *esp_hw_support/cpu.*(.literal.esp_cpu_reset .text.esp_cpu_reset) - *esp_hw_support/cpu.*(.literal.esp_cpu_stall .text.esp_cpu_stall) - *esp_hw_support/cpu.*(.literal.esp_cpu_unstall .text.esp_cpu_unstall) - *esp_hw_support/cpu.*(.literal.esp_cpu_wait_for_intr .text.esp_cpu_wait_for_intr) - *esp_hw_support/esp_memory_utils.*(.literal .literal.* .text .text.*) - *esp_hw_support/rtc_clk.*(.literal .literal.* .text .text.*) - *esp_hw_support/rtc_init.*(.literal.rtc_vddsdio_set_config .text.rtc_vddsdio_set_config) - *esp_hw_support/rtc_pm.*(.literal .literal.* .text .text.*) - *esp_hw_support/rtc_sleep.*(.literal .literal.* .text .text.*) - *esp_hw_support/rtc_time.*(.literal .literal.* .text .text.*) - *esp_hw_support/systimer.*(.literal .literal.* .text .text.*) - *esp_ringbuf/(.literal .literal.* .text .text.*) - *esp_rom/esp_rom_regi2c.*(.literal .literal.* .text .text.*) - *esp_rom/esp_rom_spiflash.*(.literal .literal.* .text .text.*) - *esp_rom/esp_rom_systimer.*(.literal .literal.* .text .text.*) - *esp_system/esp_err.*(.literal .literal.* .text .text.*) - *esp_system/esp_system.*(.literal.esp_system_abort .text.esp_system_abort) - *esp_system/ubsan.*(.literal .literal.* .text .text.*) - *gcc/_divsf3.*(.literal .literal.* .text .text.*) - *gcc/lib2funcs.*(.literal .literal.* .text .text.*) - *gcc/save-restore.*(.literal .literal.* .text .text.*) - *gcov/(.literal .literal.* .text .text.*) - *hal/cache_hal.*(.literal .literal.* .text .text.*) - *hal/i2c_hal_iram.*(.literal .literal.* .text .text.*) - *hal/ledc_hal_iram.*(.literal .literal.* .text .text.*) - *hal/mmu_hal.*(.literal .literal.* .text .text.*) - *hal/spi_flash_encrypt_hal_iram.*(.literal .literal.* .text .text.*) - *hal/spi_flash_hal_gpspi.*(.literal .literal.* .text .text.*) - *hal/spi_flash_hal_iram.*(.literal .literal.* .text .text.*) - *hal/spi_hal_iram.*(.literal .literal.* .text .text.*) - *hal/spi_slave_hal_iram.*(.literal .literal.* .text .text.*) - *hal/systimer_hal.*(.literal .literal.* .text .text.*) - *hal/wdt_hal_iram.*(.literal .literal.* .text .text.*) - *heap/multi_heap.*(.literal .literal.* .text .text.*) - *heap/tlsf.*(.literal .literal.* .text .text.*) - *log/log.*(.literal.esp_log_write .text.esp_log_write) - *log/log_freertos.*(.literal.esp_log_early_timestamp .text.esp_log_early_timestamp) - *log/log_freertos.*(.literal.esp_log_impl_lock .text.esp_log_impl_lock) - *log/log_freertos.*(.literal.esp_log_impl_lock_timeout .text.esp_log_impl_lock_timeout) - *log/log_freertos.*(.literal.esp_log_impl_unlock .text.esp_log_impl_unlock) - *log/log_freertos.*(.literal.esp_log_timestamp .text.esp_log_timestamp) + /* '?' matches one char so Windows GNU ld backslash object paths match these IRAM globs. */ + *app_trace?app_trace.*(.literal .literal.* .text .text.*) + *app_trace?app_trace_util.*(.literal .literal.* .text .text.*) + *app_trace?port_uart.*(.literal .literal.* .text .text.*) + *esp_event?default_event_loop.*(.literal.esp_event_isr_post .text.esp_event_isr_post) + *esp_event?esp_event.*(.literal.esp_event_isr_post_to .text.esp_event_isr_post_to) + *esp_hw_support?cpu.*(.literal.esp_cpu_compare_and_set .text.esp_cpu_compare_and_set) + *esp_hw_support?cpu.*(.literal.esp_cpu_reset .text.esp_cpu_reset) + *esp_hw_support?cpu.*(.literal.esp_cpu_stall .text.esp_cpu_stall) + *esp_hw_support?cpu.*(.literal.esp_cpu_unstall .text.esp_cpu_unstall) + *esp_hw_support?cpu.*(.literal.esp_cpu_wait_for_intr .text.esp_cpu_wait_for_intr) + *esp_hw_support?esp_memory_utils.*(.literal .literal.* .text .text.*) + *esp_hw_support?rtc_clk.*(.literal .literal.* .text .text.*) + *esp_hw_support?rtc_init.*(.literal.rtc_vddsdio_set_config .text.rtc_vddsdio_set_config) + *esp_hw_support?rtc_pm.*(.literal .literal.* .text .text.*) + *esp_hw_support?rtc_sleep.*(.literal .literal.* .text .text.*) + *esp_hw_support?rtc_time.*(.literal .literal.* .text .text.*) + *esp_hw_support?systimer.*(.literal .literal.* .text .text.*) + *esp_ringbuf?(.literal .literal.* .text .text.*) + *esp_rom?esp_rom_regi2c.*(.literal .literal.* .text .text.*) + *esp_rom?esp_rom_spiflash.*(.literal .literal.* .text .text.*) + *esp_rom?esp_rom_systimer.*(.literal .literal.* .text .text.*) + *esp_system?esp_err.*(.literal .literal.* .text .text.*) + *esp_system?esp_system.*(.literal.esp_system_abort .text.esp_system_abort) + *esp_system?ubsan.*(.literal .literal.* .text .text.*) + *gcc?_divsf3.*(.literal .literal.* .text .text.*) + *gcc?lib2funcs.*(.literal .literal.* .text .text.*) + *gcc?save-restore.*(.literal .literal.* .text .text.*) + *gcov?(.literal .literal.* .text .text.*) + *hal?cache_hal.*(.literal .literal.* .text .text.*) + *hal?i2c_hal_iram.*(.literal .literal.* .text .text.*) + *hal?ledc_hal_iram.*(.literal .literal.* .text .text.*) + *hal?mmu_hal.*(.literal .literal.* .text .text.*) + *hal?spi_flash_encrypt_hal_iram.*(.literal .literal.* .text .text.*) + *hal?spi_flash_hal_gpspi.*(.literal .literal.* .text .text.*) + *hal?spi_flash_hal_iram.*(.literal .literal.* .text .text.*) + *hal?spi_hal_iram.*(.literal .literal.* .text .text.*) + *hal?spi_slave_hal_iram.*(.literal .literal.* .text .text.*) + *hal?systimer_hal.*(.literal .literal.* .text .text.*) + *hal?wdt_hal_iram.*(.literal .literal.* .text .text.*) + *heap?multi_heap.*(.literal .literal.* .text .text.*) + *heap?tlsf.*(.literal .literal.* .text .text.*) + *log?log.*(.literal.esp_log_write .text.esp_log_write) + *log?log_freertos.*(.literal.esp_log_early_timestamp .text.esp_log_early_timestamp) + *log?log_freertos.*(.literal.esp_log_impl_lock .text.esp_log_impl_lock) + *log?log_freertos.*(.literal.esp_log_impl_lock_timeout .text.esp_log_impl_lock_timeout) + *log?log_freertos.*(.literal.esp_log_impl_unlock .text.esp_log_impl_unlock) + *log?log_freertos.*(.literal.esp_log_timestamp .text.esp_log_timestamp) *libnet80211.a:(.wifi0iram .wifi0iram.*) *libnet80211.a:(.wifirxiram .wifirxiram.*) *libnet80211.a:(.wifislprxiram .wifislprxiram.*) - *newlib/abort.*(.literal .literal.* .text .text.*) - *newlib/assert.*(.literal .literal.* .text .text.*) - *newlib/heap.*(.literal .literal.* .text .text.*) - *newlib/stdatomic.*(.literal .literal.* .text .text.*) + *newlib?abort.*(.literal .literal.* .text .text.*) + *newlib?assert.*(.literal .literal.* .text .text.*) + *newlib?heap.*(.literal .literal.* .text .text.*) + *newlib?stdatomic.*(.literal .literal.* .text .text.*) *libpp.a:(.wifi0iram .wifi0iram.*) *libpp.a:(.wifiorslpiram .wifiorslpiram.*) *libpp.a:(.wifirxiram .wifirxiram.*) *libpp.a:(.wifislprxiram .wifislprxiram.*) - *riscv/interrupt.*(.literal .literal.* .text .text.*) - *riscv/vectors.*(.literal .literal.* .text .text.*) + *riscv?interrupt.*(.literal .literal.* .text .text.*) + *riscv?vectors.*(.literal .literal.* .text .text.*) *librtc.a:(.literal .literal.* .text .text.*) - *soc/lldesc.*(.literal .literal.* .text .text.*) - *spi_flash/flash_brownout_hook.*(.literal .literal.* .text .text.*) - *spi_flash/memspi_host_driver.*(.literal .literal.* .text .text.*) - *spi_flash/spi_flash_chip_boya.*(.literal .literal.* .text .text.*) - *spi_flash/spi_flash_chip_gd.*(.literal .literal.* .text .text.*) - *spi_flash/spi_flash_chip_generic.*(.literal .literal.* .text .text.*) - *spi_flash/spi_flash_chip_issi.*(.literal .literal.* .text .text.*) - *spi_flash/spi_flash_chip_mxic.*(.literal .literal.* .text .text.*) - *spi_flash/spi_flash_chip_th.*(.literal .literal.* .text .text.*) - *spi_flash/spi_flash_chip_winbond.*(.literal .literal.* .text .text.*) - *kernel/src/*.*(.literal .literal.* .text .text.*) - *kernel/libcpu/risc-v/common/context_gcc.*(.literal .literal.* .text .text.*) + *soc?lldesc.*(.literal .literal.* .text .text.*) + *spi_flash?flash_brownout_hook.*(.literal .literal.* .text .text.*) + *spi_flash?memspi_host_driver.*(.literal .literal.* .text .text.*) + *spi_flash?spi_flash_chip_boya.*(.literal .literal.* .text .text.*) + *spi_flash?spi_flash_chip_gd.*(.literal .literal.* .text .text.*) + *spi_flash?spi_flash_chip_generic.*(.literal .literal.* .text .text.*) + *spi_flash?spi_flash_chip_issi.*(.literal .literal.* .text .text.*) + *spi_flash?spi_flash_chip_mxic.*(.literal .literal.* .text .text.*) + *spi_flash?spi_flash_chip_th.*(.literal .literal.* .text .text.*) + *spi_flash?spi_flash_chip_winbond.*(.literal .literal.* .text .text.*) + *kernel?src?*.*(.literal .literal.* .text .text.*) + *kernel?libcpu?risc-v?common?context_gcc.*(.literal .literal.* .text .text.*) } > iram0_0_seg /** @@ -239,67 +240,67 @@ SECTIONS *(.gnu.linkonce.s2.*) *(.jcr) - *(EXCLUDE_FILE(*bt/* *libbtdm_app.a *libnimble.a) .data EXCLUDE_FILE(*bt/* *libbtdm_app.a *libnimble.a) .data.*) + *(EXCLUDE_FILE(*bt?* *libbtdm_app.a *libnimble.a) .data EXCLUDE_FILE(*bt?* *libbtdm_app.a *libnimble.a) .data.*) *(.dram1 .dram1.*) _coredump_dram_start = ABSOLUTE(.); *(.dram2.coredump .dram2.coredump.*) _coredump_dram_end = ABSOLUTE(.); - *app_trace/app_trace.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *app_trace/app_trace_util.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *app_trace/port_uart.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *app_trace?app_trace.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *app_trace?app_trace_util.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *app_trace?port_uart.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) _btdm_data_start = ABSOLUTE(.); *libbtdm_app.a:(.data .data.*) . = ALIGN(4); _btdm_data_end = ABSOLUTE(.); _bt_data_start = ABSOLUTE(.); - *bt/*(.data .data.*) + *bt?*(.data .data.*) . = ALIGN(4); _bt_data_end = ABSOLUTE(.); - *esp_hw_support/esp_memory_utils.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *esp_hw_support/rtc_clk.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *esp_hw_support/systimer.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *esp_rom/esp_rom_regi2c.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *esp_rom/esp_rom_spiflash.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *esp_rom/esp_rom_systimer.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *esp_system/esp_err.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *esp_system/ubsan.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *gcc/_divsf3.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *gcc/save-restore.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *gcov/(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *hal/cache_hal.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *hal/i2c_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *hal/ledc_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *hal/mmu_hal.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *hal/spi_flash_encrypt_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *hal/spi_flash_hal_gpspi.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *hal/spi_flash_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *hal/spi_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *hal/spi_slave_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *hal/systimer_hal.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *hal/wdt_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *heap/multi_heap.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *heap/tlsf.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *newlib/abort.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *newlib/assert.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *newlib/heap.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *newlib/stdatomic.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *esp_hw_support?esp_memory_utils.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *esp_hw_support?rtc_clk.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *esp_hw_support?systimer.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *esp_rom?esp_rom_regi2c.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *esp_rom?esp_rom_spiflash.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *esp_rom?esp_rom_systimer.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *esp_system?esp_err.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *esp_system?ubsan.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *gcc?_divsf3.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *gcc?save-restore.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *gcov?(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *hal?cache_hal.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *hal?i2c_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *hal?ledc_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *hal?mmu_hal.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *hal?spi_flash_encrypt_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *hal?spi_flash_hal_gpspi.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *hal?spi_flash_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *hal?spi_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *hal?spi_slave_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *hal?systimer_hal.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *hal?wdt_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *heap?multi_heap.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *heap?tlsf.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *newlib?abort.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *newlib?assert.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *newlib?heap.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *newlib?stdatomic.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) _nimble_data_start = ABSOLUTE(.); *libnimble.a:(.data .data.*) . = ALIGN(4); _nimble_data_end = ABSOLUTE(.); *libphy.a:(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *soc/lldesc.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *spi_flash/flash_brownout_hook.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *spi_flash/memspi_host_driver.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *spi_flash/spi_flash_chip_boya.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *spi_flash/spi_flash_chip_gd.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *spi_flash/spi_flash_chip_generic.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *spi_flash/spi_flash_chip_issi.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *spi_flash/spi_flash_chip_mxic.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *spi_flash/spi_flash_chip_th.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *spi_flash/spi_flash_chip_winbond.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *kernel/src/*.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) - *kernel/libcpu/risc-v/common/context_gcc.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *soc?lldesc.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *spi_flash?flash_brownout_hook.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *spi_flash?memspi_host_driver.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *spi_flash?spi_flash_chip_boya.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *spi_flash?spi_flash_chip_gd.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *spi_flash?spi_flash_chip_generic.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *spi_flash?spi_flash_chip_issi.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *spi_flash?spi_flash_chip_mxic.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *spi_flash?spi_flash_chip_th.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *spi_flash?spi_flash_chip_winbond.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *kernel?src?*.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) + *kernel?libcpu?risc-v?common?context_gcc.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) _data_end = ABSOLUTE(.); . = ALIGN(4); } > dram0_0_seg @@ -351,7 +352,7 @@ SECTIONS *(.ext_ram.bss .ext_ram.bss.*) *(COMMON) _bt_bss_start = ABSOLUTE(.); - *bt/*(.bss .bss.* COMMON) + *bt?*(.bss .bss.* COMMON) . = ALIGN(4); _bt_bss_end = ABSOLUTE(.); _btdm_bss_start = ABSOLUTE(.); @@ -387,19 +388,19 @@ SECTIONS _instruction_reserved_start = ABSOLUTE(.); _text_start = ABSOLUTE(.); - *(EXCLUDE_FILE(*esp_ringbuf/* *gcov/* *librtc.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_event/default_event_loop.* *esp_event/esp_event.* *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .literal EXCLUDE_FILE(*esp_ringbuf/* *gcov/* *librtc.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_event/default_event_loop.* *esp_event/esp_event.* *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .literal.* EXCLUDE_FILE(*esp_ringbuf/* *gcov/* *librtc.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_event/default_event_loop.* *esp_event/esp_event.* *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .text EXCLUDE_FILE(*esp_ringbuf/* *gcov/* *librtc.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_event/default_event_loop.* *esp_event/esp_event.* *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .text.*) + *(EXCLUDE_FILE(*esp_ringbuf?* *gcov?* *librtc.a *app_trace?app_trace.* *app_trace?app_trace_util.* *app_trace?port_uart.* *esp_event?default_event_loop.* *esp_event?esp_event.* *esp_hw_support?cpu.* *esp_hw_support?esp_memory_utils.* *esp_hw_support?rtc_clk.* *esp_hw_support?rtc_init.* *esp_hw_support?rtc_pm.* *esp_hw_support?rtc_sleep.* *esp_hw_support?rtc_time.* *esp_hw_support?systimer.* *esp_rom?esp_rom_regi2c.* *esp_rom?esp_rom_spiflash.* *esp_rom?esp_rom_systimer.* *esp_system?esp_err.* *esp_system?esp_system.* *esp_system?ubsan.* *gcc?_divsf3.* *gcc?lib2funcs.* *gcc?save-restore.* *hal?cache_hal.* *hal?i2c_hal_iram.* *hal?ledc_hal_iram.* *hal?mmu_hal.* *hal?spi_flash_encrypt_hal_iram.* *hal?spi_flash_hal_gpspi.* *hal?spi_flash_hal_iram.* *hal?spi_hal_iram.* *hal?spi_slave_hal_iram.* *hal?systimer_hal.* *hal?wdt_hal_iram.* *heap?multi_heap.* *heap?tlsf.* *log?log.* *log?log_freertos.* *newlib?abort.* *newlib?assert.* *newlib?heap.* *newlib?stdatomic.* *riscv?interrupt.* *riscv?vectors.* *soc?lldesc.* *spi_flash?flash_brownout_hook.* *spi_flash?memspi_host_driver.* *spi_flash?spi_flash_chip_boya.* *spi_flash?spi_flash_chip_gd.* *spi_flash?spi_flash_chip_generic.* *spi_flash?spi_flash_chip_issi.* *spi_flash?spi_flash_chip_mxic.* *spi_flash?spi_flash_chip_th.* *spi_flash?spi_flash_chip_winbond.* *kernel?src?*.* *kernel?libcpu?risc-v?common?context_gcc.* ) .literal EXCLUDE_FILE(*esp_ringbuf?* *gcov?* *librtc.a *app_trace?app_trace.* *app_trace?app_trace_util.* *app_trace?port_uart.* *esp_event?default_event_loop.* *esp_event?esp_event.* *esp_hw_support?cpu.* *esp_hw_support?esp_memory_utils.* *esp_hw_support?rtc_clk.* *esp_hw_support?rtc_init.* *esp_hw_support?rtc_pm.* *esp_hw_support?rtc_sleep.* *esp_hw_support?rtc_time.* *esp_hw_support?systimer.* *esp_rom?esp_rom_regi2c.* *esp_rom?esp_rom_spiflash.* *esp_rom?esp_rom_systimer.* *esp_system?esp_err.* *esp_system?esp_system.* *esp_system?ubsan.* *gcc?_divsf3.* *gcc?lib2funcs.* *gcc?save-restore.* *hal?cache_hal.* *hal?i2c_hal_iram.* *hal?ledc_hal_iram.* *hal?mmu_hal.* *hal?spi_flash_encrypt_hal_iram.* *hal?spi_flash_hal_gpspi.* *hal?spi_flash_hal_iram.* *hal?spi_hal_iram.* *hal?spi_slave_hal_iram.* *hal?systimer_hal.* *hal?wdt_hal_iram.* *heap?multi_heap.* *heap?tlsf.* *log?log.* *log?log_freertos.* *newlib?abort.* *newlib?assert.* *newlib?heap.* *newlib?stdatomic.* *riscv?interrupt.* *riscv?vectors.* *soc?lldesc.* *spi_flash?flash_brownout_hook.* *spi_flash?memspi_host_driver.* *spi_flash?spi_flash_chip_boya.* *spi_flash?spi_flash_chip_gd.* *spi_flash?spi_flash_chip_generic.* *spi_flash?spi_flash_chip_issi.* *spi_flash?spi_flash_chip_mxic.* *spi_flash?spi_flash_chip_th.* *spi_flash?spi_flash_chip_winbond.* *kernel?src?*.* *kernel?libcpu?risc-v?common?context_gcc.* ) .literal.* EXCLUDE_FILE(*esp_ringbuf?* *gcov?* *librtc.a *app_trace?app_trace.* *app_trace?app_trace_util.* *app_trace?port_uart.* *esp_event?default_event_loop.* *esp_event?esp_event.* *esp_hw_support?cpu.* *esp_hw_support?esp_memory_utils.* *esp_hw_support?rtc_clk.* *esp_hw_support?rtc_init.* *esp_hw_support?rtc_pm.* *esp_hw_support?rtc_sleep.* *esp_hw_support?rtc_time.* *esp_hw_support?systimer.* *esp_rom?esp_rom_regi2c.* *esp_rom?esp_rom_spiflash.* *esp_rom?esp_rom_systimer.* *esp_system?esp_err.* *esp_system?esp_system.* *esp_system?ubsan.* *gcc?_divsf3.* *gcc?lib2funcs.* *gcc?save-restore.* *hal?cache_hal.* *hal?i2c_hal_iram.* *hal?ledc_hal_iram.* *hal?mmu_hal.* *hal?spi_flash_encrypt_hal_iram.* *hal?spi_flash_hal_gpspi.* *hal?spi_flash_hal_iram.* *hal?spi_hal_iram.* *hal?spi_slave_hal_iram.* *hal?systimer_hal.* *hal?wdt_hal_iram.* *heap?multi_heap.* *heap?tlsf.* *log?log.* *log?log_freertos.* *newlib?abort.* *newlib?assert.* *newlib?heap.* *newlib?stdatomic.* *riscv?interrupt.* *riscv?vectors.* *soc?lldesc.* *spi_flash?flash_brownout_hook.* *spi_flash?memspi_host_driver.* *spi_flash?spi_flash_chip_boya.* *spi_flash?spi_flash_chip_gd.* *spi_flash?spi_flash_chip_generic.* *spi_flash?spi_flash_chip_issi.* *spi_flash?spi_flash_chip_mxic.* *spi_flash?spi_flash_chip_th.* *spi_flash?spi_flash_chip_winbond.* *kernel?src?*.* *kernel?libcpu?risc-v?common?context_gcc.* ) .text EXCLUDE_FILE(*esp_ringbuf?* *gcov?* *librtc.a *app_trace?app_trace.* *app_trace?app_trace_util.* *app_trace?port_uart.* *esp_event?default_event_loop.* *esp_event?esp_event.* *esp_hw_support?cpu.* *esp_hw_support?esp_memory_utils.* *esp_hw_support?rtc_clk.* *esp_hw_support?rtc_init.* *esp_hw_support?rtc_pm.* *esp_hw_support?rtc_sleep.* *esp_hw_support?rtc_time.* *esp_hw_support?systimer.* *esp_rom?esp_rom_regi2c.* *esp_rom?esp_rom_spiflash.* *esp_rom?esp_rom_systimer.* *esp_system?esp_err.* *esp_system?esp_system.* *esp_system?ubsan.* *gcc?_divsf3.* *gcc?lib2funcs.* *gcc?save-restore.* *hal?cache_hal.* *hal?i2c_hal_iram.* *hal?ledc_hal_iram.* *hal?mmu_hal.* *hal?spi_flash_encrypt_hal_iram.* *hal?spi_flash_hal_gpspi.* *hal?spi_flash_hal_iram.* *hal?spi_hal_iram.* *hal?spi_slave_hal_iram.* *hal?systimer_hal.* *hal?wdt_hal_iram.* *heap?multi_heap.* *heap?tlsf.* *log?log.* *log?log_freertos.* *newlib?abort.* *newlib?assert.* *newlib?heap.* *newlib?stdatomic.* *riscv?interrupt.* *riscv?vectors.* *soc?lldesc.* *spi_flash?flash_brownout_hook.* *spi_flash?memspi_host_driver.* *spi_flash?spi_flash_chip_boya.* *spi_flash?spi_flash_chip_gd.* *spi_flash?spi_flash_chip_generic.* *spi_flash?spi_flash_chip_issi.* *spi_flash?spi_flash_chip_mxic.* *spi_flash?spi_flash_chip_th.* *spi_flash?spi_flash_chip_winbond.* *kernel?src?*.* *kernel?libcpu?risc-v?common?context_gcc.* ) .text.*) *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram.*) *(EXCLUDE_FILE(*libpp.a) .wifiorslpiram EXCLUDE_FILE(*libpp.a) .wifiorslpiram.*) *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram.*) *(.wifislpiram .wifislpiram.*) *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram.*) - *esp_event/default_event_loop.*(.text .text.esp_event_handler_instance_register .text.esp_event_handler_instance_unregister .text.esp_event_handler_register .text.esp_event_handler_unregister .text.esp_event_loop_create_default .text.esp_event_loop_delete_default .text.esp_event_post) - *esp_event/esp_event.*(.text .text.base_node_add_handler .text.base_node_remove_all_handler .text.base_node_remove_handler .text.esp_event_dump .text.esp_event_handler_instance_register_with .text.esp_event_handler_instance_unregister_with .text.esp_event_handler_register_with .text.esp_event_handler_register_with_internal .text.esp_event_handler_unregister_with .text.esp_event_handler_unregister_with_internal .text.esp_event_loop_create .text.esp_event_loop_delete .text.esp_event_loop_run .text.esp_event_loop_run_task .text.esp_event_post_to .text.handler_execute .text.handler_instances_add .text.handler_instances_remove .text.handler_instances_remove_all .text.loop_node_add_handler .text.loop_node_remove_all_handler .text.loop_node_remove_handler) - *esp_hw_support/cpu.*(.text .text.esp_cpu_clear_breakpoint .text.esp_cpu_clear_watchpoint .text.esp_cpu_configure_region_protection .text.esp_cpu_intr_get_desc .text.esp_cpu_set_breakpoint .text.esp_cpu_set_watchpoint .text.is_intr_num_resv) - *esp_hw_support/rtc_init.*(.text .text.calibrate_ocode .text.get_dig_dbias_by_efuse .text.get_rtc_dbias_by_efuse .text.rtc_init .text.rtc_vddsdio_get_config .text.set_ocode_by_efuse .text.set_rtc_dig_dbias) - *esp_system/esp_system.*(.text .text.esp_get_free_heap_size .text.esp_get_free_internal_heap_size .text.esp_get_idf_version .text.esp_get_minimum_free_heap_size .text.esp_register_shutdown_handler .text.esp_unregister_shutdown_handler) - *log/log.*(.text .text.esp_log_level_get .text.esp_log_level_set .text.esp_log_set_vprintf .text.esp_log_writev .text.heap_bubble_down .text.s_log_level_get_and_unlock) - *log/log_freertos.*(.text .text.esp_log_system_timestamp) + *esp_event?default_event_loop.*(.text .text.esp_event_handler_instance_register .text.esp_event_handler_instance_unregister .text.esp_event_handler_register .text.esp_event_handler_unregister .text.esp_event_loop_create_default .text.esp_event_loop_delete_default .text.esp_event_post) + *esp_event?esp_event.*(.text .text.base_node_add_handler .text.base_node_remove_all_handler .text.base_node_remove_handler .text.esp_event_dump .text.esp_event_handler_instance_register_with .text.esp_event_handler_instance_unregister_with .text.esp_event_handler_register_with .text.esp_event_handler_register_with_internal .text.esp_event_handler_unregister_with .text.esp_event_handler_unregister_with_internal .text.esp_event_loop_create .text.esp_event_loop_delete .text.esp_event_loop_run .text.esp_event_loop_run_task .text.esp_event_post_to .text.handler_execute .text.handler_instances_add .text.handler_instances_remove .text.handler_instances_remove_all .text.loop_node_add_handler .text.loop_node_remove_all_handler .text.loop_node_remove_handler) + *esp_hw_support?cpu.*(.text .text.esp_cpu_clear_breakpoint .text.esp_cpu_clear_watchpoint .text.esp_cpu_configure_region_protection .text.esp_cpu_intr_get_desc .text.esp_cpu_set_breakpoint .text.esp_cpu_set_watchpoint .text.is_intr_num_resv) + *esp_hw_support?rtc_init.*(.text .text.calibrate_ocode .text.get_dig_dbias_by_efuse .text.get_rtc_dbias_by_efuse .text.rtc_init .text.rtc_vddsdio_get_config .text.set_ocode_by_efuse .text.set_rtc_dig_dbias) + *esp_system?esp_system.*(.text .text.esp_get_free_heap_size .text.esp_get_free_internal_heap_size .text.esp_get_idf_version .text.esp_get_minimum_free_heap_size .text.esp_register_shutdown_handler .text.esp_unregister_shutdown_handler) + *log?log.*(.text .text.esp_log_level_get .text.esp_log_level_set .text.esp_log_set_vprintf .text.esp_log_writev .text.heap_bubble_down .text.s_log_level_get_and_unlock) + *log?log_freertos.*(.text .text.esp_log_system_timestamp) *(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.irom0.text) /* catch stray ICACHE_RODATA_ATTR */ @@ -471,7 +472,7 @@ SECTIONS { _flash_rodata_start = ABSOLUTE(.); - *(EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .rodata EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .rodata.* EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .sdata2 EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .sdata2.* EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .srodata EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .srodata.*) + *(EXCLUDE_FILE(*gcov?* *libphy.a *app_trace?app_trace.* *app_trace?app_trace_util.* *app_trace?port_uart.* *esp_hw_support?esp_memory_utils.* *esp_hw_support?rtc_clk.* *esp_hw_support?systimer.* *esp_rom?esp_rom_regi2c.* *esp_rom?esp_rom_spiflash.* *esp_rom?esp_rom_systimer.* *esp_system?esp_err.* *esp_system?ubsan.* *gcc?_divsf3.* *gcc?save-restore.* *hal?cache_hal.* *hal?i2c_hal_iram.* *hal?ledc_hal_iram.* *hal?mmu_hal.* *hal?spi_flash_encrypt_hal_iram.* *hal?spi_flash_hal_gpspi.* *hal?spi_flash_hal_iram.* *hal?spi_hal_iram.* *hal?spi_slave_hal_iram.* *hal?systimer_hal.* *hal?wdt_hal_iram.* *heap?multi_heap.* *heap?tlsf.* *newlib?abort.* *newlib?assert.* *newlib?heap.* *newlib?stdatomic.* *soc?lldesc.* *spi_flash?flash_brownout_hook.* *spi_flash?memspi_host_driver.* *spi_flash?spi_flash_chip_boya.* *spi_flash?spi_flash_chip_gd.* *spi_flash?spi_flash_chip_generic.* *spi_flash?spi_flash_chip_issi.* *spi_flash?spi_flash_chip_mxic.* *spi_flash?spi_flash_chip_th.* *spi_flash?spi_flash_chip_winbond.* *kernel?src?*.* *kernel?libcpu?risc-v?common?context_gcc.* ) .rodata EXCLUDE_FILE(*gcov?* *libphy.a *app_trace?app_trace.* *app_trace?app_trace_util.* *app_trace?port_uart.* *esp_hw_support?esp_memory_utils.* *esp_hw_support?rtc_clk.* *esp_hw_support?systimer.* *esp_rom?esp_rom_regi2c.* *esp_rom?esp_rom_spiflash.* *esp_rom?esp_rom_systimer.* *esp_system?esp_err.* *esp_system?ubsan.* *gcc?_divsf3.* *gcc?save-restore.* *hal?cache_hal.* *hal?i2c_hal_iram.* *hal?ledc_hal_iram.* *hal?mmu_hal.* *hal?spi_flash_encrypt_hal_iram.* *hal?spi_flash_hal_gpspi.* *hal?spi_flash_hal_iram.* *hal?spi_hal_iram.* *hal?spi_slave_hal_iram.* *hal?systimer_hal.* *hal?wdt_hal_iram.* *heap?multi_heap.* *heap?tlsf.* *newlib?abort.* *newlib?assert.* *newlib?heap.* *newlib?stdatomic.* *soc?lldesc.* *spi_flash?flash_brownout_hook.* *spi_flash?memspi_host_driver.* *spi_flash?spi_flash_chip_boya.* *spi_flash?spi_flash_chip_gd.* *spi_flash?spi_flash_chip_generic.* *spi_flash?spi_flash_chip_issi.* *spi_flash?spi_flash_chip_mxic.* *spi_flash?spi_flash_chip_th.* *spi_flash?spi_flash_chip_winbond.* *kernel?src?*.* *kernel?libcpu?risc-v?common?context_gcc.* ) .rodata.* EXCLUDE_FILE(*gcov?* *libphy.a *app_trace?app_trace.* *app_trace?app_trace_util.* *app_trace?port_uart.* *esp_hw_support?esp_memory_utils.* *esp_hw_support?rtc_clk.* *esp_hw_support?systimer.* *esp_rom?esp_rom_regi2c.* *esp_rom?esp_rom_spiflash.* *esp_rom?esp_rom_systimer.* *esp_system?esp_err.* *esp_system?ubsan.* *gcc?_divsf3.* *gcc?save-restore.* *hal?cache_hal.* *hal?i2c_hal_iram.* *hal?ledc_hal_iram.* *hal?mmu_hal.* *hal?spi_flash_encrypt_hal_iram.* *hal?spi_flash_hal_gpspi.* *hal?spi_flash_hal_iram.* *hal?spi_hal_iram.* *hal?spi_slave_hal_iram.* *hal?systimer_hal.* *hal?wdt_hal_iram.* *heap?multi_heap.* *heap?tlsf.* *newlib?abort.* *newlib?assert.* *newlib?heap.* *newlib?stdatomic.* *soc?lldesc.* *spi_flash?flash_brownout_hook.* *spi_flash?memspi_host_driver.* *spi_flash?spi_flash_chip_boya.* *spi_flash?spi_flash_chip_gd.* *spi_flash?spi_flash_chip_generic.* *spi_flash?spi_flash_chip_issi.* *spi_flash?spi_flash_chip_mxic.* *spi_flash?spi_flash_chip_th.* *spi_flash?spi_flash_chip_winbond.* *kernel?src?*.* *kernel?libcpu?risc-v?common?context_gcc.* ) .sdata2 EXCLUDE_FILE(*gcov?* *libphy.a *app_trace?app_trace.* *app_trace?app_trace_util.* *app_trace?port_uart.* *esp_hw_support?esp_memory_utils.* *esp_hw_support?rtc_clk.* *esp_hw_support?systimer.* *esp_rom?esp_rom_regi2c.* *esp_rom?esp_rom_spiflash.* *esp_rom?esp_rom_systimer.* *esp_system?esp_err.* *esp_system?ubsan.* *gcc?_divsf3.* *gcc?save-restore.* *hal?cache_hal.* *hal?i2c_hal_iram.* *hal?ledc_hal_iram.* *hal?mmu_hal.* *hal?spi_flash_encrypt_hal_iram.* *hal?spi_flash_hal_gpspi.* *hal?spi_flash_hal_iram.* *hal?spi_hal_iram.* *hal?spi_slave_hal_iram.* *hal?systimer_hal.* *hal?wdt_hal_iram.* *heap?multi_heap.* *heap?tlsf.* *newlib?abort.* *newlib?assert.* *newlib?heap.* *newlib?stdatomic.* *soc?lldesc.* *spi_flash?flash_brownout_hook.* *spi_flash?memspi_host_driver.* *spi_flash?spi_flash_chip_boya.* *spi_flash?spi_flash_chip_gd.* *spi_flash?spi_flash_chip_generic.* *spi_flash?spi_flash_chip_issi.* *spi_flash?spi_flash_chip_mxic.* *spi_flash?spi_flash_chip_th.* *spi_flash?spi_flash_chip_winbond.* *kernel?src?*.* *kernel?libcpu?risc-v?common?context_gcc.* ) .sdata2.* EXCLUDE_FILE(*gcov?* *libphy.a *app_trace?app_trace.* *app_trace?app_trace_util.* *app_trace?port_uart.* *esp_hw_support?esp_memory_utils.* *esp_hw_support?rtc_clk.* *esp_hw_support?systimer.* *esp_rom?esp_rom_regi2c.* *esp_rom?esp_rom_spiflash.* *esp_rom?esp_rom_systimer.* *esp_system?esp_err.* *esp_system?ubsan.* *gcc?_divsf3.* *gcc?save-restore.* *hal?cache_hal.* *hal?i2c_hal_iram.* *hal?ledc_hal_iram.* *hal?mmu_hal.* *hal?spi_flash_encrypt_hal_iram.* *hal?spi_flash_hal_gpspi.* *hal?spi_flash_hal_iram.* *hal?spi_hal_iram.* *hal?spi_slave_hal_iram.* *hal?systimer_hal.* *hal?wdt_hal_iram.* *heap?multi_heap.* *heap?tlsf.* *newlib?abort.* *newlib?assert.* *newlib?heap.* *newlib?stdatomic.* *soc?lldesc.* *spi_flash?flash_brownout_hook.* *spi_flash?memspi_host_driver.* *spi_flash?spi_flash_chip_boya.* *spi_flash?spi_flash_chip_gd.* *spi_flash?spi_flash_chip_generic.* *spi_flash?spi_flash_chip_issi.* *spi_flash?spi_flash_chip_mxic.* *spi_flash?spi_flash_chip_th.* *spi_flash?spi_flash_chip_winbond.* *kernel?src?*.* *kernel?libcpu?risc-v?common?context_gcc.* ) .srodata EXCLUDE_FILE(*gcov?* *libphy.a *app_trace?app_trace.* *app_trace?app_trace_util.* *app_trace?port_uart.* *esp_hw_support?esp_memory_utils.* *esp_hw_support?rtc_clk.* *esp_hw_support?systimer.* *esp_rom?esp_rom_regi2c.* *esp_rom?esp_rom_spiflash.* *esp_rom?esp_rom_systimer.* *esp_system?esp_err.* *esp_system?ubsan.* *gcc?_divsf3.* *gcc?save-restore.* *hal?cache_hal.* *hal?i2c_hal_iram.* *hal?ledc_hal_iram.* *hal?mmu_hal.* *hal?spi_flash_encrypt_hal_iram.* *hal?spi_flash_hal_gpspi.* *hal?spi_flash_hal_iram.* *hal?spi_hal_iram.* *hal?spi_slave_hal_iram.* *hal?systimer_hal.* *hal?wdt_hal_iram.* *heap?multi_heap.* *heap?tlsf.* *newlib?abort.* *newlib?assert.* *newlib?heap.* *newlib?stdatomic.* *soc?lldesc.* *spi_flash?flash_brownout_hook.* *spi_flash?memspi_host_driver.* *spi_flash?spi_flash_chip_boya.* *spi_flash?spi_flash_chip_gd.* *spi_flash?spi_flash_chip_generic.* *spi_flash?spi_flash_chip_issi.* *spi_flash?spi_flash_chip_mxic.* *spi_flash?spi_flash_chip_th.* *spi_flash?spi_flash_chip_winbond.* *kernel?src?*.* *kernel?libcpu?risc-v?common?context_gcc.* ) .srodata.*) *(.rodata_wlog_error .rodata_wlog_error.*) *(.rodata_wlog_info .rodata_wlog_info.*) *(.rodata_wlog_warning .rodata_wlog_warning.*) From 144e141e4de792cb8ebaca14ba4caaba18dc5e31 Mon Sep 17 00:00:00 2001 From: seteiro <276597748+cms19859230182-lang@users.noreply.github.com> Date: Tue, 22 Sep 2026 22:04:17 +0800 Subject: [PATCH 2/2] [bsp][ESP32_C3] stop bt globs from matching libbtdm A '?' in *bt?* matches any character, so libbtdm_app.a was included in the bt data and bss regions. Match only a slash or backslash. --- bsp/ESP/ESP32_C3/idf_port/ld/sections.ld | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bsp/ESP/ESP32_C3/idf_port/ld/sections.ld b/bsp/ESP/ESP32_C3/idf_port/ld/sections.ld index 9264a3da2ce..ee0f26c91dd 100644 --- a/bsp/ESP/ESP32_C3/idf_port/ld/sections.ld +++ b/bsp/ESP/ESP32_C3/idf_port/ld/sections.ld @@ -240,7 +240,7 @@ SECTIONS *(.gnu.linkonce.s2.*) *(.jcr) - *(EXCLUDE_FILE(*bt?* *libbtdm_app.a *libnimble.a) .data EXCLUDE_FILE(*bt?* *libbtdm_app.a *libnimble.a) .data.*) + *(EXCLUDE_FILE(*bt[/\\]* *libbtdm_app.a *libnimble.a) .data EXCLUDE_FILE(*bt[/\\]* *libbtdm_app.a *libnimble.a) .data.*) *(.dram1 .dram1.*) _coredump_dram_start = ABSOLUTE(.); *(.dram2.coredump .dram2.coredump.*) @@ -253,7 +253,7 @@ SECTIONS . = ALIGN(4); _btdm_data_end = ABSOLUTE(.); _bt_data_start = ABSOLUTE(.); - *bt?*(.data .data.*) + *bt[/\\]*(.data .data.*) . = ALIGN(4); _bt_data_end = ABSOLUTE(.); *esp_hw_support?esp_memory_utils.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) @@ -352,7 +352,7 @@ SECTIONS *(.ext_ram.bss .ext_ram.bss.*) *(COMMON) _bt_bss_start = ABSOLUTE(.); - *bt?*(.bss .bss.* COMMON) + *bt[/\\]*(.bss .bss.* COMMON) . = ALIGN(4); _bt_bss_end = ABSOLUTE(.); _btdm_bss_start = ABSOLUTE(.);