mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-07-05 11:57:15 -04:00
Compare commits
11 commits
7b73d35554
...
d00fdd8313
Author | SHA1 | Date | |
---|---|---|---|
|
d00fdd8313 | ||
|
8eb906d08d | ||
|
6faa6e2463 | ||
|
2f2b7e500a | ||
|
2f58dd59c3 | ||
|
3176808c81 | ||
|
fd5037e7cc | ||
|
7502d940d9 | ||
|
87094b4dc8 | ||
|
ad7e48a7d5 | ||
|
a6d6d1220f |
|
@ -333,7 +333,6 @@ typedef enum
|
||||||
portGET_SPINLOCK( xCoreID, ( portSPINLOCK_TYPE * ) &( ( pxDataGroup )->xISRSpinlock ) ); \
|
portGET_SPINLOCK( xCoreID, ( portSPINLOCK_TYPE * ) &( ( pxDataGroup )->xISRSpinlock ) ); \
|
||||||
/* Increment the critical nesting count */ \
|
/* Increment the critical nesting count */ \
|
||||||
portINCREMENT_CRITICAL_NESTING_COUNT( xCoreID ); \
|
portINCREMENT_CRITICAL_NESTING_COUNT( xCoreID ); \
|
||||||
/* Return the previous interrupt status */ \
|
|
||||||
uxSavedInterruptStatus; \
|
uxSavedInterruptStatus; \
|
||||||
} )
|
} )
|
||||||
#endif /* #if ( portUSING_GRANULAR_LOCKS == 1 ) */
|
#endif /* #if ( portUSING_GRANULAR_LOCKS == 1 ) */
|
||||||
|
@ -351,7 +350,6 @@ typedef enum
|
||||||
do { \
|
do { \
|
||||||
const BaseType_t xCoreID = ( BaseType_t ) portGET_CORE_ID(); \
|
const BaseType_t xCoreID = ( BaseType_t ) portGET_CORE_ID(); \
|
||||||
configASSERT( portGET_CRITICAL_NESTING_COUNT( xCoreID ) > 0U ); \
|
configASSERT( portGET_CRITICAL_NESTING_COUNT( xCoreID ) > 0U ); \
|
||||||
/* Decrement the critical nesting count */ \
|
|
||||||
portDECREMENT_CRITICAL_NESTING_COUNT( xCoreID ); \
|
portDECREMENT_CRITICAL_NESTING_COUNT( xCoreID ); \
|
||||||
if( portGET_CRITICAL_NESTING_COUNT( xCoreID ) == 0 ) \
|
if( portGET_CRITICAL_NESTING_COUNT( xCoreID ) == 0 ) \
|
||||||
{ \
|
{ \
|
||||||
|
@ -384,9 +382,7 @@ typedef enum
|
||||||
do { \
|
do { \
|
||||||
const BaseType_t xCoreID = ( BaseType_t ) portGET_CORE_ID(); \
|
const BaseType_t xCoreID = ( BaseType_t ) portGET_CORE_ID(); \
|
||||||
configASSERT( portGET_CRITICAL_NESTING_COUNT( xCoreID ) > 0U ); \
|
configASSERT( portGET_CRITICAL_NESTING_COUNT( xCoreID ) > 0U ); \
|
||||||
/* Decrement the critical nesting count */ \
|
|
||||||
portDECREMENT_CRITICAL_NESTING_COUNT( xCoreID ); \
|
portDECREMENT_CRITICAL_NESTING_COUNT( xCoreID ); \
|
||||||
/* Release the ISR spinlock */ \
|
|
||||||
portRELEASE_SPINLOCK( xCoreID, ( portSPINLOCK_TYPE * ) &( pxDataGroup->xISRSpinlock ) ); \
|
portRELEASE_SPINLOCK( xCoreID, ( portSPINLOCK_TYPE * ) &( pxDataGroup->xISRSpinlock ) ); \
|
||||||
if( portGET_CRITICAL_NESTING_COUNT( xCoreID ) == 0 ) \
|
if( portGET_CRITICAL_NESTING_COUNT( xCoreID ) == 0 ) \
|
||||||
{ \
|
{ \
|
||||||
|
|
8
queue.c
8
queue.c
|
@ -339,14 +339,6 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength,
|
||||||
prvUnlockQueue( ( pxQueue ) ); \
|
prvUnlockQueue( ( pxQueue ) ); \
|
||||||
portRELEASE_SPINLOCK( portGET_CORE_ID(), &( pxQueue->xTaskSpinlock ) ); \
|
portRELEASE_SPINLOCK( portGET_CORE_ID(), &( pxQueue->xTaskSpinlock ) ); \
|
||||||
vTaskPreemptionEnable( NULL ); \
|
vTaskPreemptionEnable( NULL ); \
|
||||||
if( ( xYieldAPI ) == pdTRUE ) \
|
|
||||||
{ \
|
|
||||||
taskYIELD_WITHIN_API(); \
|
|
||||||
} \
|
|
||||||
else \
|
|
||||||
{ \
|
|
||||||
mtCOVERAGE_TEST_MARKER(); \
|
|
||||||
} \
|
|
||||||
} while( 0 )
|
} while( 0 )
|
||||||
#else /* #if ( ( portUSING_GRANULAR_LOCKS == 1 ) && ( configNUMBER_OF_CORES > 1 ) ) */
|
#else /* #if ( ( portUSING_GRANULAR_LOCKS == 1 ) && ( configNUMBER_OF_CORES > 1 ) ) */
|
||||||
#define queueLOCK( pxQueue ) \
|
#define queueLOCK( pxQueue ) \
|
||||||
|
|
16
tasks.c
16
tasks.c
|
@ -5406,13 +5406,11 @@ BaseType_t xTaskIncrementTick( void )
|
||||||
* SMP port. */
|
* SMP port. */
|
||||||
configASSERT( portGET_CRITICAL_NESTING_COUNT( xCoreID ) == 0 );
|
configASSERT( portGET_CRITICAL_NESTING_COUNT( xCoreID ) == 0 );
|
||||||
|
|
||||||
/* vTaskSwitchContext() must not be called with a task that has
|
if( uxSchedulerSuspended != ( UBaseType_t ) 0U
|
||||||
* preemption disabled. */
|
#if ( configUSE_TASK_PREEMPTION_DISABLE == 1 )
|
||||||
#if ( configUSE_TASK_PREEMPTION_DISABLE == 1 )
|
|| ( ( taskTASK_IS_RUNNING( pxCurrentTCBs[ xCoreID ] ) ) && ( pxCurrentTCBs[ xCoreID ]->xPreemptionDisable > 0U ) )
|
||||||
configASSERT( pxCurrentTCBs[ xCoreID ]->xPreemptionDisable == 0U );
|
#endif
|
||||||
#endif
|
)
|
||||||
|
|
||||||
if( uxSchedulerSuspended != ( UBaseType_t ) 0U )
|
|
||||||
{
|
{
|
||||||
/* The scheduler is currently suspended or the task
|
/* The scheduler is currently suspended or the task
|
||||||
* has requested to not be preempted - do not allow
|
* has requested to not be preempted - do not allow
|
||||||
|
@ -7500,11 +7498,11 @@ static void prvResetNextTaskUnblockTime( void )
|
||||||
BaseType_t xYieldCurrentTask;
|
BaseType_t xYieldCurrentTask;
|
||||||
|
|
||||||
/* Get the xYieldPending stats inside the critical section. */
|
/* Get the xYieldPending stats inside the critical section. */
|
||||||
#if ( portUSING_GRANULAR_LOCKS == 1 )
|
#if ( configUSE_TASK_PREEMPTION_DISABLE == 1 )
|
||||||
xYieldCurrentTask = xTaskUnlockCanYield();
|
xYieldCurrentTask = xTaskUnlockCanYield();
|
||||||
#else
|
#else
|
||||||
xYieldCurrentTask = xYieldPendings[ xCoreID ];
|
xYieldCurrentTask = xYieldPendings[ xCoreID ];
|
||||||
#endif /* #if ( portUSING_GRANULAR_LOCKS == 1 ) */
|
#endif /* configUSE_TASK_PREEMPTION_DISABLE */
|
||||||
|
|
||||||
kernelRELEASE_ISR_LOCK( xCoreID );
|
kernelRELEASE_ISR_LOCK( xCoreID );
|
||||||
kernelRELEASE_TASK_LOCK( xCoreID );
|
kernelRELEASE_TASK_LOCK( xCoreID );
|
||||||
|
|
Loading…
Reference in a new issue