2006-05-02 17:39:15 +08:00
/*
2008-03-26 05:22:13 +08:00
FreeRTOS . org V4 .8 .0 - Copyright ( C ) 2003 - 2008 Richard Barry .
2006-05-02 17:39:15 +08:00
2006-05-28 16:17:56 +08:00
This file is part of the FreeRTOS . org distribution .
2006-05-02 17:39:15 +08:00
2006-05-28 16:17:56 +08:00
FreeRTOS . org is free software ; you can redistribute it and / or modify
2006-05-02 17:39:15 +08:00
it under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 2 of the License , or
( at your option ) any later version .
2006-05-28 16:17:56 +08:00
FreeRTOS . org is distributed in the hope that it will be useful ,
2006-05-02 17:39:15 +08:00
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
2006-05-28 16:17:56 +08:00
along with FreeRTOS . org ; if not , write to the Free Software
2006-05-02 17:39:15 +08:00
Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
A special exception to the GPL can be applied should you wish to distribute
2006-05-28 16:17:56 +08:00
a combined work that includes FreeRTOS . org , without being obliged to provide
2007-08-22 00:54:48 +08:00
the source code for any proprietary components . See the licensing section
2006-05-02 17:39:15 +08:00
of http : //www.FreeRTOS.org for full details of how and when the exception
can be applied .
2008-03-26 21:04:38 +08:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* SAVE TIME AND MONEY ! We can port FreeRTOS . org to your own hardware , *
* and even write all or part of your application on your behalf . *
* See http : //www.OpenRTOS.com for details of the services we provide to *
* expedite your project . *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2007-04-02 04:47:49 +08:00
2008-03-04 00:32:37 +08:00
Please ensure to read the configuration and relevant port sections of the
2008-02-04 03:45:58 +08:00
online documentation .
2008-03-26 05:22:13 +08:00
http : //www.FreeRTOS.org - Documentation, latest information, license and
contact details .
2008-02-04 03:45:58 +08:00
2008-03-26 05:22:13 +08:00
http : //www.SafeRTOS.com - A version that is certified for use in safety
critical systems .
2008-02-04 03:45:58 +08:00
2008-03-26 05:22:13 +08:00
http : //www.OpenRTOS.com - Commercial support, development, porting,
licensing and training services .
2006-05-02 17:39:15 +08:00
*/
# ifndef INC_FREERTOS_H
# define INC_FREERTOS_H
2007-08-22 00:54:48 +08:00
/*
* Include the generic headers required for the FreeRTOS port being used .
2006-05-02 17:39:15 +08:00
*/
# include <stddef.h>
/* Basic FreeRTOS definitions. */
# include "projdefs.h"
/* Application specific configuration options. */
# include "FreeRTOSConfig.h"
/* Definitions specific to the port being used. */
# include "portable.h"
/*
2007-08-22 00:54:48 +08:00
* Check all the required application specific macros have been defined .
2006-05-02 17:39:15 +08:00
* These macros are application specific and ( as downloaded ) are defined
* within FreeRTOSConfig . h .
*/
# ifndef configUSE_PREEMPTION
# error Missing definition: configUSE_PREEMPTION should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# ifndef configUSE_IDLE_HOOK
# error Missing definition: configUSE_IDLE_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# ifndef configUSE_TICK_HOOK
# error Missing definition: configUSE_TICK_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# ifndef configUSE_CO_ROUTINES
# error Missing definition: configUSE_CO_ROUTINES should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# ifndef INCLUDE_vTaskPrioritySet
# error Missing definition: INCLUDE_vTaskPrioritySet should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# ifndef INCLUDE_uxTaskPriorityGet
# error Missing definition: INCLUDE_uxTaskPriorityGet should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# ifndef INCLUDE_vTaskDelete
# error Missing definition: INCLUDE_vTaskDelete should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# ifndef INCLUDE_vTaskCleanUpResources
# error Missing definition: INCLUDE_vTaskCleanUpResources should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# ifndef INCLUDE_vTaskSuspend
# error Missing definition: INCLUDE_vTaskSuspend should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# ifndef INCLUDE_vTaskDelayUntil
# error Missing definition: INCLUDE_vTaskDelayUntil should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# ifndef INCLUDE_vTaskDelay
# error Missing definition: INCLUDE_vTaskDelay should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
# ifndef configUSE_16_BIT_TICKS
# error Missing definition: configUSE_16_BIT_TICKS should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
# endif
2008-03-04 04:56:55 +08:00
# ifndef INCLUDE_uxTaskGetStackHighWaterMark
# define INCLUDE_uxTaskGetStackHighWaterMark 0
2008-03-04 00:32:37 +08:00
# endif
2008-01-23 02:43:03 +08:00
# ifndef configUSE_RECURSIVE_MUTEXES
# define configUSE_RECURSIVE_MUTEXES 0
# endif
2007-12-03 02:37:43 +08:00
# ifndef configUSE_MUTEXES
# define configUSE_MUTEXES 0
# endif
2007-12-02 04:28:04 +08:00
# ifndef configUSE_COUNTING_SEMAPHORES
# define configUSE_COUNTING_SEMAPHORES 0
# endif
2007-12-03 02:37:43 +08:00
# ifndef configUSE_ALTERNATIVE_API
# define configUSE_ALTERNATIVE_API 0
2007-12-02 04:56:44 +08:00
# endif
2008-02-26 02:54:28 +08:00
# ifndef portCRITICAL_NESTING_IN_TCB
# define portCRITICAL_NESTING_IN_TCB 0
# endif
2007-08-22 00:54:48 +08:00
# if ( configUSE_MUTEXES == 1 )
/* xTaskGetCurrentTaskHandle is used by the priority inheritance mechanism
within the mutex implementation so must be available if mutexes are used . */
# undef INCLUDE_xTaskGetCurrentTaskHandle
# define INCLUDE_xTaskGetCurrentTaskHandle 1
# else
# ifndef INCLUDE_xTaskGetCurrentTaskHandle
# define INCLUDE_xTaskGetCurrentTaskHandle 0
# endif
2006-05-02 17:39:15 +08:00
# endif
2007-08-22 00:54:48 +08:00
2008-03-04 00:32:37 +08:00
/* 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
# 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
2008-03-04 04:56:55 +08:00
# ifndef configCHECK_FOR_STACK_OVERFLOW
# define configCHECK_FOR_STACK_OVERFLOW 0
# endif
2008-03-04 00:32:37 +08:00
/* The following event macros are embedded in the kernel API calls. */
# ifndef traceQUEUE_CREATE
# define traceQUEUE_CREATE( pxNewQueue )
# endif
# ifndef traceQUEUE_CREATE_FAILED
# define traceQUEUE_CREATE_FAILED()
# 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 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
# 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
# ifndef traceQUEUE_DELETE
# define traceQUEUE_DELETE( pxQueue )
# endif
# ifndef traceTASK_CREATE
# define traceTASK_CREATE( pxNewTCB )
# endif
# ifndef traceTASK_CREATE_FAILED
# define traceTASK_CREATE_FAILED( pxNewTCB )
# 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
2007-08-22 00:54:48 +08:00
# endif /* INC_FREERTOS_H */
2008-03-04 00:32:37 +08:00