Explorar o código

Merge branch 'bugfix/panic_cache_err_dig_reset_v4.0' into 'release/v4.0'

esp32: panic: do digital reset if cache error interrupt is set (backport v4.0)

See merge request espressif/esp-idf!7484
Ivan Grokhotkov %!s(int64=6) %!d(string=hai) anos
pai
achega
f5dc81aaae
Modificáronse 2 ficheiros con 1 adicións e 2 borrados
  1. 0 1
      components/esp32/cache_err_int.c
  2. 1 1
      components/esp32/panic.c

+ 0 - 1
components/esp32/cache_err_int.c

@@ -72,7 +72,6 @@ void esp_cache_err_int_init()
 
 int IRAM_ATTR esp_cache_err_get_cpuid()
 {
-    esp_dport_access_int_pause();
     const uint32_t pro_mask =
             DPORT_PRO_CPU_DISABLED_CACHE_IA_DRAM1 |
             DPORT_PRO_CPU_DISABLED_CACHE_IA_DROM0 |

+ 1 - 1
components/esp32/panic.c

@@ -629,7 +629,7 @@ static __attribute__((noreturn)) void commonErrorHandler(XtExcFrame *frame)
     rtc_wdt_disable();
 #if CONFIG_ESP32_PANIC_PRINT_REBOOT || CONFIG_ESP32_PANIC_SILENT_REBOOT
     panicPutStr("Rebooting...\r\n");
-    if (frame->exccause != PANIC_RSN_CACHEERR) {
+    if (esp_cache_err_get_cpuid() == -1) {
         esp_restart_noos();
     } else {
         // The only way to clear invalid cache access interrupt is to reset the digital part