mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-10 04:43:33 +00:00
Merge branch 'feature/freertos_add_valid_core_id_macro' into 'master'
feat(freertos/idf): Add taskVALID_CORE_ID() macro See merge request espressif/esp-idf!27014
This commit is contained in:
@@ -204,6 +204,15 @@ typedef enum
|
||||
#define tskNO_AFFINITY ( ( BaseType_t ) 0x7FFFFFFF )
|
||||
/* Todo: Update tskNO_AFFINITY value to -1 (IDF-7908) */
|
||||
|
||||
/**
|
||||
* Macro to check if an xCoreID value is valid
|
||||
*
|
||||
* @return pdTRUE if valid, pdFALSE otherwise.
|
||||
*
|
||||
* \ingroup Tasks
|
||||
*/
|
||||
#define taskVALID_CORE_ID( xCoreID ) ( ( ( ( ( BaseType_t ) xCoreID ) >= 0 && ( ( BaseType_t ) xCoreID ) < configNUMBER_OF_CORES ) || ( ( ( BaseType_t ) xCoreID ) == tskNO_AFFINITY ) ) ? pdTRUE : pdFALSE )
|
||||
|
||||
/**
|
||||
*
|
||||
* Macro for forcing a context switch.
|
||||
|
@@ -52,9 +52,6 @@
|
||||
|
||||
_Static_assert(portBYTE_ALIGNMENT == 16, "portBYTE_ALIGNMENT must be set to 16");
|
||||
|
||||
_Static_assert(tskNO_AFFINITY == CONFIG_FREERTOS_NO_AFFINITY, "incorrect tskNO_AFFINITY value");
|
||||
|
||||
|
||||
/* ---------------------------------------------------- Variables ------------------------------------------------------
|
||||
* - Various variables used to maintain the FreeRTOS port's state. Used from both port.c and various .S files
|
||||
* - Constant offsets are used by assembly to jump to particular TCB members or a stack area (such as the CPSA). We use
|
||||
|
@@ -969,7 +969,7 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode,
|
||||
|
||||
#if ( configNUMBER_OF_CORES > 1 )
|
||||
/* Check that xCoreID is valid */
|
||||
configASSERT( ( ( xCoreID >= 0 ) && ( xCoreID < configNUMBER_OF_CORES ) ) || ( xCoreID == tskNO_AFFINITY ) );
|
||||
configASSERT( taskVALID_CORE_ID( xCoreID ) == pdTRUE );
|
||||
#else
|
||||
/* Hard code xCoreID to 0 */
|
||||
xCoreID = 0;
|
||||
@@ -2220,9 +2220,9 @@ static BaseType_t prvCreateIdleTasks( void )
|
||||
BaseType_t xReturn = pdPASS;
|
||||
BaseType_t xCoreID;
|
||||
|
||||
#if ( configNUMBER_OF_CORES > 1 )
|
||||
char cIdleName[ configMAX_TASK_NAME_LEN ];
|
||||
#endif /* #if ( configNUMBER_OF_CORES > 1 ) */
|
||||
#if ( configNUMBER_OF_CORES > 1 )
|
||||
char cIdleName[ configMAX_TASK_NAME_LEN ];
|
||||
#endif /* #if ( configNUMBER_OF_CORES > 1 ) */
|
||||
|
||||
/* Add each idle task at the lowest priority. */
|
||||
for( xCoreID = ( BaseType_t ) 0; xCoreID < ( BaseType_t ) configNUMBER_OF_CORES; xCoreID++ )
|
||||
@@ -2328,7 +2328,6 @@ static BaseType_t prvCreateIdleTasks( void )
|
||||
portPRIVILEGE_BIT, /* In effect ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), but tskIDLE_PRIORITY is zero. */
|
||||
&xIdleTaskHandle[ xCoreID ], /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */
|
||||
xCoreID );
|
||||
|
||||
}
|
||||
#endif /* configSUPPORT_STATIC_ALLOCATION */
|
||||
}
|
||||
|
Reference in New Issue
Block a user