fix(freertos): disable other task before disable nmi
@@ -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();
}
}
