mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 03:00:34 +03:00
fix(esp_timer): preserve timer_process_alarm symbol for ldgen
This commit is contained in:
@@ -14,14 +14,14 @@ else()
|
|||||||
elseif(CONFIG_ESP_TIMER_IMPL_SYSTIMER)
|
elseif(CONFIG_ESP_TIMER_IMPL_SYSTIMER)
|
||||||
list(APPEND srcs "src/esp_timer_impl_systimer.c")
|
list(APPEND srcs "src/esp_timer_impl_systimer.c")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CONFIG_SOC_SYSTIMER_SUPPORT_ETM)
|
if(CONFIG_SOC_SYSTIMER_SUPPORT_ETM)
|
||||||
list(APPEND srcs "src/esp_timer_etm.c")
|
list(APPEND srcs "src/esp_timer_etm.c")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
idf_component_register(SRCS "${srcs}"
|
idf_component_register(SRCS "${srcs}"
|
||||||
INCLUDE_DIRS include
|
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
|
# Forces the linker to include esp_timer_init.c
|
||||||
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u esp_timer_init_include_func")
|
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u esp_timer_init_include_func")
|
||||||
|
|||||||
@@ -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)
|
||||||
@@ -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]);
|
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
|
#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
|
#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
|
#endif
|
||||||
{
|
{
|
||||||
timer_list_lock(dispatch_method);
|
timer_list_lock(dispatch_method);
|
||||||
|
|||||||
@@ -163,10 +163,3 @@ entries:
|
|||||||
if PM_ENABLE = y:
|
if PM_ENABLE = y:
|
||||||
wifi_init:wifi_apb80m_request (noflash)
|
wifi_init:wifi_apb80m_request (noflash)
|
||||||
wifi_init:wifi_apb80m_release (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)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user