diff --git a/components/freertos/tasks.c b/components/freertos/tasks.c index a7850ba2a..92970b582 100644 --- a/components/freertos/tasks.c +++ b/components/freertos/tasks.c @@ -3761,7 +3761,10 @@ scheduler will re-enable the interrupts instead. */ void vTaskEnterCritical( portMUX_TYPE *mux ) #endif { - portENTER_CRITICAL_NESTED(uxOldInterruptState); + if( xSchedulerRunning != pdFALSE ) + { + portENTER_CRITICAL_NESTED(pxCurrentTCB[ xPortGetCoreID() ]->uxOldInterruptState); + } #ifdef CONFIG_FREERTOS_PORTMUX_DEBUG vPortCPUAcquireMutex( mux, function, line ); #else @@ -3814,7 +3817,7 @@ scheduler will re-enable the interrupts instead. */ if( pxCurrentTCB[ xPortGetCoreID() ]->uxCriticalNesting == 0U ) { - portEXIT_CRITICAL_NESTED(uxOldInterruptState); + portEXIT_CRITICAL_NESTED(pxCurrentTCB[ xPortGetCoreID() ]->uxOldInterruptState); } else {