WIN32 simulator port: Allow the configTICK_RATE_HZ to be increased without making the sleep time in the simulated timer peripheral too small.

This commit is contained in:
Richard Barry 2011-02-14 13:49:50 +00:00
parent 412c2cc9a7
commit 58a700b8f7

View File

@ -129,6 +129,8 @@ extern void *pxCurrentTCB;
static DWORD WINAPI prvSimulatedPeripheralTimer( LPVOID lpParameter )
{
portTickType xMinimumWindowsBlockTime = ( portTickType ) 20;
/* Just to prevent compiler warnings. */
( void ) lpParameter;
@ -140,8 +142,15 @@ static DWORD WINAPI prvSimulatedPeripheralTimer( LPVOID lpParameter )
time, not the time that Sleep() is called. It is done this way to
prevent overruns in this very non real time simulated/emulated
environment. */
Sleep( portTICK_RATE_MS );
if( portTICK_RATE_MS < xMinimumWindowsBlockTime )
{
Sleep( xMinimumWindowsBlockTime );
}
else
{
Sleep( portTICK_RATE_MS );
}
WaitForSingleObject( pvInterruptEventMutex, INFINITE );
/* The timer has expired, generate the simulated tick event. */