From 76a4082de7c2dc2ef04541124c0c9fb100e901bb Mon Sep 17 00:00:00 2001 From: Jeroen Domburg Date: Sun, 16 Apr 2017 23:34:03 +0800 Subject: [PATCH] Remove ESP_EARLY_LOGI before bss is initialized; it crashes the CPU --- components/esp32/cpu_start.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/esp32/cpu_start.c b/components/esp32/cpu_start.c index c3ef142c6..85ccc475f 100644 --- a/components/esp32/cpu_start.c +++ b/components/esp32/cpu_start.c @@ -111,6 +111,7 @@ void IRAM_ATTR call_start_cpu0() #if !CONFIG_FREERTOS_UNICORE rst_reas[1] = rtc_get_reset_reason(1); #endif + // from panic handler we can be reset by RWDT or TG0WDT if (rst_reas[0] == RTCWDT_SYS_RESET || rst_reas[0] == TG0WDT_SYS_RESET #if !CONFIG_FREERTOS_UNICORE @@ -118,10 +119,10 @@ void IRAM_ATTR call_start_cpu0() #endif ) { // stop wdt in case of any - ESP_EARLY_LOGI(TAG, "Stop panic WDT"); esp_panic_wdt_stop(); } + //Clear BSS. Please do not attempt to do any complex stuff (like early logging) before this. memset(&_bss_start, 0, (&_bss_end - &_bss_start) * sizeof(_bss_start)); /* Unless waking from deep sleep (implying RTC memory is intact), clear RTC bss */ @@ -129,7 +130,6 @@ void IRAM_ATTR call_start_cpu0() memset(&_rtc_bss_start, 0, (&_rtc_bss_end - &_rtc_bss_start) * sizeof(_rtc_bss_start)); } - ESP_EARLY_LOGI(TAG, "Pro cpu up."); #if !CONFIG_FREERTOS_UNICORE