From ec03c31ec443a523b0023b17471c64d502f6e57c Mon Sep 17 00:00:00 2001 From: xiaxiaotian Date: Wed, 28 Sep 2016 11:52:39 +0800 Subject: [PATCH] 1. Change the deep sleep stub code to fix wake bug. --- components/esp32/cpu_start.c | 1 - components/esp32/deepsleep.c | 6 +++++- components/esp32/include/rom/rtc.h | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/components/esp32/cpu_start.c b/components/esp32/cpu_start.c index fb97cce47..7b2ccdc60 100644 --- a/components/esp32/cpu_start.c +++ b/components/esp32/cpu_start.c @@ -42,7 +42,6 @@ #include "esp_spi_flash.h" #include "esp_ipc.h" #include "esp_log.h" -#include "esp_deepsleep.h" void start_cpu0(void) __attribute__((weak, alias("start_cpu0_default"))); void start_cpu0_default(void) IRAM_ATTR; diff --git a/components/esp32/deepsleep.c b/components/esp32/deepsleep.c index ee188c25d..61268bce6 100644 --- a/components/esp32/deepsleep.c +++ b/components/esp32/deepsleep.c @@ -7,6 +7,7 @@ #include "rom/cache.h" #include "rom/rtc.h" #include "soc/rtc_cntl_reg.h" +#include "soc/dport_reg.h" #include "esp_attr.h" #include "esp_deepsleep.h" @@ -39,7 +40,10 @@ void esp_set_deep_sleep_wake_stub(esp_deep_sleep_wake_stub_fn_t new_stub) } void RTC_IRAM_ATTR esp_default_wake_deep_sleep(void) { - mmu_init(0); + // + //mmu_init(0); + REG_SET_BIT(DPORT_PRO_CACHE_CTRL1_REG, DPORT_PRO_CACHE_MMU_IA_CLR); + REG_CLR_BIT(DPORT_PRO_CACHE_CTRL1_REG, DPORT_PRO_CACHE_MMU_IA_CLR); } void __attribute__((weak, alias("esp_default_wake_deep_sleep"))) esp_wake_deep_sleep(void); diff --git a/components/esp32/include/rom/rtc.h b/components/esp32/include/rom/rtc.h index 665b97c8e..9577119f5 100644 --- a/components/esp32/include/rom/rtc.h +++ b/components/esp32/include/rom/rtc.h @@ -161,7 +161,7 @@ WAKEUP_REASON rtc_get_wakeup_cause(void); * * @param uint32_t start_addr : 0 - 0x7ff for Fast RTC Memory. * - * @param uint32_t crc_len : 0 - 0x7ff, 0 for 1 byte, 0x7ff for 0x800 byte. + * @param uint32_t crc_len : 0 - 0x7ff, 0 for 4 byte, 0x7ff for 0x2000 byte. * * @return uint32_t : CRC32 result */