Przeglądaj źródła

system: disable interrupts in esp_restart_noos_dig

Ivan Grokhotkov 3 lat temu
rodzic
commit
0c9ac7df6d
1 zmienionych plików z 9 dodań i 0 usunięć
  1. 9 0
      components/esp_system/port/esp_system_chip.c

+ 9 - 0
components/esp_system/port/esp_system_chip.c

@@ -16,6 +16,15 @@
 
 void IRAM_ATTR esp_restart_noos_dig(void)
 {
+    // In case any of the calls below results in re-enabling of interrupts
+    // (for example, by entering a critical section), disable all the
+    // interrupts (e.g. from watchdogs) here.
+#ifdef CONFIG_IDF_TARGET_ARCH_RISCV
+    rv_utils_intr_global_disable();
+#else
+    xt_ints_off(0xFFFFFFFF);
+#endif
+
     // make sure all the panic handler output is sent from UART FIFO
     if (CONFIG_ESP_CONSOLE_UART_NUM >= 0) {
         esp_rom_uart_tx_wait_idle(CONFIG_ESP_CONSOLE_UART_NUM);