From 128bb77c5acd661c7ac14d72f2c5ef38d1e66ddc Mon Sep 17 00:00:00 2001 From: Jeroen Domburg Date: Mon, 5 Sep 2016 11:58:40 +0800 Subject: [PATCH] Fix prev code to not crash horribly when scheduler is not running yet --- components/freertos/tasks.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 {