From: richardbarry Date: Thu, 14 Aug 2008 11:10:46 +0000 (+0000) Subject: Permit no more than two simultaneous occurrences of interrupts adding everything... X-Git-Tag: V5.1.2~240 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=c97c1fedcb5938a6c9f10b9f3bc8b604885bd6d1;p=freertos Permit no more than two simultaneous occurrences of interrupts adding everything to queues instead of tasks. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@456 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- diff --git a/Demo/Common/Minimal/IntQueue.c b/Demo/Common/Minimal/IntQueue.c index 8cc17bc06..2d010d015 100644 --- a/Demo/Common/Minimal/IntQueue.c +++ b/Demo/Common/Minimal/IntQueue.c @@ -274,7 +274,7 @@ static void prvQueueAccessLogError( unsigned portBASE_TYPE uxLine ) 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. More than one task is running this code so we check the parameter value @@ -339,13 +339,29 @@ unsigned portBASE_TYPE uxRxed, ux, uxTask1, uxTask2; if( uxTask1 < intqMIN_ACCEPTABLE_TASK_COUNT ) { /* Only task 2 seemed to log any values. */ - prvQueueAccessLogError( __LINE__ ); + uxErrorCount1++; + if( uxErrorCount1 > 2 ) + { + prvQueueAccessLogError( __LINE__ ); + } + } + else + { + uxErrorCount1 = 0; } if( uxTask2 < intqMIN_ACCEPTABLE_TASK_COUNT ) { /* Only task 1 seemed to log any values. */ - prvQueueAccessLogError( __LINE__ ); + uxErrorCount2++; + if( uxErrorCount2 > 2 ) + { + prvQueueAccessLogError( __LINE__ ); + } + } + else + { + uxErrorCount2 = 0; } /* Clear the array again, ready to start a new cycle. */