mirror of
https://github.com/espressif/esp-idf.git
synced 2026-09-22 13:01:16 +03:00
fix(esp_timer): preserve timer_process_alarm symbol for ldgen
This commit is contained in:
@@ -14,7 +14,6 @@ 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()
|
||||
@@ -22,7 +21,8 @@ else()
|
||||
idf_component_register(SRCS "${srcs}"
|
||||
INCLUDE_DIRS include
|
||||
PRIV_REQUIRES esp_hal_timg
|
||||
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")
|
||||
|
||||
6
components/esp_timer/linker.lf
Normal file
6
components/esp_timer/linker.lf
Normal 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)
|
||||
@@ -385,10 +385,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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user