Merge branch 'bugfix/fix_example_power_save_build_fail_issue_v5.5' into 'release/v5.5'

fix(esp_timer): preserve timer_process_alarm symbol for ldgen(Backport v5.5)

See merge request espressif/esp-idf!52741
This commit is contained in:
Jiang Jiang Jian
2026-09-14 11:08:48 +08:00
4 changed files with 11 additions and 11 deletions

View File

@@ -14,14 +14,14 @@ else()
elseif(CONFIG_ESP_TIMER_IMPL_SYSTIMER)
list(APPEND srcs "src/esp_timer_impl_systimer.c")
endif()
if(CONFIG_SOC_SYSTIMER_SUPPORT_ETM)
list(APPEND srcs "src/esp_timer_etm.c")
endif()
idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS include
PRIV_INCLUDE_DIRS private_include)
PRIV_INCLUDE_DIRS private_include
LDFRAGMENTS linker.lf)
# Forces the linker to include esp_timer_init.c
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u esp_timer_init_include_func")

View File

@@ -0,0 +1,6 @@
[mapping:esp_timer_wifi_pm]
archive: libesp_timer.a
entries:
if ESP_WIFI_SLP_IRAM_OPT = y && IDF_TARGET_ESP32 = y:
esp_timer:timer_task (noflash)
esp_timer:timer_process_alarm (noflash)

View File

@@ -469,10 +469,11 @@ static ESP_TIMER_IRAM_ATTR void timer_list_unlock(esp_timer_dispatch_t timer_typ
portEXIT_CRITICAL_SAFE(&s_timer_lock[timer_type]);
}
// Keep this as a standalone symbol because ldgen maps it by name.
#ifdef CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD
static ESP_TIMER_IRAM_ATTR bool timer_process_alarm(esp_timer_dispatch_t dispatch_method)
static ESP_TIMER_IRAM_ATTR __attribute__((noinline, noclone)) bool timer_process_alarm(esp_timer_dispatch_t dispatch_method)
#else
static bool timer_process_alarm(esp_timer_dispatch_t dispatch_method)
static __attribute__((noinline, noclone)) bool timer_process_alarm(esp_timer_dispatch_t dispatch_method)
#endif
{
timer_list_lock(dispatch_method);

View File

@@ -163,10 +163,3 @@ entries:
if PM_ENABLE = y:
wifi_init:wifi_apb80m_request (noflash)
wifi_init:wifi_apb80m_release (noflash)
[mapping:esp_timer_wifi_pm]
archive: libesp_timer.a
entries:
if ESP_WIFI_SLP_IRAM_OPT = y && IDF_TARGET_ESP32 = y:
esp_timer:timer_task (noflash)
esp_timer:timer_process_alarm (noflash)