diff --git a/components/freertos/port/esp8266/port.c b/components/freertos/port/esp8266/port.c index c18a6b20..89c2da3f 100644 --- a/components/freertos/port/esp8266/port.c +++ b/components/freertos/port/esp8266/port.c @@ -297,9 +297,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); @@ -322,9 +323,10 @@ void IRAM_ATTR vPortETSIntrUnlock(void) REG_WRITE(INT_ENA_WDEV, WDEV_INTEREST_EVENT); } - vPortExitCritical(); REG_WRITE(NMI_INT_ENABLE_REG, regval); + + vPortExitCritical(); } }