Update to allow use with the cooperative scheduler.

This commit is contained in:
Richard Barry 2008-01-27 20:25:36 +00:00
parent 2ee98beba2
commit e018422743
5 changed files with 50 additions and 2 deletions

View file

@ -251,6 +251,10 @@ unsigned portBASE_TYPE uxOurPriority;
vTaskPrioritySet( NULL, uxOurPriority + 1 ); vTaskPrioritySet( NULL, uxOurPriority + 1 );
( *pulCounter )++; ( *pulCounter )++;
vTaskPrioritySet( NULL, uxOurPriority ); vTaskPrioritySet( NULL, uxOurPriority );
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
} }
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -342,6 +346,10 @@ const portCHAR * const pcTaskFailMsg = "Priority manipulation Task Failed\r\n";
portEXIT_CRITICAL(); portEXIT_CRITICAL();
} }
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/* Resume the continuous count task and do it all again. */ /* Resume the continuous count task and do it all again. */
vTaskResume( xContinuousIncrementHandle ); vTaskResume( xContinuousIncrementHandle );
} }
@ -421,6 +429,10 @@ portBASE_TYPE xGotValue;
} }
xTaskResumeAll(); xTaskResumeAll();
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
} while( xGotValue == pdFALSE ); } while( xGotValue == pdFALSE );
if( ulReceivedValue != ulExpectedValue ) if( ulReceivedValue != ulExpectedValue )

View file

@ -241,7 +241,9 @@ portBASE_TYPE xDummy = 0;
xTaskResumeAll(); xTaskResumeAll();
prvCheckTaskCounters( evtLOWEST_PRIORITY_INDEX, 1 ); prvCheckTaskCounters( evtLOWEST_PRIORITY_INDEX, 1 );
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/* Do the same basic test another few times - selectively suspending /* Do the same basic test another few times - selectively suspending
and resuming tasks and each time calling prvCheckTaskCounters() passing and resuming tasks and each time calling prvCheckTaskCounters() passing
@ -267,7 +269,9 @@ portBASE_TYPE xDummy = 0;
prvCheckTaskCounters( evtHIGHEST_PRIORITY_INDEX_1, 1 ); prvCheckTaskCounters( evtHIGHEST_PRIORITY_INDEX_1, 1 );
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/* Now a slight change, first suspend all tasks. */ /* Now a slight change, first suspend all tasks. */
@ -311,6 +315,10 @@ portBASE_TYPE xDummy = 0;
} }
xTaskResumeAll(); xTaskResumeAll();
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/* We should have been preempted by resuming the scheduler - so by the /* We should have been preempted by resuming the scheduler - so by the
time we are running again we expect the high priority task to have time we are running again we expect the high priority task to have
removed three items from the queue. */ removed three items from the queue. */

View file

@ -157,6 +157,12 @@ portTickType xTimeToBlock, xBlockedTime;
} }
} }
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/********************************************************************* /*********************************************************************
Test 2 Test 2
@ -208,6 +214,10 @@ portTickType xTimeToBlock, xBlockedTime;
} }
} }
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/********************************************************************* /*********************************************************************
Test 3 Test 3
@ -283,6 +293,9 @@ portTickType xTimeToBlock, xBlockedTime;
vTaskDelay( bktSHORT_WAIT ); vTaskDelay( bktSHORT_WAIT );
xRunIndicator = 0; xRunIndicator = 0;
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/********************************************************************* /*********************************************************************
Test 4 Test 4

View file

@ -146,6 +146,10 @@ portTickType xTimeToBlock, xBlockedTime;
} }
} }
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/********************************************************************* /*********************************************************************
Test 2 Test 2
@ -197,6 +201,9 @@ portTickType xTimeToBlock, xBlockedTime;
} }
} }
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/********************************************************************* /*********************************************************************
Test 3 Test 3

View file

@ -159,6 +159,10 @@ unsigned portBASE_TYPE ux;
( *puxLoopCounter )++; ( *puxLoopCounter )++;
} }
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/* If the semaphore count is zero then we should not be able to 'take' /* If the semaphore count is zero then we should not be able to 'take'
the semaphore. */ the semaphore. */
if( xSemaphoreTake( xSemaphore, countDONT_BLOCK ) == pdPASS ) if( xSemaphoreTake( xSemaphore, countDONT_BLOCK ) == pdPASS )
@ -191,6 +195,10 @@ unsigned portBASE_TYPE ux;
( *puxLoopCounter )++; ( *puxLoopCounter )++;
} }
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/* If the semaphore count is at its maximum then we should not be able to /* If the semaphore count is at its maximum then we should not be able to
'give' the semaphore. */ 'give' the semaphore. */
if( xSemaphoreGive( xSemaphore ) == pdPASS ) if( xSemaphoreGive( xSemaphore ) == pdPASS )