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 );
( *pulCounter )++;
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();
}
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/* Resume the continuous count task and do it all again. */
vTaskResume( xContinuousIncrementHandle );
}
@ -421,6 +429,10 @@ portBASE_TYPE xGotValue;
}
xTaskResumeAll();
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
} while( xGotValue == pdFALSE );
if( ulReceivedValue != ulExpectedValue )

View file

@ -241,7 +241,9 @@ portBASE_TYPE xDummy = 0;
xTaskResumeAll();
prvCheckTaskCounters( evtLOWEST_PRIORITY_INDEX, 1 );
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/* Do the same basic test another few times - selectively suspending
and resuming tasks and each time calling prvCheckTaskCounters() passing
@ -267,7 +269,9 @@ portBASE_TYPE xDummy = 0;
prvCheckTaskCounters( evtHIGHEST_PRIORITY_INDEX_1, 1 );
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/* Now a slight change, first suspend all tasks. */
@ -310,6 +314,10 @@ portBASE_TYPE xDummy = 0;
}
}
xTaskResumeAll();
#if configUSE_PREEMPTION == 0
taskYIELD();
#endif
/* 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