Merge branch 'bugfix/freertos_define_list_volatile' into 'master'

fix(freertos/idf): Define configLIST_VOLATILE for list elements

Closes IDF-8361

See merge request espressif/esp-idf!27066
This commit is contained in:
Sudeep Mohanty 2023-11-13 16:56:57 +08:00
commit 11109fc386
2 changed files with 5 additions and 2 deletions

View File

@ -2568,8 +2568,7 @@ BaseType_t xTaskResumeAll( void )
* appropriate ready list. */ * appropriate ready list. */
while( listLIST_IS_EMPTY( &xPendingReadyList[ xCurCoreID ] ) == pdFALSE ) while( listLIST_IS_EMPTY( &xPendingReadyList[ xCurCoreID ] ) == pdFALSE )
{ {
/* Note: Add volatile cast (IDF-8361) */ pxTCB = listGET_OWNER_OF_HEAD_ENTRY( ( &xPendingReadyList[ xCurCoreID ] ) ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */
pxTCB = listGET_OWNER_OF_HEAD_ENTRY( ( volatile List_t * ) ( &xPendingReadyList[ xCurCoreID ] ) ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */
listREMOVE_ITEM( &( pxTCB->xEventListItem ) ); listREMOVE_ITEM( &( pxTCB->xEventListItem ) );
portMEMORY_BARRIER(); portMEMORY_BARRIER();
listREMOVE_ITEM( &( pxTCB->xStateListItem ) ); listREMOVE_ITEM( &( pxTCB->xStateListItem ) );

View File

@ -186,6 +186,10 @@
#define configTIMER_TASK_STACK_DEPTH CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH #define configTIMER_TASK_STACK_DEPTH CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH
#define configTIMER_SERVICE_TASK_NAME CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME #define configTIMER_SERVICE_TASK_NAME CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME
/* ------------------------ List --------------------------- */
#define configLIST_VOLATILE volatile /* We define List elements as volatile to prevent the compiler from optimizing out essential code */
/* -------------------- API Includes ----------------------- */ /* -------------------- API Includes ----------------------- */
#if CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY #if CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY