Merge pull request #630 from ourairquality/freertos-r2541

FreeRTOS: update to svn r2541.
This commit is contained in:
Ruslan V. Uss 2018-06-17 12:19:14 +05:00 committed by GitHub
commit 14c9e8ae6a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 20 deletions

View file

@ -1129,13 +1129,14 @@ typedef struct xSTATIC_TIMER
StaticListItem_t xDummy2; StaticListItem_t xDummy2;
TickType_t xDummy3; TickType_t xDummy3;
UBaseType_t uxDummy4; UBaseType_t uxDummy4;
void *pvDummy5[ 2 ]; void *pvDummy5;
TaskFunction_t pvDummy6;
#if( configUSE_TRACE_FACILITY == 1 ) #if( configUSE_TRACE_FACILITY == 1 )
UBaseType_t uxDummy6; UBaseType_t uxDummy7;
#endif #endif
#if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
uint8_t ucDummy7; uint8_t ucDummy8;
#endif #endif
} StaticTimer_t; } StaticTimer_t;

View file

@ -200,7 +200,7 @@ static size_t prvWriteMessageToBuffer( StreamBuffer_t * const pxStreamBuffer,
static size_t prvReadBytesFromBuffer( StreamBuffer_t *pxStreamBuffer, static size_t prvReadBytesFromBuffer( StreamBuffer_t *pxStreamBuffer,
uint8_t *pucData, uint8_t *pucData,
size_t xMaxCount, size_t xMaxCount,
size_t xBytesAvailable ); PRIVILEGED_FUNCTION size_t xBytesAvailable ) PRIVILEGED_FUNCTION;
/* /*
* Called by both pxStreamBufferCreate() and pxStreamBufferCreateStatic() to * Called by both pxStreamBufferCreate() and pxStreamBufferCreateStatic() to

View file

@ -1364,11 +1364,30 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB )
else if( pxStateList == &xSuspendedTaskList ) else if( pxStateList == &xSuspendedTaskList )
{ {
/* The task being queried is referenced from the suspended /* The task being queried is referenced from the suspended
list. Is it genuinely suspended or is it block list. Is it genuinely suspended or is it blocked
indefinitely? */ indefinitely? */
if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL ) if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL )
{ {
eReturn = eSuspended; #if( configUSE_TASK_NOTIFICATIONS == 1 )
{
/* The task does not appear on the event list item of
and of the RTOS objects, but could still be in the
blocked state if it is waiting on its notification
rather than waiting on an object. */
if( pxTCB->ucNotifyState == taskWAITING_NOTIFICATION )
{
eReturn = eBlocked;
}
else
{
eReturn = eSuspended;
}
}
#else
{
eReturn = eSuspended;
}
#endif
} }
else else
{ {
@ -4772,13 +4791,11 @@ TickType_t uxReturn;
{ {
*pxHigherPriorityTaskWoken = pdTRUE; *pxHigherPriorityTaskWoken = pdTRUE;
} }
else
{ /* Mark that a yield is pending in case the user is not
/* Mark that a yield is pending in case the user is not using the "xHigherPriorityTaskWoken" parameter to an ISR
using the "xHigherPriorityTaskWoken" parameter to an ISR safe FreeRTOS function. */
safe FreeRTOS function. */ xYieldPending = pdTRUE;
xYieldPending = pdTRUE;
}
} }
else else
{ {
@ -4862,13 +4879,11 @@ TickType_t uxReturn;
{ {
*pxHigherPriorityTaskWoken = pdTRUE; *pxHigherPriorityTaskWoken = pdTRUE;
} }
else
{ /* Mark that a yield is pending in case the user is not
/* Mark that a yield is pending in case the user is not using the "xHigherPriorityTaskWoken" parameter in an ISR
using the "xHigherPriorityTaskWoken" parameter in an ISR safe FreeRTOS function. */
safe FreeRTOS function. */ xYieldPending = pdTRUE;
xYieldPending = pdTRUE;
}
} }
else else
{ {