2013-04-05 22:46:56 +02:00
/*
2014-06-10 19:42:11 +02:00
FreeRTOS V8 .0 .1 - Copyright ( C ) 2014 Real Time Engineers Ltd .
2014-03-23 18:44:06 +01:00
All rights reserved
2013-04-23 21:57:50 +02:00
2013-09-05 05:26:23 +02:00
VISIT http : //www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
2013-04-05 22:46:56 +02:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
2013-09-05 05:26:23 +02:00
* FreeRTOS provides completely free yet professionally developed , *
* robust , strictly quality controlled , supported , and cross *
* platform software that has become a de facto standard . *
2013-04-05 22:46:56 +02:00
* *
2013-09-05 05:26:23 +02:00
* Help yourself get started quickly and support the FreeRTOS *
* project by purchasing a FreeRTOS tutorial book , reference *
* manual , or both from : http : //www.FreeRTOS.org/Documentation *
2013-04-05 22:46:56 +02:00
* *
2013-09-05 05:26:23 +02:00
* Thank you ! *
2013-04-05 22:46:56 +02:00
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
This file is part of the FreeRTOS distribution .
FreeRTOS is free software ; you can redistribute it and / or modify it under
the terms of the GNU General Public License ( version 2 ) as published by the
2013-09-05 05:26:23 +02:00
Free Software Foundation > > ! AND MODIFIED BY ! < < the FreeRTOS exception .
2013-04-23 21:57:50 +02:00
2014-06-10 19:42:11 +02:00
> > ! NOTE : The modification to the GPL is included to allow you to ! < <
> > ! distribute a combined work that includes FreeRTOS without being ! < <
> > ! obliged to provide the source code for proprietary components ! < <
> > ! outside of the FreeRTOS kernel . ! < <
2013-04-23 21:57:50 +02:00
FreeRTOS is distributed in the hope that it will be useful , but WITHOUT ANY
WARRANTY ; without even the implied warranty of MERCHANTABILITY or FITNESS
2013-09-05 05:26:23 +02:00
FOR A PARTICULAR PURPOSE . Full license text is available from the following
link : http : //www.freertos.org/a00114.html
2013-04-05 22:46:56 +02:00
1 tab = = 4 spaces !
2013-04-23 21:57:50 +02:00
2013-04-05 22:46:56 +02:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* Having a problem ? Start by reading the FAQ " My application does *
2013-04-23 21:57:50 +02:00
* not run , what could be wrong ? " *
2013-04-05 22:46:56 +02:00
* *
* http : //www.FreeRTOS.org/FAQHelp.html *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2013-09-05 05:26:23 +02:00
http : //www.FreeRTOS.org - Documentation, books, training, latest versions,
2013-04-23 21:57:50 +02:00
license and Real Time Engineers Ltd . contact details .
2013-04-05 22:46:56 +02:00
http : //www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
2013-09-05 05:26:23 +02:00
including FreeRTOS + Trace - an indispensable productivity tool , a DOS
compatible FAT file system , and our tiny thread aware UDP / IP stack .
http : //www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
Integrity Systems to sell under the OpenRTOS brand . Low cost OpenRTOS
licenses offer ticketed support , indemnification and middleware .
http : //www.SafeRTOS.com - High Integrity Systems also provide a safety
engineered and independently SIL3 certified version for use in safety and
2013-04-23 21:57:50 +02:00
mission critical applications that require provable dependability .
2013-09-05 05:26:23 +02:00
1 tab = = 4 spaces !
2013-04-05 22:46:56 +02:00
*/
# ifndef INC_FREERTOS_H
# define INC_FREERTOS_H
/*
* Include the generic headers required for the FreeRTOS port being used .
*/
# include <stddef.h>
2014-03-23 18:44:06 +01:00
/*
* If stdint . h cannot be located then :
* + If using GCC ensure the - nostdint options is * not * being used .
* + Ensure the project ' s include path includes the directory in which your
* compiler stores stdint . h .
* + Set any compiler options necessary for it to support C99 , as technically
* stdint . h is only mandatory with C99 ( FreeRTOS does not require C99 in any
* other way ) .
* + The FreeRTOS download includes a simple stdint . h definition that can be
* used in cases where none is provided by the compiler . The files only
* contains the typedefs required to build FreeRTOS . Read the instructions
* in FreeRTOS / source / stdint . readme for more information .
*/
# include <stdint.h> /* READ COMMENT ABOVE. */
# ifdef __cplusplus
extern " C " {
# endif
2013-04-05 22:46:56 +02:00
/* Basic FreeRTOS definitions. */
# include "projdefs.h"
/* Application specific configuration options. */
# include "FreeRTOSConfig.h"
2013-04-23 21:57:50 +02:00
/* configUSE_PORT_OPTIMISED_TASK_SELECTION must be defined before portable.h
is included as it is used by the port layer . */
# ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION
# define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
# endif
2013-04-05 22:46:56 +02:00
/* Definitions specific to the port being used. */
# include "portable.h"
/*
* Check all the required application specific macros have been defined .
* These macros are application specific and ( as downloaded ) are defined
* within FreeRTOSConfig . h .
*/
2014-03-23 18:44:06 +01:00
# ifndef configMINIMAL_STACK_SIZE
# error Missing definition: configMINIMAL_STACK_SIZE must be defined in FreeRTOSConfig.h. configMINIMAL_STACK_SIZE defines the size (in words) of the stack allocated to the idle task. Refer to the demo project provided for your port for a suitable value.
# endif
# ifndef configMAX_PRIORITIES
# error Missing definition: configMAX_PRIORITIES must be defined in FreeRTOSConfig.h. See the Configuration section of the FreeRTOS API documentation for details.
# endif
2013-04-05 22:46:56 +02:00
# ifndef configUSE_PREEMPTION
2014-03-23 18:44:06 +01:00
# error Missing definition: configUSE_PREEMPTION must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
2013-04-05 22:46:56 +02:00
# endif
# ifndef configUSE_IDLE_HOOK
2014-03-23 18:44:06 +01:00
# error Missing definition: configUSE_IDLE_HOOK must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
2013-04-05 22:46:56 +02:00
# endif
# ifndef configUSE_TICK_HOOK
2014-03-23 18:44:06 +01:00
# error Missing definition: configUSE_TICK_HOOK must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
2013-04-05 22:46:56 +02:00
# endif
# ifndef configUSE_CO_ROUTINES
2014-03-23 18:44:06 +01:00
# error Missing definition: configUSE_CO_ROUTINES must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
2013-04-05 22:46:56 +02:00
# endif
# ifndef INCLUDE_vTaskPrioritySet
2014-03-23 18:44:06 +01:00
# error Missing definition: INCLUDE_vTaskPrioritySet must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
2013-04-05 22:46:56 +02:00
# endif
# ifndef INCLUDE_uxTaskPriorityGet
2014-03-23 18:44:06 +01:00
# error Missing definition: INCLUDE_uxTaskPriorityGet must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
2013-04-05 22:46:56 +02:00
# endif
2013-04-23 21:57:50 +02:00
# ifndef INCLUDE_vTaskDelete
2014-03-23 18:44:06 +01:00
# error Missing definition: INCLUDE_vTaskDelete must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
2013-04-05 22:46:56 +02:00
# endif
2013-04-23 21:57:50 +02:00
# ifndef INCLUDE_vTaskSuspend
2014-03-23 18:44:06 +01:00
# error Missing definition: INCLUDE_vTaskSuspend must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
2013-04-05 22:46:56 +02:00
# endif
# ifndef INCLUDE_vTaskDelayUntil
2014-03-23 18:44:06 +01:00
# error Missing definition: INCLUDE_vTaskDelayUntil must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
2013-04-05 22:46:56 +02:00
# endif
# ifndef INCLUDE_vTaskDelay
2014-03-23 18:44:06 +01:00
# error Missing definition: INCLUDE_vTaskDelay must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
2013-04-05 22:46:56 +02:00
# endif
# ifndef configUSE_16_BIT_TICKS
2014-03-23 18:44:06 +01:00
# error Missing definition: configUSE_16_BIT_TICKS must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# if configUSE_CO_ROUTINES != 0
# ifndef configMAX_CO_ROUTINE_PRIORITIES
# error configMAX_CO_ROUTINE_PRIORITIES must be greater than or equal to 1.
# endif
# endif
# ifndef configMAX_PRIORITIES
# error configMAX_PRIORITIES must be defined to be greater than or equal to 1.
2013-04-05 22:46:56 +02:00
# endif
# ifndef INCLUDE_xTaskGetIdleTaskHandle
# define INCLUDE_xTaskGetIdleTaskHandle 0
# endif
# ifndef INCLUDE_xTimerGetTimerDaemonTaskHandle
# define INCLUDE_xTimerGetTimerDaemonTaskHandle 0
# endif
# ifndef INCLUDE_xQueueGetMutexHolder
# define INCLUDE_xQueueGetMutexHolder 0
# endif
2013-04-23 21:57:50 +02:00
# ifndef INCLUDE_xSemaphoreGetMutexHolder
# define INCLUDE_xSemaphoreGetMutexHolder INCLUDE_xQueueGetMutexHolder
# endif
2013-04-05 22:46:56 +02:00
# ifndef INCLUDE_pcTaskGetTaskName
# define INCLUDE_pcTaskGetTaskName 0
# endif
# ifndef configUSE_APPLICATION_TASK_TAG
# define configUSE_APPLICATION_TASK_TAG 0
# endif
# ifndef INCLUDE_uxTaskGetStackHighWaterMark
# define INCLUDE_uxTaskGetStackHighWaterMark 0
# endif
2013-04-23 21:57:50 +02:00
# ifndef INCLUDE_eTaskGetState
# define INCLUDE_eTaskGetState 0
# endif
2013-04-05 22:46:56 +02:00
# ifndef configUSE_RECURSIVE_MUTEXES
# define configUSE_RECURSIVE_MUTEXES 0
# endif
# ifndef configUSE_MUTEXES
# define configUSE_MUTEXES 0
# endif
# ifndef configUSE_TIMERS
# define configUSE_TIMERS 0
# endif
# ifndef configUSE_COUNTING_SEMAPHORES
# define configUSE_COUNTING_SEMAPHORES 0
# endif
# ifndef configUSE_ALTERNATIVE_API
# define configUSE_ALTERNATIVE_API 0
# endif
# ifndef portCRITICAL_NESTING_IN_TCB
# define portCRITICAL_NESTING_IN_TCB 0
# endif
# ifndef configMAX_TASK_NAME_LEN
# define configMAX_TASK_NAME_LEN 16
# endif
# ifndef configIDLE_SHOULD_YIELD
# define configIDLE_SHOULD_YIELD 1
# endif
# if configMAX_TASK_NAME_LEN < 1
# error configMAX_TASK_NAME_LEN must be set to a minimum of 1 in FreeRTOSConfig.h
# endif
# ifndef INCLUDE_xTaskResumeFromISR
# define INCLUDE_xTaskResumeFromISR 1
# endif
2014-03-23 18:44:06 +01:00
# ifndef INCLUDE_xEventGroupSetBitFromISR
# define INCLUDE_xEventGroupSetBitFromISR 0
# endif
# ifndef INCLUDE_xTimerPendFunctionCall
# define INCLUDE_xTimerPendFunctionCall 0
# endif
2013-04-05 22:46:56 +02:00
# ifndef configASSERT
# define configASSERT( x )
2013-09-05 05:26:23 +02:00
# define configASSERT_DEFINED 0
# else
# define configASSERT_DEFINED 1
2013-04-05 22:46:56 +02:00
# endif
/* The timers module relies on xTaskGetSchedulerState(). */
# if configUSE_TIMERS == 1
# ifndef configTIMER_TASK_PRIORITY
# error If configUSE_TIMERS is set to 1 then configTIMER_TASK_PRIORITY must also be defined.
# endif /* configTIMER_TASK_PRIORITY */
# ifndef configTIMER_QUEUE_LENGTH
# error If configUSE_TIMERS is set to 1 then configTIMER_QUEUE_LENGTH must also be defined.
# endif /* configTIMER_QUEUE_LENGTH */
# ifndef configTIMER_TASK_STACK_DEPTH
# error If configUSE_TIMERS is set to 1 then configTIMER_TASK_STACK_DEPTH must also be defined.
# endif /* configTIMER_TASK_STACK_DEPTH */
# endif /* configUSE_TIMERS */
# ifndef INCLUDE_xTaskGetSchedulerState
# define INCLUDE_xTaskGetSchedulerState 0
# endif
# ifndef INCLUDE_xTaskGetCurrentTaskHandle
# define INCLUDE_xTaskGetCurrentTaskHandle 0
# endif
# ifndef portSET_INTERRUPT_MASK_FROM_ISR
# define portSET_INTERRUPT_MASK_FROM_ISR() 0
# endif
# ifndef portCLEAR_INTERRUPT_MASK_FROM_ISR
# define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue ) ( void ) uxSavedStatusValue
# endif
# ifndef portCLEAN_UP_TCB
# define portCLEAN_UP_TCB( pxTCB ) ( void ) pxTCB
# endif
2014-03-23 18:44:06 +01:00
# ifndef portPRE_TASK_DELETE_HOOK
# define portPRE_TASK_DELETE_HOOK( pvTaskToDelete, pxYieldPending )
# endif
2013-04-05 22:46:56 +02:00
# ifndef portSETUP_TCB
# define portSETUP_TCB( pxTCB ) ( void ) pxTCB
# endif
# ifndef configQUEUE_REGISTRY_SIZE
# define configQUEUE_REGISTRY_SIZE 0U
# endif
# if ( configQUEUE_REGISTRY_SIZE < 1 )
# define vQueueAddToRegistry( xQueue, pcName )
# define vQueueUnregisterQueue( xQueue )
# endif
# ifndef portPOINTER_SIZE_TYPE
2014-03-23 18:44:06 +01:00
# define portPOINTER_SIZE_TYPE uint32_t
2013-04-05 22:46:56 +02:00
# endif
/* Remove any unused trace macros. */
# ifndef traceSTART
/* Used to perform any necessary initialisation - for example, open a file
into which trace is to be written . */
# define traceSTART()
# endif
# ifndef traceEND
/* Use to close a trace, for example close a file into which trace has been
written . */
# define traceEND()
# endif
# ifndef traceTASK_SWITCHED_IN
/* Called after a task has been selected to run. pxCurrentTCB holds a pointer
to the task control block of the selected task . */
# define traceTASK_SWITCHED_IN()
# endif
2013-09-05 05:26:23 +02:00
# ifndef traceINCREASE_TICK_COUNT
/* Called before stepping the tick count after waking from tickless idle
sleep . */
# define traceINCREASE_TICK_COUNT( x )
# endif
# ifndef traceLOW_POWER_IDLE_BEGIN
/* Called immediately before entering tickless idle. */
# define traceLOW_POWER_IDLE_BEGIN()
# endif
# ifndef traceLOW_POWER_IDLE_END
/* Called when returning to the Idle task after a tickless idle. */
# define traceLOW_POWER_IDLE_END()
# endif
2013-04-05 22:46:56 +02:00
# ifndef traceTASK_SWITCHED_OUT
/* Called before a task has been selected to run. pxCurrentTCB holds a pointer
to the task control block of the task being switched out . */
# define traceTASK_SWITCHED_OUT()
# endif
# ifndef traceTASK_PRIORITY_INHERIT
/* Called when a task attempts to take a mutex that is already held by a
lower priority task . pxTCBOfMutexHolder is a pointer to the TCB of the task
that holds the mutex . uxInheritedPriority is the priority the mutex holder
will inherit ( the priority of the task that is attempting to obtain the
muted . */
# define traceTASK_PRIORITY_INHERIT( pxTCBOfMutexHolder, uxInheritedPriority )
# endif
# ifndef traceTASK_PRIORITY_DISINHERIT
/* Called when a task releases a mutex, the holding of which had resulted in
2013-04-23 21:57:50 +02:00
the task inheriting the priority of a higher priority task .
2013-04-05 22:46:56 +02:00
pxTCBOfMutexHolder is a pointer to the TCB of the task that is releasing the
mutex . uxOriginalPriority is the task ' s configured ( base ) priority . */
# define traceTASK_PRIORITY_DISINHERIT( pxTCBOfMutexHolder, uxOriginalPriority )
# endif
# ifndef traceBLOCKING_ON_QUEUE_RECEIVE
/* Task is about to block because it cannot read from a
queue / mutex / semaphore . pxQueue is a pointer to the queue / mutex / semaphore
upon which the read was attempted . pxCurrentTCB points to the TCB of the
task that attempted the read . */
# define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue )
# endif
# ifndef traceBLOCKING_ON_QUEUE_SEND
/* Task is about to block because it cannot write to a
queue / mutex / semaphore . pxQueue is a pointer to the queue / mutex / semaphore
upon which the write was attempted . pxCurrentTCB points to the TCB of the
task that attempted the write . */
# define traceBLOCKING_ON_QUEUE_SEND( pxQueue )
# endif
# ifndef configCHECK_FOR_STACK_OVERFLOW
# define configCHECK_FOR_STACK_OVERFLOW 0
# endif
/* The following event macros are embedded in the kernel API calls. */
# ifndef traceMOVED_TASK_TO_READY_STATE
# define traceMOVED_TASK_TO_READY_STATE( pxTCB )
# endif
2013-04-23 21:57:50 +02:00
# ifndef traceQUEUE_CREATE
2013-04-05 22:46:56 +02:00
# define traceQUEUE_CREATE( pxNewQueue )
# endif
# ifndef traceQUEUE_CREATE_FAILED
# define traceQUEUE_CREATE_FAILED( ucQueueType )
# endif
# ifndef traceCREATE_MUTEX
# define traceCREATE_MUTEX( pxNewQueue )
# endif
# ifndef traceCREATE_MUTEX_FAILED
# define traceCREATE_MUTEX_FAILED()
# endif
# ifndef traceGIVE_MUTEX_RECURSIVE
# define traceGIVE_MUTEX_RECURSIVE( pxMutex )
# endif
# ifndef traceGIVE_MUTEX_RECURSIVE_FAILED
# define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex )
# endif
# ifndef traceTAKE_MUTEX_RECURSIVE
# define traceTAKE_MUTEX_RECURSIVE( pxMutex )
# endif
# ifndef traceTAKE_MUTEX_RECURSIVE_FAILED
# define traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex )
# endif
# ifndef traceCREATE_COUNTING_SEMAPHORE
# define traceCREATE_COUNTING_SEMAPHORE()
# endif
# ifndef traceCREATE_COUNTING_SEMAPHORE_FAILED
# define traceCREATE_COUNTING_SEMAPHORE_FAILED()
# endif
# ifndef traceQUEUE_SEND
# define traceQUEUE_SEND( pxQueue )
# endif
# ifndef traceQUEUE_SEND_FAILED
# define traceQUEUE_SEND_FAILED( pxQueue )
# endif
# ifndef traceQUEUE_RECEIVE
# define traceQUEUE_RECEIVE( pxQueue )
# endif
# ifndef traceQUEUE_PEEK
# define traceQUEUE_PEEK( pxQueue )
# endif
2013-09-05 05:26:23 +02:00
# ifndef traceQUEUE_PEEK_FROM_ISR
# define traceQUEUE_PEEK_FROM_ISR( pxQueue )
# endif
2013-04-05 22:46:56 +02:00
# ifndef traceQUEUE_RECEIVE_FAILED
# define traceQUEUE_RECEIVE_FAILED( pxQueue )
# endif
# ifndef traceQUEUE_SEND_FROM_ISR
# define traceQUEUE_SEND_FROM_ISR( pxQueue )
# endif
# ifndef traceQUEUE_SEND_FROM_ISR_FAILED
# define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue )
# endif
# ifndef traceQUEUE_RECEIVE_FROM_ISR
# define traceQUEUE_RECEIVE_FROM_ISR( pxQueue )
# endif
# ifndef traceQUEUE_RECEIVE_FROM_ISR_FAILED
# define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue )
# endif
2013-09-05 05:26:23 +02:00
# ifndef traceQUEUE_PEEK_FROM_ISR_FAILED
# define traceQUEUE_PEEK_FROM_ISR_FAILED( pxQueue )
# endif
2013-04-05 22:46:56 +02:00
# ifndef traceQUEUE_DELETE
# define traceQUEUE_DELETE( pxQueue )
# endif
# ifndef traceTASK_CREATE
# define traceTASK_CREATE( pxNewTCB )
# endif
# ifndef traceTASK_CREATE_FAILED
# define traceTASK_CREATE_FAILED()
# endif
# ifndef traceTASK_DELETE
# define traceTASK_DELETE( pxTaskToDelete )
# endif
# ifndef traceTASK_DELAY_UNTIL
# define traceTASK_DELAY_UNTIL()
# endif
# ifndef traceTASK_DELAY
# define traceTASK_DELAY()
# endif
# ifndef traceTASK_PRIORITY_SET
# define traceTASK_PRIORITY_SET( pxTask, uxNewPriority )
# endif
# ifndef traceTASK_SUSPEND
# define traceTASK_SUSPEND( pxTaskToSuspend )
# endif
# ifndef traceTASK_RESUME
# define traceTASK_RESUME( pxTaskToResume )
# endif
# ifndef traceTASK_RESUME_FROM_ISR
# define traceTASK_RESUME_FROM_ISR( pxTaskToResume )
# endif
# ifndef traceTASK_INCREMENT_TICK
# define traceTASK_INCREMENT_TICK( xTickCount )
# endif
# ifndef traceTIMER_CREATE
# define traceTIMER_CREATE( pxNewTimer )
# endif
# ifndef traceTIMER_CREATE_FAILED
# define traceTIMER_CREATE_FAILED()
# endif
# ifndef traceTIMER_COMMAND_SEND
# define traceTIMER_COMMAND_SEND( xTimer, xMessageID, xMessageValueValue, xReturn )
# endif
# ifndef traceTIMER_EXPIRED
# define traceTIMER_EXPIRED( pxTimer )
# endif
# ifndef traceTIMER_COMMAND_RECEIVED
# define traceTIMER_COMMAND_RECEIVED( pxTimer, xMessageID, xMessageValue )
# endif
2014-03-23 18:44:06 +01:00
# ifndef traceMALLOC
# define traceMALLOC( pvAddress, uiSize )
# endif
# ifndef traceFREE
# define traceFREE( pvAddress, uiSize )
# endif
# ifndef traceEVENT_GROUP_CREATE
# define traceEVENT_GROUP_CREATE( xEventGroup )
# endif
# ifndef traceEVENT_GROUP_CREATE_FAILED
# define traceEVENT_GROUP_CREATE_FAILED()
# endif
# ifndef traceEVENT_GROUP_SYNC_BLOCK
# define traceEVENT_GROUP_SYNC_BLOCK( xEventGroup, uxBitsToSet, uxBitsToWaitFor )
# endif
# ifndef traceEVENT_GROUP_SYNC_END
# define traceEVENT_GROUP_SYNC_END( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) xTimeoutOccurred
# endif
# ifndef traceEVENT_GROUP_WAIT_BITS_BLOCK
# define traceEVENT_GROUP_WAIT_BITS_BLOCK( xEventGroup, uxBitsToWaitFor )
# endif
# ifndef traceEVENT_GROUP_WAIT_BITS_END
# define traceEVENT_GROUP_WAIT_BITS_END( xEventGroup, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) xTimeoutOccurred
# endif
# ifndef traceEVENT_GROUP_CLEAR_BITS
# define traceEVENT_GROUP_CLEAR_BITS( xEventGroup, uxBitsToClear )
# endif
# ifndef traceEVENT_GROUP_CLEAR_BITS_FROM_ISR
# define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR( xEventGroup, uxBitsToClear )
# endif
# ifndef traceEVENT_GROUP_SET_BITS
# define traceEVENT_GROUP_SET_BITS( xEventGroup, uxBitsToSet )
# endif
# ifndef traceEVENT_GROUP_SET_BITS_FROM_ISR
# define traceEVENT_GROUP_SET_BITS_FROM_ISR( xEventGroup, uxBitsToSet )
# endif
# ifndef traceEVENT_GROUP_DELETE
# define traceEVENT_GROUP_DELETE( xEventGroup )
# endif
# ifndef tracePEND_FUNC_CALL
# define tracePEND_FUNC_CALL(xFunctionToPend, pvParameter1, ulParameter2, ret)
# endif
# ifndef tracePEND_FUNC_CALL_FROM_ISR
# define tracePEND_FUNC_CALL_FROM_ISR(xFunctionToPend, pvParameter1, ulParameter2, ret)
# endif
# ifndef traceQUEUE_REGISTRY_ADD
# define traceQUEUE_REGISTRY_ADD(xQueue, pcQueueName)
# endif
2013-04-05 22:46:56 +02:00
# ifndef configGENERATE_RUN_TIME_STATS
# define configGENERATE_RUN_TIME_STATS 0
# endif
# if ( configGENERATE_RUN_TIME_STATS == 1 )
# ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
# error If configGENERATE_RUN_TIME_STATS is defined then portCONFIGURE_TIMER_FOR_RUN_TIME_STATS must also be defined. portCONFIGURE_TIMER_FOR_RUN_TIME_STATS should call a port layer function to setup a peripheral timer / counter that can then be used as the run time counter time base.
# endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */
# ifndef portGET_RUN_TIME_COUNTER_VALUE
# ifndef portALT_GET_RUN_TIME_COUNTER_VALUE
# error If configGENERATE_RUN_TIME_STATS is defined then either portGET_RUN_TIME_COUNTER_VALUE or portALT_GET_RUN_TIME_COUNTER_VALUE must also be defined. See the examples provided and the FreeRTOS web site for more information.
# endif /* portALT_GET_RUN_TIME_COUNTER_VALUE */
# endif /* portGET_RUN_TIME_COUNTER_VALUE */
# endif /* configGENERATE_RUN_TIME_STATS */
# ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
# define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()
# endif
# ifndef configUSE_MALLOC_FAILED_HOOK
# define configUSE_MALLOC_FAILED_HOOK 0
# endif
# ifndef portPRIVILEGE_BIT
2014-03-23 18:44:06 +01:00
# define portPRIVILEGE_BIT ( ( UBaseType_t ) 0x00 )
2013-04-05 22:46:56 +02:00
# endif
# ifndef portYIELD_WITHIN_API
# define portYIELD_WITHIN_API portYIELD
# endif
# ifndef pvPortMallocAligned
# define pvPortMallocAligned( x, puxStackBuffer ) ( ( ( puxStackBuffer ) == NULL ) ? ( pvPortMalloc( ( x ) ) ) : ( puxStackBuffer ) )
# endif
# ifndef vPortFreeAligned
# define vPortFreeAligned( pvBlockToFree ) vPortFree( pvBlockToFree )
# endif
2013-04-23 21:57:50 +02:00
# ifndef portSUPPRESS_TICKS_AND_SLEEP
# define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )
# endif
# ifndef configEXPECTED_IDLE_TIME_BEFORE_SLEEP
# define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2
# endif
# if configEXPECTED_IDLE_TIME_BEFORE_SLEEP < 2
# error configEXPECTED_IDLE_TIME_BEFORE_SLEEP must not be less than 2
# endif
# ifndef configUSE_TICKLESS_IDLE
# define configUSE_TICKLESS_IDLE 0
# endif
# ifndef configPRE_SLEEP_PROCESSING
# define configPRE_SLEEP_PROCESSING( x )
# endif
# ifndef configPOST_SLEEP_PROCESSING
# define configPOST_SLEEP_PROCESSING( x )
# endif
# ifndef configUSE_QUEUE_SETS
# define configUSE_QUEUE_SETS 0
# endif
2013-09-05 05:26:23 +02:00
# ifndef portTASK_USES_FLOATING_POINT
# define portTASK_USES_FLOATING_POINT()
# endif
# ifndef configUSE_TIME_SLICING
# define configUSE_TIME_SLICING 1
# endif
# ifndef configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS
# define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0
# endif
# ifndef configUSE_NEWLIB_REENTRANT
# define configUSE_NEWLIB_REENTRANT 0
# endif
# ifndef configUSE_STATS_FORMATTING_FUNCTIONS
# define configUSE_STATS_FORMATTING_FUNCTIONS 0
# endif
# ifndef portASSERT_IF_INTERRUPT_PRIORITY_INVALID
# define portASSERT_IF_INTERRUPT_PRIORITY_INVALID()
# endif
2014-03-23 18:44:06 +01:00
# ifndef configUSE_TRACE_FACILITY
# define configUSE_TRACE_FACILITY 0
# endif
# ifndef mtCOVERAGE_TEST_MARKER
# define mtCOVERAGE_TEST_MARKER()
# endif
/* Definitions to allow backward compatibility with FreeRTOS versions prior to
V8 if desired . */
# ifndef configENABLE_BACKWARD_COMPATIBILITY
# define configENABLE_BACKWARD_COMPATIBILITY 1
# endif
# if configENABLE_BACKWARD_COMPATIBILITY == 1
# define eTaskStateGet eTaskGetState
# define portTickType TickType_t
# define xTaskHandle TaskHandle_t
# define xQueueHandle QueueHandle_t
# define xSemaphoreHandle SemaphoreHandle_t
# define xQueueSetHandle QueueSetHandle_t
# define xQueueSetMemberHandle QueueSetMemberHandle_t
# define xTimeOutType TimeOut_t
# define xMemoryRegion MemoryRegion_t
# define xTaskParameters TaskParameters_t
# define xTaskStatusType TaskStatus_t
# define xTimerHandle TimerHandle_t
# define xCoRoutineHandle CoRoutineHandle_t
# define pdTASK_HOOK_CODE TaskHookFunction_t
# define portTICK_RATE_MS portTICK_PERIOD_MS
/* Backward compatibility within the scheduler code only - these definitions
are not really required but are included for completeness . */
# define tmrTIMER_CALLBACK TimerCallbackFunction_t
# define pdTASK_CODE TaskFunction_t
# define xListItem ListItem_t
# define xList List_t
# endif /* configENABLE_BACKWARD_COMPATIBILITY */
# ifdef __cplusplus
}
# endif
2013-04-23 21:57:50 +02:00
2013-04-05 22:46:56 +02:00
# endif /* INC_FREERTOS_H */