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 );
|
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 )
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 )
|
||||||
|
|
Loading…
Reference in a new issue