mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-27 19:13:21 +00:00
fix(esp_pm): fix PM_SLP_IRAM_OPT/PM_RTOS_IDLE_OPT feature
- Fix flash accessed code to resolve issues with PM_SLP_IRAM_OPT/PM_RTOS_IDLE_OPT enabled
This commit is contained in:
@@ -51,8 +51,8 @@ menu "Power Management"
|
||||
bool "Put lightsleep related codes in internal RAM"
|
||||
depends on FREERTOS_USE_TICKLESS_IDLE
|
||||
help
|
||||
If enabled, about 1.8KB of lightsleep related source code would be in IRAM and chip would sleep
|
||||
longer for 760us at most each time.
|
||||
If enabled, about 2.1KB of lightsleep related source code would be in IRAM and chip would sleep
|
||||
longer for 310us at 160MHz CPU frequency most each time.
|
||||
This feature is intended to be used when lower power consumption is needed
|
||||
while there is enough place in IRAM to place source code.
|
||||
|
||||
@@ -60,8 +60,8 @@ menu "Power Management"
|
||||
bool "Put RTOS IDLE related codes in internal RAM"
|
||||
depends on FREERTOS_USE_TICKLESS_IDLE
|
||||
help
|
||||
If enabled, about 260B of RTOS_IDLE related source code would be in IRAM and chip would sleep
|
||||
longer for 40us at most each time.
|
||||
If enabled, about 180Bytes of RTOS_IDLE related source code would be in IRAM and chip would sleep
|
||||
longer for 20us at 160MHz CPU frequency most each time.
|
||||
This feature is intended to be used when lower power consumption is needed
|
||||
while there is enough place in IRAM to place source code.
|
||||
|
||||
|
||||
@@ -5,6 +5,9 @@ entries:
|
||||
pm_impl:esp_pm_impl_idle_hook (noflash)
|
||||
pm_impl:esp_pm_impl_waiti (noflash)
|
||||
|
||||
if PM_SLP_IRAM_OPT = y:
|
||||
pm_impl:esp_pm_impl_get_cpu_freq (noflash)
|
||||
|
||||
[mapping:esp_hw_support_pm]
|
||||
archive: libesp_hw_support.a
|
||||
entries:
|
||||
@@ -16,12 +19,24 @@ entries:
|
||||
esp_clk:esp_clk_slowclk_cal_set (noflash)
|
||||
esp_clk:esp_clk_slowclk_cal_get (noflash)
|
||||
esp_clk:esp_rtc_get_time_us (noflash)
|
||||
esp_clk:esp_clk_private_lock (noflash)
|
||||
esp_clk:esp_clk_private_unlock (noflash)
|
||||
if SOC_RTC_MEM_SUPPORTED = y:
|
||||
esp_clk:calc_checksum (noflash)
|
||||
if SOC_SYSTIMER_SUPPORTED = y:
|
||||
systimer (noflash)
|
||||
if GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL = y:
|
||||
sleep_gpio:gpio_sleep_mode_config_apply (noflash)
|
||||
if SOC_PM_CPU_RETENTION_BY_RTCCNTL = y && (SOC_PM_SUPPORT_CPU_PD = y || SOC_PM_SUPPORT_TAGMEM_PD = y):
|
||||
sleep_cpu:sleep_enable_cpu_retention (noflash)
|
||||
if SOC_PM_SUPPORT_CPU_PD = y:
|
||||
sleep_cpu:cpu_domain_pd_allowed (noflash)
|
||||
if SOC_PM_SUPPORT_TOP_PD = y:
|
||||
sleep_clock:clock_domain_pd_allowed (noflash)
|
||||
sleep_system_peripheral:peripheral_domain_pd_allowed (noflash)
|
||||
sleep_modem:modem_domain_pd_allowed (noflash)
|
||||
sleep_modem:periph_inform_out_light_sleep_overhead (noflash)
|
||||
sar_periph_ctrl:sar_periph_ctrl_power_disable (noflash)
|
||||
|
||||
[mapping:esp_system_pm]
|
||||
archive: libesp_system.a
|
||||
@@ -48,10 +63,12 @@ entries:
|
||||
esp_timer_impl_lac:esp_timer_impl_lock (noflash)
|
||||
esp_timer_impl_lac:esp_timer_impl_unlock (noflash)
|
||||
esp_timer_impl_lac:esp_timer_impl_advance (noflash)
|
||||
esp_timer_impl_lac:esp_timer_impl_set (noflash)
|
||||
elif ESP_TIMER_IMPL_SYSTIMER = y:
|
||||
esp_timer_impl_systimer:esp_timer_impl_lock (noflash)
|
||||
esp_timer_impl_systimer:esp_timer_impl_unlock (noflash)
|
||||
esp_timer_impl_systimer:esp_timer_impl_advance (noflash)
|
||||
esp_timer_impl_systimer:esp_timer_impl_set (noflash)
|
||||
|
||||
[mapping:newlib_pm]
|
||||
archive: libnewlib.a
|
||||
|
||||
Reference in New Issue
Block a user