@ -40,7 +40,7 @@
FreeRTOS WEB site .
1 tab = = 4 spaces !
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* Having a problem ? Start by reading the FAQ " My application does *
@ -50,17 +50,17 @@
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
http : //www.FreeRTOS.org - Documentation, training, latest information,
http : //www.FreeRTOS.org - Documentation, training, latest information,
license and contact details .
http : //www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
including FreeRTOS + Trace - an indispensable productivity tool .
Real Time Engineers ltd license FreeRTOS to High Integrity Systems , who sell
the code with commercial support , indemnification , and middleware , under
Real Time Engineers ltd license FreeRTOS to High Integrity Systems , who sell
the code with commercial support , indemnification , and middleware , under
the OpenRTOS brand : http : //www.OpenRTOS.com. High Integrity Systems also
provide a safety engineered and independently SIL3 certified version under
provide a safety engineered and independently SIL3 certified version under
the SafeRTOS brand : http : //www.SafeRTOS.com.
*/
@ -118,9 +118,9 @@ PRIVILEGED_DATA static xList *pxOverflowTimerList;
PRIVILEGED_DATA static xQueueHandle xTimerQueue = NULL ;
# if ( INCLUDE_xTimerGetTimerDaemonTaskHandle == 1 )
PRIVILEGED_DATA static xTaskHandle xTimerTaskHandle = NULL ;
# endif
/*-----------------------------------------------------------*/
@ -200,7 +200,7 @@ portBASE_TYPE xReturn = pdFAIL;
{
/* Create the timer task, storing its handle in xTimerTaskHandle so
it can be returned by the xTimerGetTimerDaemonTaskHandle ( ) function . */
xReturn = xTaskCreate ( prvTimerTask , ( const signed char * ) " Tmr Svc " , ( unsigned short ) configTIMER_TASK_STACK_DEPTH , NULL , ( ( unsigned portBASE_TYPE ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT , & xTimerTaskHandle ) ;
xReturn = xTaskCreate ( prvTimerTask , ( const signed char * ) " Tmr Svc " , ( unsigned short ) configTIMER_TASK_STACK_DEPTH , NULL , ( ( unsigned portBASE_TYPE ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT , & xTimerTaskHandle ) ;
}
# else
{
@ -233,7 +233,7 @@ xTIMER *pxNewTimer;
/* Ensure the infrastructure used by the timer service task has been
created / initialised . */
prvCheckForValidListAndQueue ( ) ;
/* Initialise the timer structure members using the function parameters. */
pxNewTimer - > pcTimerName = pcTimerName ;
pxNewTimer - > xTimerPeriodInTicks = xTimerPeriodInTicks ;
@ -241,7 +241,7 @@ xTIMER *pxNewTimer;
pxNewTimer - > pvTimerID = pvTimerID ;
pxNewTimer - > pxCallbackFunction = pxCallbackFunction ;
vListInitialiseItem ( & ( pxNewTimer - > xTimerListItem ) ) ;
traceTIMER_CREATE ( pxNewTimer ) ;
}
else
@ -249,7 +249,7 @@ xTIMER *pxNewTimer;
traceTIMER_CREATE_FAILED ( ) ;
}
}
return ( xTimerHandle ) pxNewTimer ;
}
/*-----------------------------------------------------------*/
@ -283,10 +283,10 @@ xTIMER_MESSAGE xMessage;
{
xReturn = xQueueSendToBackFromISR ( xTimerQueue , & xMessage , pxHigherPriorityTaskWoken ) ;
}
traceTIMER_COMMAND_SEND ( xTimer , xCommandID , xOptionalValue , xReturn ) ;
}
return xReturn ;
}
/*-----------------------------------------------------------*/
@ -300,7 +300,7 @@ xTIMER_MESSAGE xMessage;
configASSERT ( ( xTimerTaskHandle ! = NULL ) ) ;
return xTimerTaskHandle ;
}
# endif
/*-----------------------------------------------------------*/
@ -357,9 +357,9 @@ portBASE_TYPE xListWasEmpty;
/* If a timer has expired, process it. Otherwise, block this task
until either a timer does expire , or a command is received . */
prvProcessTimerOrBlockTask ( xNextExpireTime , xListWasEmpty ) ;
/* Empty the command queue. */
prvProcessReceivedCommands ( ) ;
prvProcessReceivedCommands ( ) ;
}
}
/*-----------------------------------------------------------*/
@ -445,7 +445,7 @@ portTickType xTimeNow;
PRIVILEGED_DATA static portTickType xLastTime = ( portTickType ) 0U ;
xTimeNow = xTaskGetTickCount ( ) ;
if ( xTimeNow < xLastTime )
{
prvSwitchTimerLists ( xLastTime ) ;
@ -455,9 +455,9 @@ PRIVILEGED_DATA static portTickType xLastTime = ( portTickType ) 0U;
{
* pxTimerListsWereSwitched = pdFALSE ;
}
xLastTime = xTimeNow ;
return xTimeNow ;
}
/*-----------------------------------------------------------*/
@ -468,7 +468,7 @@ portBASE_TYPE xProcessTimerNow = pdFALSE;
listSET_LIST_ITEM_VALUE ( & ( pxTimer - > xTimerListItem ) , xNextExpiryTime ) ;
listSET_LIST_ITEM_OWNER ( & ( pxTimer - > xTimerListItem ) , pxTimer ) ;
if ( xNextExpiryTime < = xTimeNow )
{
/* Has the expiry time elapsed between the command to start/reset a
@ -531,10 +531,10 @@ portTickType xTimeNow;
}
traceTIMER_COMMAND_RECEIVED ( pxTimer , xMessage . xMessageID , xMessage . xMessageValue ) ;
switch ( xMessage . xMessageID )
{
case tmrCOMMAND_START :
case tmrCOMMAND_START :
/* Start or restart a timer. */
if ( prvInsertTimerInActiveList ( pxTimer , xMessage . xMessageValue + pxTimer - > xTimerPeriodInTicks , xTimeNow , xMessage . xMessageValue ) = = pdTRUE )
{
@ -551,7 +551,7 @@ portTickType xTimeNow;
}
break ;
case tmrCOMMAND_STOP :
case tmrCOMMAND_STOP :
/* The timer has already been removed from the active list.
There is nothing to do here . */
break ;
@ -568,7 +568,7 @@ portTickType xTimeNow;
vPortFree ( pxTimer ) ;
break ;
default :
default :
/* Don't expect to get here. */
break ;
}
@ -585,7 +585,7 @@ portBASE_TYPE xResult;
/* Remove compiler warnings if configASSERT() is not defined. */
( void ) xLastTime ;
/* The tick count has overflowed. The timer lists must be switched.
If there are any timers still referenced from the current timer list
then they must have expired and should be processed before the lists