mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
Update to allow use with the cooperative scheduler.
This commit is contained in:
parent
2ee98beba2
commit
e018422743
|
@ -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 )
|
||||
|
|
|
@ -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. */
|
||||
|
@ -311,6 +315,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
|
||||
removed three items from the queue. */
|
||||
|
|
|
@ -157,6 +157,12 @@ portTickType xTimeToBlock, xBlockedTime;
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
#if configUSE_PREEMPTION == 0
|
||||
taskYIELD();
|
||||
#endif
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
Test 2
|
||||
|
||||
|
@ -208,6 +214,10 @@ portTickType xTimeToBlock, xBlockedTime;
|
|||
}
|
||||
}
|
||||
|
||||
#if configUSE_PREEMPTION == 0
|
||||
taskYIELD();
|
||||
#endif
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
Test 3
|
||||
|
@ -283,6 +293,9 @@ portTickType xTimeToBlock, xBlockedTime;
|
|||
vTaskDelay( bktSHORT_WAIT );
|
||||
xRunIndicator = 0;
|
||||
|
||||
#if configUSE_PREEMPTION == 0
|
||||
taskYIELD();
|
||||
#endif
|
||||
|
||||
/*********************************************************************
|
||||
Test 4
|
||||
|
|
|
@ -146,6 +146,10 @@ portTickType xTimeToBlock, xBlockedTime;
|
|||
}
|
||||
}
|
||||
|
||||
#if configUSE_PREEMPTION == 0
|
||||
taskYIELD();
|
||||
#endif
|
||||
|
||||
/*********************************************************************
|
||||
Test 2
|
||||
|
||||
|
@ -197,6 +201,9 @@ portTickType xTimeToBlock, xBlockedTime;
|
|||
}
|
||||
}
|
||||
|
||||
#if configUSE_PREEMPTION == 0
|
||||
taskYIELD();
|
||||
#endif
|
||||
|
||||
/*********************************************************************
|
||||
Test 3
|
||||
|
|
|
@ -159,6 +159,10 @@ unsigned portBASE_TYPE ux;
|
|||
( *puxLoopCounter )++;
|
||||
}
|
||||
|
||||
#if configUSE_PREEMPTION == 0
|
||||
taskYIELD();
|
||||
#endif
|
||||
|
||||
/* If the semaphore count is zero then we should not be able to 'take'
|
||||
the semaphore. */
|
||||
if( xSemaphoreTake( xSemaphore, countDONT_BLOCK ) == pdPASS )
|
||||
|
@ -191,6 +195,10 @@ unsigned portBASE_TYPE ux;
|
|||
( *puxLoopCounter )++;
|
||||
}
|
||||
|
||||
#if configUSE_PREEMPTION == 0
|
||||
taskYIELD();
|
||||
#endif
|
||||
|
||||
/* If the semaphore count is at its maximum then we should not be able to
|
||||
'give' the semaphore. */
|
||||
if( xSemaphoreGive( xSemaphore ) == pdPASS )
|
||||
|
|
Loading…
Reference in a new issue