From be24e32da99de2844a221c8ba0372282e4513164 Mon Sep 17 00:00:00 2001 From: KonstantinKondrashov Date: Mon, 18 Nov 2019 21:53:46 +0800 Subject: [PATCH] esp32: Fix a wrong reset of the wdt feed bit There was an error with wrong using FEED: WRITE_PERI_REG(RTC_CNTL_WDTFEED_REG, 1) - wrong [0 bit] REG_SET_BIT(RTC_CNTL_WDTFEED_REG, RTC_CNTL_WDT_FEED) - right. [31 bit] Closes: https://github.com/espressif/esp-idf/issues/4295 --- components/esp32/sleep_modes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/esp32/sleep_modes.c b/components/esp32/sleep_modes.c index 80162de1ef..6419076967 100644 --- a/components/esp32/sleep_modes.c +++ b/components/esp32/sleep_modes.c @@ -241,7 +241,7 @@ void IRAM_ATTR esp_deep_sleep_start() static void rtc_wdt_enable(int time_ms) { WRITE_PERI_REG(RTC_CNTL_WDTWPROTECT_REG, RTC_CNTL_WDT_WKEY_VALUE); - WRITE_PERI_REG(RTC_CNTL_WDTFEED_REG, 1); + REG_SET_BIT(RTC_CNTL_WDTFEED_REG, RTC_CNTL_WDT_FEED); REG_SET_FIELD(RTC_CNTL_WDTCONFIG0_REG, RTC_CNTL_WDT_SYS_RESET_LENGTH, 7); REG_SET_FIELD(RTC_CNTL_WDTCONFIG0_REG, RTC_CNTL_WDT_CPU_RESET_LENGTH, 7); REG_SET_FIELD(RTC_CNTL_WDTCONFIG0_REG, RTC_CNTL_WDT_STG0, RTC_WDT_STG_SEL_RESET_RTC); @@ -253,7 +253,7 @@ static void rtc_wdt_enable(int time_ms) static void rtc_wdt_disable() { WRITE_PERI_REG(RTC_CNTL_WDTWPROTECT_REG, RTC_CNTL_WDT_WKEY_VALUE); - WRITE_PERI_REG(RTC_CNTL_WDTFEED_REG, 1); + REG_SET_BIT(RTC_CNTL_WDTFEED_REG, RTC_CNTL_WDT_FEED); REG_SET_FIELD(RTC_CNTL_WDTCONFIG0_REG, RTC_CNTL_WDT_STG0, RTC_WDT_STG_SEL_OFF); REG_CLR_BIT(RTC_CNTL_WDTCONFIG0_REG, RTC_CNTL_WDT_EN); WRITE_PERI_REG(RTC_CNTL_WDTWPROTECT_REG, 0);