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. */
@ -310,6 +314,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

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 )