From: Jeroen Domburg Date: Sun, 16 Apr 2017 15:34:03 +0000 (+0800) Subject: Remove ESP_EARLY_LOGI before bss is initialized; it crashes the CPU X-Git-Tag: v2.1-rc1~183^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=76a4082de7c2dc2ef04541124c0c9fb100e901bb;p=esp-idf Remove ESP_EARLY_LOGI before bss is initialized; it crashes the CPU --- diff --git a/components/esp32/cpu_start.c b/components/esp32/cpu_start.c index c3ef142c6b..85ccc475fc 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