diff --git a/components/esp32/cache_err_int.c b/components/esp32/cache_err_int.c index 30b294848..4b2d823f1 100644 --- a/components/esp32/cache_err_int.c +++ b/components/esp32/cache_err_int.c @@ -72,7 +72,6 @@ void esp_cache_err_int_init(void) int IRAM_ATTR esp_cache_err_get_cpuid(void) { - esp_dport_access_int_pause(); const uint32_t pro_mask = DPORT_PRO_CPU_DISABLED_CACHE_IA_DRAM1 | DPORT_PRO_CPU_DISABLED_CACHE_IA_DROM0 | diff --git a/components/esp32/panic.c b/components/esp32/panic.c index a6f532b38..a9dafe197 100644 --- a/components/esp32/panic.c +++ b/components/esp32/panic.c @@ -642,7 +642,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