Permit no more than two simultaneous occurrences of interrupts adding everything to queues instead of tasks.

pull/4/head
Richard Barry 17 years ago
parent 5116051604
commit 9c2512f54e

@ -274,7 +274,7 @@ static void prvQueueAccessLogError( unsigned portBASE_TYPE uxLine )
static void prvHigherPriorityNormallyEmptyTask( void *pvParameters ) static void prvHigherPriorityNormallyEmptyTask( void *pvParameters )
{ {
unsigned portBASE_TYPE uxRxed, ux, uxTask1, uxTask2; unsigned portBASE_TYPE uxRxed, ux, uxTask1, uxTask2, uxErrorCount1 = 0, uxErrorCount2 = 0;
/* The timer should not be started until after the scheduler has started. /* The timer should not be started until after the scheduler has started.
More than one task is running this code so we check the parameter value More than one task is running this code so we check the parameter value
@ -339,14 +339,30 @@ unsigned portBASE_TYPE uxRxed, ux, uxTask1, uxTask2;
if( uxTask1 < intqMIN_ACCEPTABLE_TASK_COUNT ) if( uxTask1 < intqMIN_ACCEPTABLE_TASK_COUNT )
{ {
/* Only task 2 seemed to log any values. */ /* Only task 2 seemed to log any values. */
uxErrorCount1++;
if( uxErrorCount1 > 2 )
{
prvQueueAccessLogError( __LINE__ ); prvQueueAccessLogError( __LINE__ );
} }
}
else
{
uxErrorCount1 = 0;
}
if( uxTask2 < intqMIN_ACCEPTABLE_TASK_COUNT ) if( uxTask2 < intqMIN_ACCEPTABLE_TASK_COUNT )
{ {
/* Only task 1 seemed to log any values. */ /* Only task 1 seemed to log any values. */
uxErrorCount2++;
if( uxErrorCount2 > 2 )
{
prvQueueAccessLogError( __LINE__ ); prvQueueAccessLogError( __LINE__ );
} }
}
else
{
uxErrorCount2 = 0;
}
/* Clear the array again, ready to start a new cycle. */ /* Clear the array again, ready to start a new cycle. */
memset( ucNormallyEmptyReceivedValues, 0x00, sizeof( ucNormallyEmptyReceivedValues ) ); memset( ucNormallyEmptyReceivedValues, 0x00, sizeof( ucNormallyEmptyReceivedValues ) );

Loading…
Cancel
Save