diff --git a/components/esp_event/test/CMakeLists.txt b/components/esp_event/test/CMakeLists.txt index 44e4b7ec84..b6690eb027 100644 --- a/components/esp_event/test/CMakeLists.txt +++ b/components/esp_event/test/CMakeLists.txt @@ -1,3 +1,8 @@ idf_component_register(SRC_DIRS "." PRIV_INCLUDE_DIRS . ../private_include PRIV_REQUIRES cmock test_utils esp_event driver) + +if(CONFIG_IDF_TARGET_ARCH_RISCV) + # Temporary workaround for a linker issue on RISC-V that should be resolved in binutils 2.35 (internal ref: GCC-101) + target_compile_options(${COMPONENT_LIB} PRIVATE -mno-relax) +endif() diff --git a/components/freertos/event_groups.c b/components/freertos/event_groups.c index 9467d7c9c9..f1e1b362e6 100644 --- a/components/freertos/event_groups.c +++ b/components/freertos/event_groups.c @@ -198,7 +198,6 @@ EventBits_t xEventGroupSync( EventGroupHandle_t xEventGroup, const EventBits_t u { EventBits_t uxOriginalBitValue, uxReturn; EventGroup_t *pxEventBits = xEventGroup; -BaseType_t xAlreadyYielded = pdFALSE; BaseType_t xTimeoutOccurred = pdFALSE; configASSERT( ( uxBitsToWaitFor & eventEVENT_BITS_CONTROL_BYTES ) == 0 ); @@ -257,14 +256,7 @@ BaseType_t xTimeoutOccurred = pdFALSE; if( xTicksToWait != ( TickType_t ) 0 ) { - if( xAlreadyYielded == pdFALSE ) - { - portYIELD_WITHIN_API(); - } - else - { - mtCOVERAGE_TEST_MARKER(); - } + portYIELD_WITHIN_API(); /* The task blocked to wait for its required bits to be set - at this point either the required bits were set or the block time expired. If diff --git a/components/freertos/tasks.c b/components/freertos/tasks.c index 7476014f2a..585224ca9a 100644 --- a/components/freertos/tasks.c +++ b/components/freertos/tasks.c @@ -1406,7 +1406,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB, TaskFunction_t pxTaskCode void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement ) { TickType_t xTimeToWake; - BaseType_t xAlreadyYielded = pdFALSE, xShouldDelay = pdFALSE; + BaseType_t xShouldDelay = pdFALSE; configASSERT( pxPreviousWakeTime ); configASSERT( ( xTimeIncrement > 0U ) ); @@ -1470,16 +1470,8 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB, TaskFunction_t pxTaskCode } taskEXIT_CRITICAL( &xTaskQueueMutex ); - /* Force a reschedule if xTaskResumeAll has not already done so, we may - have put ourselves to sleep. */ - if( xAlreadyYielded == pdFALSE ) - { - portYIELD_WITHIN_API(); - } - else - { - mtCOVERAGE_TEST_MARKER(); - } + /* Force a reschedule, we may have put ourselves to sleep. */ + portYIELD_WITHIN_API(); } #endif /* INCLUDE_vTaskDelayUntil */ @@ -1489,8 +1481,6 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB, TaskFunction_t pxTaskCode void vTaskDelay( const TickType_t xTicksToDelay ) { - BaseType_t xAlreadyYielded = pdFALSE; - /* A delay time of zero just forces a reschedule. */ if( xTicksToDelay > ( TickType_t ) 0U ) { @@ -1515,18 +1505,11 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB, TaskFunction_t pxTaskCode mtCOVERAGE_TEST_MARKER(); } - /* Force a reschedule if xTaskResumeAll has not already done so, we may - have put ourselves to sleep. */ - if( xAlreadyYielded == pdFALSE ) - { - portYIELD_WITHIN_API(); - } - else - { - mtCOVERAGE_TEST_MARKER(); - } + /* Force a reschedule, we may have put ourselves to sleep. */ + portYIELD_WITHIN_API(); } + #endif /* INCLUDE_vTaskDelay */ /*-----------------------------------------------------------*/