diff --git a/components/freertos/port/esp8266/port.c b/components/freertos/port/esp8266/port.c index 2dc081e3..91c7cdc0 100644 --- a/components/freertos/port/esp8266/port.c +++ b/components/freertos/port/esp8266/port.c @@ -283,9 +283,10 @@ void IRAM_ATTR vPortETSIntrLock(void) if (NMIIrqIsOn == 0) { uint32_t regval = REG_READ(NMI_INT_ENABLE_REG); + vPortEnterCritical(); + REG_WRITE(NMI_INT_ENABLE_REG, 0); - vPortEnterCritical(); if (!ESP_NMI_IS_CLOSED()) { do { REG_WRITE(INT_ENA_WDEV, WDEV_TSF0_REACH_INT); @@ -308,9 +309,10 @@ void IRAM_ATTR vPortETSIntrUnlock(void) REG_WRITE(INT_ENA_WDEV, WDEV_INTEREST_EVENT); } - vPortExitCritical(); REG_WRITE(NMI_INT_ENABLE_REG, regval); + + vPortExitCritical(); } }