|
|
|
@ -172,7 +172,7 @@ static unsigned portBASE_TYPE uxHighPriorityLoops1 = 0, uxHighPriorityLoops2 = 0
|
|
|
|
|
/* Any unexpected behaviour sets xErrorStatus to fail and log the line that
|
|
|
|
|
caused the error in xErrorLine. */
|
|
|
|
|
static portBASE_TYPE xErrorStatus = pdPASS;
|
|
|
|
|
static unsigned portBASE_TYPE xErrorLine = ( unsigned portBASE_TYPE ) 0;
|
|
|
|
|
static volatile unsigned portBASE_TYPE xErrorLine = ( unsigned portBASE_TYPE ) 0;
|
|
|
|
|
|
|
|
|
|
/* Used for sequencing between tasks. */
|
|
|
|
|
static portBASE_TYPE xWasSuspended = pdFALSE;
|
|
|
|
@ -392,14 +392,13 @@ unsigned portBASE_TYPE uxRxed, ux, uxTask1, uxTask2, uxErrorCount1 = 0, uxErrorC
|
|
|
|
|
static void prvLowerPriorityNormallyEmptyTask( void *pvParameters )
|
|
|
|
|
{
|
|
|
|
|
unsigned portBASE_TYPE uxValue, uxRxed;
|
|
|
|
|
portBASE_TYPE xQueueStatus;
|
|
|
|
|
|
|
|
|
|
/* The parameters are not being used so avoid compiler warnings. */
|
|
|
|
|
( void ) pvParameters;
|
|
|
|
|
|
|
|
|
|
for( ;; )
|
|
|
|
|
{
|
|
|
|
|
if( ( xQueueStatus = xQueueReceive( xNormallyEmptyQueue, &uxRxed, intqONE_TICK_DELAY ) ) != errQUEUE_EMPTY )
|
|
|
|
|
if( xQueueReceive( xNormallyEmptyQueue, &uxRxed, intqONE_TICK_DELAY ) != errQUEUE_EMPTY )
|
|
|
|
|
{
|
|
|
|
|
/* We should only obtain a value when the high priority task is
|
|
|
|
|
suspended. */
|
|
|
|
@ -441,7 +440,6 @@ portBASE_TYPE xQueueStatus;
|
|
|
|
|
static void prv1stHigherPriorityNormallyFullTask( void *pvParameters )
|
|
|
|
|
{
|
|
|
|
|
unsigned portBASE_TYPE uxValueToTx, ux;
|
|
|
|
|
portBASE_TYPE xQueueStatus;
|
|
|
|
|
|
|
|
|
|
/* The parameters are not being used so avoid compiler warnings. */
|
|
|
|
|
( void ) pvParameters;
|
|
|
|
@ -469,7 +467,7 @@ portBASE_TYPE xQueueStatus;
|
|
|
|
|
}
|
|
|
|
|
portEXIT_CRITICAL();
|
|
|
|
|
|
|
|
|
|
if( ( xQueueStatus = xQueueSend( xNormallyFullQueue, &uxValueToTx, intqSHORT_DELAY ) ) != pdPASS )
|
|
|
|
|
if( xQueueSend( xNormallyFullQueue, &uxValueToTx, intqSHORT_DELAY ) != pdPASS )
|
|
|
|
|
{
|
|
|
|
|
/* intqHIGH_PRIORITY_TASK2 is never suspended so we would not
|
|
|
|
|
expect it to ever time out. */
|
|
|
|
@ -531,7 +529,6 @@ portBASE_TYPE xQueueStatus;
|
|
|
|
|
static void prv2ndHigherPriorityNormallyFullTask( void *pvParameters )
|
|
|
|
|
{
|
|
|
|
|
unsigned portBASE_TYPE uxValueToTx, ux;
|
|
|
|
|
portBASE_TYPE xQueueStatus;
|
|
|
|
|
|
|
|
|
|
/* The parameters are not being used so avoid compiler warnings. */
|
|
|
|
|
( void ) pvParameters;
|
|
|
|
@ -559,7 +556,7 @@ portBASE_TYPE xQueueStatus;
|
|
|
|
|
}
|
|
|
|
|
portEXIT_CRITICAL();
|
|
|
|
|
|
|
|
|
|
if( ( xQueueStatus = xQueueSend( xNormallyFullQueue, &uxValueToTx, intqSHORT_DELAY ) ) != pdPASS )
|
|
|
|
|
if( xQueueSend( xNormallyFullQueue, &uxValueToTx, intqSHORT_DELAY ) != pdPASS )
|
|
|
|
|
{
|
|
|
|
|
if( xWasSuspended != pdTRUE )
|
|
|
|
|
{
|
|
|
|
@ -578,14 +575,13 @@ portBASE_TYPE xQueueStatus;
|
|
|
|
|
static void prvLowerPriorityNormallyFullTask( void *pvParameters )
|
|
|
|
|
{
|
|
|
|
|
unsigned portBASE_TYPE uxValue, uxTxed = 9999;
|
|
|
|
|
portBASE_TYPE xQueueStatus;
|
|
|
|
|
|
|
|
|
|
/* The parameters are not being used so avoid compiler warnings. */
|
|
|
|
|
( void ) pvParameters;
|
|
|
|
|
|
|
|
|
|
for( ;; )
|
|
|
|
|
{
|
|
|
|
|
if( ( xQueueStatus = xQueueSend( xNormallyFullQueue, &uxTxed, intqONE_TICK_DELAY ) ) != errQUEUE_FULL )
|
|
|
|
|
if( xQueueSend( xNormallyFullQueue, &uxTxed, intqONE_TICK_DELAY ) != errQUEUE_FULL )
|
|
|
|
|
{
|
|
|
|
|
/* We would only expect to succeed when the higher priority task
|
|
|
|
|
is suspended. */
|
|
|
|
|