Rohit Grover / FreeRTOS

Dependents:   Nucleo freertos_test FreeRTOS_test freertos_bluetooth ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers FreeRTOS.h Source File

FreeRTOS.h

00001 /*
00002     FreeRTOS V7.6.0 - Copyright (C) 2013 Real Time Engineers Ltd. 
00003     All rights reserved
00004 
00005     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
00006 
00007     ***************************************************************************
00008      *                                                                       *
00009      *    FreeRTOS provides completely free yet professionally developed,    *
00010      *    robust, strictly quality controlled, supported, and cross          *
00011      *    platform software that has become a de facto standard.             *
00012      *                                                                       *
00013      *    Help yourself get started quickly and support the FreeRTOS         *
00014      *    project by purchasing a FreeRTOS tutorial book, reference          *
00015      *    manual, or both from: http://www.FreeRTOS.org/Documentation        *
00016      *                                                                       *
00017      *    Thank you!                                                         *
00018      *                                                                       *
00019     ***************************************************************************
00020 
00021     This file is part of the FreeRTOS distribution.
00022 
00023     FreeRTOS is free software; you can redistribute it and/or modify it under
00024     the terms of the GNU General Public License (version 2) as published by the
00025     Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
00026 
00027     >>! NOTE: The modification to the GPL is included to allow you to distribute
00028     >>! a combined work that includes FreeRTOS without being obliged to provide
00029     >>! the source code for proprietary components outside of the FreeRTOS
00030     >>! kernel.
00031 
00032     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
00033     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00034     FOR A PARTICULAR PURPOSE.  Full license text is available from the following
00035     link: http://www.freertos.org/a00114.html
00036 
00037     1 tab == 4 spaces!
00038 
00039     ***************************************************************************
00040      *                                                                       *
00041      *    Having a problem?  Start by reading the FAQ "My application does   *
00042      *    not run, what could be wrong?"                                     *
00043      *                                                                       *
00044      *    http://www.FreeRTOS.org/FAQHelp.html                               *
00045      *                                                                       *
00046     ***************************************************************************
00047 
00048     http://www.FreeRTOS.org - Documentation, books, training, latest versions,
00049     license and Real Time Engineers Ltd. contact details.
00050 
00051     http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
00052     including FreeRTOS+Trace - an indispensable productivity tool, a DOS
00053     compatible FAT file system, and our tiny thread aware UDP/IP stack.
00054 
00055     http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
00056     Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS
00057     licenses offer ticketed support, indemnification and middleware.
00058 
00059     http://www.SafeRTOS.com - High Integrity Systems also provide a safety
00060     engineered and independently SIL3 certified version for use in safety and
00061     mission critical applications that require provable dependability.
00062 
00063     1 tab == 4 spaces!
00064 */
00065 
00066 #ifndef INC_FREERTOS_H
00067 #define INC_FREERTOS_H
00068 
00069 
00070 /*
00071  * Include the generic headers required for the FreeRTOS port being used.
00072  */
00073 #include <stddef.h>
00074 
00075 /* Basic FreeRTOS definitions. */
00076 #include "projdefs.h"
00077 
00078 /* Application specific configuration options. */
00079 #include "FreeRTOSConfig.h"
00080 
00081 /* configUSE_PORT_OPTIMISED_TASK_SELECTION must be defined before portable.h
00082 is included as it is used by the port layer. */
00083 #ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION
00084     #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
00085 #endif
00086 
00087 /* Definitions specific to the port being used. */
00088 #include "portable.h"
00089 
00090 
00091 /* Defines the prototype to which the application task hook function must
00092 conform. */
00093 typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * );
00094 
00095 
00096 
00097 
00098 
00099 /*
00100  * Check all the required application specific macros have been defined.
00101  * These macros are application specific and (as downloaded) are defined
00102  * within FreeRTOSConfig.h.
00103  */
00104 
00105 #ifndef configUSE_PREEMPTION
00106     #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.
00107 #endif
00108 
00109 #ifndef configUSE_IDLE_HOOK
00110     #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.
00111 #endif
00112 
00113 #ifndef configUSE_TICK_HOOK
00114     #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.
00115 #endif
00116 
00117 #ifndef configUSE_CO_ROUTINES
00118     #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.
00119 #endif
00120 
00121 #ifndef INCLUDE_vTaskPrioritySet
00122     #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.
00123 #endif
00124 
00125 #ifndef INCLUDE_uxTaskPriorityGet
00126     #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.
00127 #endif
00128 
00129 #ifndef INCLUDE_vTaskDelete
00130     #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.
00131 #endif
00132 
00133 #ifndef INCLUDE_vTaskSuspend
00134     #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.
00135 #endif
00136 
00137 #ifndef INCLUDE_vTaskDelayUntil
00138     #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.
00139 #endif
00140 
00141 #ifndef INCLUDE_vTaskDelay
00142     #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.
00143 #endif
00144 
00145 #ifndef configUSE_16_BIT_TICKS
00146     #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.
00147 #endif
00148 
00149 #ifndef INCLUDE_xTaskGetIdleTaskHandle
00150     #define INCLUDE_xTaskGetIdleTaskHandle 0
00151 #endif
00152 
00153 #ifndef INCLUDE_xTimerGetTimerDaemonTaskHandle
00154     #define INCLUDE_xTimerGetTimerDaemonTaskHandle 0
00155 #endif
00156 
00157 #ifndef INCLUDE_xQueueGetMutexHolder
00158     #define INCLUDE_xQueueGetMutexHolder 0
00159 #endif
00160 
00161 #ifndef INCLUDE_xSemaphoreGetMutexHolder
00162     #define INCLUDE_xSemaphoreGetMutexHolder INCLUDE_xQueueGetMutexHolder
00163 #endif
00164 
00165 #ifndef INCLUDE_pcTaskGetTaskName
00166     #define INCLUDE_pcTaskGetTaskName 0
00167 #endif
00168 
00169 #ifndef configUSE_APPLICATION_TASK_TAG
00170     #define configUSE_APPLICATION_TASK_TAG 0
00171 #endif
00172 
00173 #ifndef INCLUDE_uxTaskGetStackHighWaterMark
00174     #define INCLUDE_uxTaskGetStackHighWaterMark 0
00175 #endif
00176 
00177 #ifndef INCLUDE_eTaskGetState
00178     #define INCLUDE_eTaskGetState 0
00179 #endif
00180 
00181 #ifndef configUSE_RECURSIVE_MUTEXES
00182     #define configUSE_RECURSIVE_MUTEXES 0
00183 #endif
00184 
00185 #ifndef configUSE_MUTEXES
00186     #define configUSE_MUTEXES 0
00187 #endif
00188 
00189 #ifndef configUSE_TIMERS
00190     #define configUSE_TIMERS 0
00191 #endif
00192 
00193 #ifndef configUSE_COUNTING_SEMAPHORES
00194     #define configUSE_COUNTING_SEMAPHORES 0
00195 #endif
00196 
00197 #ifndef configUSE_ALTERNATIVE_API
00198     #define configUSE_ALTERNATIVE_API 0
00199 #endif
00200 
00201 #ifndef portCRITICAL_NESTING_IN_TCB
00202     #define portCRITICAL_NESTING_IN_TCB 0
00203 #endif
00204 
00205 #ifndef configMAX_TASK_NAME_LEN
00206     #define configMAX_TASK_NAME_LEN 16
00207 #endif
00208 
00209 #ifndef configIDLE_SHOULD_YIELD
00210     #define configIDLE_SHOULD_YIELD     1
00211 #endif
00212 
00213 #if configMAX_TASK_NAME_LEN < 1
00214     #error configMAX_TASK_NAME_LEN must be set to a minimum of 1 in FreeRTOSConfig.h
00215 #endif
00216 
00217 #ifndef INCLUDE_xTaskResumeFromISR
00218     #define INCLUDE_xTaskResumeFromISR 1
00219 #endif
00220 
00221 #ifndef configASSERT
00222     #define configASSERT( x )
00223     #define configASSERT_DEFINED 0
00224 #else
00225     #define configASSERT_DEFINED 1
00226 #endif
00227 
00228 /* The timers module relies on xTaskGetSchedulerState(). */
00229 #if configUSE_TIMERS == 1
00230 
00231     #ifndef configTIMER_TASK_PRIORITY
00232         #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_PRIORITY must also be defined.
00233     #endif /* configTIMER_TASK_PRIORITY */
00234 
00235     #ifndef configTIMER_QUEUE_LENGTH
00236         #error If configUSE_TIMERS is set to 1 then configTIMER_QUEUE_LENGTH must also be defined.
00237     #endif /* configTIMER_QUEUE_LENGTH */
00238 
00239     #ifndef configTIMER_TASK_STACK_DEPTH
00240         #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_STACK_DEPTH must also be defined.
00241     #endif /* configTIMER_TASK_STACK_DEPTH */
00242 
00243 #endif /* configUSE_TIMERS */
00244 
00245 #ifndef INCLUDE_xTaskGetSchedulerState
00246     #define INCLUDE_xTaskGetSchedulerState 0
00247 #endif
00248 
00249 #ifndef INCLUDE_xTaskGetCurrentTaskHandle
00250     #define INCLUDE_xTaskGetCurrentTaskHandle 0
00251 #endif
00252 
00253 
00254 #ifndef portSET_INTERRUPT_MASK_FROM_ISR
00255     #define portSET_INTERRUPT_MASK_FROM_ISR() 0
00256 #endif
00257 
00258 #ifndef portCLEAR_INTERRUPT_MASK_FROM_ISR
00259     #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue ) ( void ) uxSavedStatusValue
00260 #endif
00261 
00262 #ifndef portCLEAN_UP_TCB
00263     #define portCLEAN_UP_TCB( pxTCB ) ( void ) pxTCB
00264 #endif
00265 
00266 #ifndef portSETUP_TCB
00267     #define portSETUP_TCB( pxTCB ) ( void ) pxTCB
00268 #endif
00269 
00270 #ifndef configQUEUE_REGISTRY_SIZE
00271     #define configQUEUE_REGISTRY_SIZE 0U
00272 #endif
00273 
00274 #if ( configQUEUE_REGISTRY_SIZE < 1 )
00275     #define vQueueAddToRegistry( xQueue, pcName )
00276     #define vQueueUnregisterQueue( xQueue )
00277 #endif
00278 
00279 #ifndef portPOINTER_SIZE_TYPE
00280     #define portPOINTER_SIZE_TYPE unsigned long
00281 #endif
00282 
00283 /* Remove any unused trace macros. */
00284 #ifndef traceSTART
00285     /* Used to perform any necessary initialisation - for example, open a file
00286     into which trace is to be written. */
00287     #define traceSTART()
00288 #endif
00289 
00290 #ifndef traceEND
00291     /* Use to close a trace, for example close a file into which trace has been
00292     written. */
00293     #define traceEND()
00294 #endif
00295 
00296 #ifndef traceTASK_SWITCHED_IN
00297     /* Called after a task has been selected to run.  pxCurrentTCB holds a pointer
00298     to the task control block of the selected task. */
00299     #define traceTASK_SWITCHED_IN()
00300 #endif
00301 
00302 #ifndef traceINCREASE_TICK_COUNT
00303     /* Called before stepping the tick count after waking from tickless idle
00304     sleep. */
00305     #define traceINCREASE_TICK_COUNT( x )
00306 #endif
00307 
00308 #ifndef traceLOW_POWER_IDLE_BEGIN
00309     /* Called immediately before entering tickless idle. */
00310     #define traceLOW_POWER_IDLE_BEGIN()
00311 #endif
00312 
00313 #ifndef traceLOW_POWER_IDLE_END
00314     /* Called when returning to the Idle task after a tickless idle. */
00315     #define traceLOW_POWER_IDLE_END()
00316 #endif
00317 
00318 #ifndef traceTASK_SWITCHED_OUT
00319     /* Called before a task has been selected to run.  pxCurrentTCB holds a pointer
00320     to the task control block of the task being switched out. */
00321     #define traceTASK_SWITCHED_OUT()
00322 #endif
00323 
00324 #ifndef traceTASK_PRIORITY_INHERIT
00325     /* Called when a task attempts to take a mutex that is already held by a
00326     lower priority task.  pxTCBOfMutexHolder is a pointer to the TCB of the task
00327     that holds the mutex.  uxInheritedPriority is the priority the mutex holder
00328     will inherit (the priority of the task that is attempting to obtain the
00329     muted. */
00330     #define traceTASK_PRIORITY_INHERIT( pxTCBOfMutexHolder, uxInheritedPriority )
00331 #endif
00332 
00333 #ifndef traceTASK_PRIORITY_DISINHERIT
00334     /* Called when a task releases a mutex, the holding of which had resulted in
00335     the task inheriting the priority of a higher priority task.
00336     pxTCBOfMutexHolder is a pointer to the TCB of the task that is releasing the
00337     mutex.  uxOriginalPriority is the task's configured (base) priority. */
00338     #define traceTASK_PRIORITY_DISINHERIT( pxTCBOfMutexHolder, uxOriginalPriority )
00339 #endif
00340 
00341 #ifndef traceBLOCKING_ON_QUEUE_RECEIVE
00342     /* Task is about to block because it cannot read from a
00343     queue/mutex/semaphore.  pxQueue is a pointer to the queue/mutex/semaphore
00344     upon which the read was attempted.  pxCurrentTCB points to the TCB of the
00345     task that attempted the read. */
00346     #define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue )
00347 #endif
00348 
00349 #ifndef traceBLOCKING_ON_QUEUE_SEND
00350     /* Task is about to block because it cannot write to a
00351     queue/mutex/semaphore.  pxQueue is a pointer to the queue/mutex/semaphore
00352     upon which the write was attempted.  pxCurrentTCB points to the TCB of the
00353     task that attempted the write. */
00354     #define traceBLOCKING_ON_QUEUE_SEND( pxQueue )
00355 #endif
00356 
00357 #ifndef configCHECK_FOR_STACK_OVERFLOW
00358     #define configCHECK_FOR_STACK_OVERFLOW 0
00359 #endif
00360 
00361 /* The following event macros are embedded in the kernel API calls. */
00362 
00363 #ifndef traceMOVED_TASK_TO_READY_STATE
00364     #define traceMOVED_TASK_TO_READY_STATE( pxTCB )
00365 #endif
00366 
00367 #ifndef traceQUEUE_CREATE
00368     #define traceQUEUE_CREATE( pxNewQueue )
00369 #endif
00370 
00371 #ifndef traceQUEUE_CREATE_FAILED
00372     #define traceQUEUE_CREATE_FAILED( ucQueueType )
00373 #endif
00374 
00375 #ifndef traceCREATE_MUTEX
00376     #define traceCREATE_MUTEX( pxNewQueue )
00377 #endif
00378 
00379 #ifndef traceCREATE_MUTEX_FAILED
00380     #define traceCREATE_MUTEX_FAILED()
00381 #endif
00382 
00383 #ifndef traceGIVE_MUTEX_RECURSIVE
00384     #define traceGIVE_MUTEX_RECURSIVE( pxMutex )
00385 #endif
00386 
00387 #ifndef traceGIVE_MUTEX_RECURSIVE_FAILED
00388     #define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex )
00389 #endif
00390 
00391 #ifndef traceTAKE_MUTEX_RECURSIVE
00392     #define traceTAKE_MUTEX_RECURSIVE( pxMutex )
00393 #endif
00394 
00395 #ifndef traceTAKE_MUTEX_RECURSIVE_FAILED
00396     #define traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex )
00397 #endif
00398 
00399 #ifndef traceCREATE_COUNTING_SEMAPHORE
00400     #define traceCREATE_COUNTING_SEMAPHORE()
00401 #endif
00402 
00403 #ifndef traceCREATE_COUNTING_SEMAPHORE_FAILED
00404     #define traceCREATE_COUNTING_SEMAPHORE_FAILED()
00405 #endif
00406 
00407 #ifndef traceQUEUE_SEND
00408     #define traceQUEUE_SEND( pxQueue )
00409 #endif
00410 
00411 #ifndef traceQUEUE_SEND_FAILED
00412     #define traceQUEUE_SEND_FAILED( pxQueue )
00413 #endif
00414 
00415 #ifndef traceQUEUE_RECEIVE
00416     #define traceQUEUE_RECEIVE( pxQueue )
00417 #endif
00418 
00419 #ifndef traceQUEUE_PEEK
00420     #define traceQUEUE_PEEK( pxQueue )
00421 #endif
00422 
00423 #ifndef traceQUEUE_PEEK_FROM_ISR
00424     #define traceQUEUE_PEEK_FROM_ISR( pxQueue )
00425 #endif
00426 
00427 #ifndef traceQUEUE_RECEIVE_FAILED
00428     #define traceQUEUE_RECEIVE_FAILED( pxQueue )
00429 #endif
00430 
00431 #ifndef traceQUEUE_SEND_FROM_ISR
00432     #define traceQUEUE_SEND_FROM_ISR( pxQueue )
00433 #endif
00434 
00435 #ifndef traceQUEUE_SEND_FROM_ISR_FAILED
00436     #define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue )
00437 #endif
00438 
00439 #ifndef traceQUEUE_RECEIVE_FROM_ISR
00440     #define traceQUEUE_RECEIVE_FROM_ISR( pxQueue )
00441 #endif
00442 
00443 #ifndef traceQUEUE_RECEIVE_FROM_ISR_FAILED
00444     #define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue )
00445 #endif
00446 
00447 #ifndef traceQUEUE_PEEK_FROM_ISR_FAILED
00448     #define traceQUEUE_PEEK_FROM_ISR_FAILED( pxQueue )
00449 #endif
00450 
00451 #ifndef traceQUEUE_DELETE
00452     #define traceQUEUE_DELETE( pxQueue )
00453 #endif
00454 
00455 #ifndef traceTASK_CREATE
00456     #define traceTASK_CREATE( pxNewTCB )
00457 #endif
00458 
00459 #ifndef traceTASK_CREATE_FAILED
00460     #define traceTASK_CREATE_FAILED()
00461 #endif
00462 
00463 #ifndef traceTASK_DELETE
00464     #define traceTASK_DELETE( pxTaskToDelete )
00465 #endif
00466 
00467 #ifndef traceTASK_DELAY_UNTIL
00468     #define traceTASK_DELAY_UNTIL()
00469 #endif
00470 
00471 #ifndef traceTASK_DELAY
00472     #define traceTASK_DELAY()
00473 #endif
00474 
00475 #ifndef traceTASK_PRIORITY_SET
00476     #define traceTASK_PRIORITY_SET( pxTask, uxNewPriority )
00477 #endif
00478 
00479 #ifndef traceTASK_SUSPEND
00480     #define traceTASK_SUSPEND( pxTaskToSuspend )
00481 #endif
00482 
00483 #ifndef traceTASK_RESUME
00484     #define traceTASK_RESUME( pxTaskToResume )
00485 #endif
00486 
00487 #ifndef traceTASK_RESUME_FROM_ISR
00488     #define traceTASK_RESUME_FROM_ISR( pxTaskToResume )
00489 #endif
00490 
00491 #ifndef traceTASK_INCREMENT_TICK
00492     #define traceTASK_INCREMENT_TICK( xTickCount )
00493 #endif
00494 
00495 #ifndef traceTIMER_CREATE
00496     #define traceTIMER_CREATE( pxNewTimer )
00497 #endif
00498 
00499 #ifndef traceTIMER_CREATE_FAILED
00500     #define traceTIMER_CREATE_FAILED()
00501 #endif
00502 
00503 #ifndef traceTIMER_COMMAND_SEND
00504     #define traceTIMER_COMMAND_SEND( xTimer, xMessageID, xMessageValueValue, xReturn )
00505 #endif
00506 
00507 #ifndef traceTIMER_EXPIRED
00508     #define traceTIMER_EXPIRED( pxTimer )
00509 #endif
00510 
00511 #ifndef traceTIMER_COMMAND_RECEIVED
00512     #define traceTIMER_COMMAND_RECEIVED( pxTimer, xMessageID, xMessageValue )
00513 #endif
00514 
00515 #ifndef traceMALLOC
00516     #define traceMALLOC( pvAddress, uiSize )
00517 #endif
00518 
00519 #ifndef traceFREE
00520     #define traceFREE( pvAddress, uiSize )
00521 #endif
00522 
00523 #ifndef configGENERATE_RUN_TIME_STATS
00524     #define configGENERATE_RUN_TIME_STATS 0
00525 #endif
00526 
00527 #if ( configGENERATE_RUN_TIME_STATS == 1 )
00528 
00529     #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
00530         #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.
00531     #endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */
00532 
00533     #ifndef portGET_RUN_TIME_COUNTER_VALUE
00534         #ifndef portALT_GET_RUN_TIME_COUNTER_VALUE
00535             #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.
00536         #endif /* portALT_GET_RUN_TIME_COUNTER_VALUE */
00537     #endif /* portGET_RUN_TIME_COUNTER_VALUE */
00538 
00539 #endif /* configGENERATE_RUN_TIME_STATS */
00540 
00541 #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
00542     #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()
00543 #endif
00544 
00545 #ifndef configUSE_MALLOC_FAILED_HOOK
00546     #define configUSE_MALLOC_FAILED_HOOK 0
00547 #endif
00548 
00549 #ifndef portPRIVILEGE_BIT
00550     #define portPRIVILEGE_BIT ( ( unsigned portBASE_TYPE ) 0x00 )
00551 #endif
00552 
00553 #ifndef portYIELD_WITHIN_API
00554     #define portYIELD_WITHIN_API portYIELD
00555 #endif
00556 
00557 #ifndef pvPortMallocAligned
00558     #define pvPortMallocAligned( x, puxStackBuffer ) ( ( ( puxStackBuffer ) == NULL ) ? ( pvPortMalloc( ( x ) ) ) : ( puxStackBuffer ) )
00559 #endif
00560 
00561 #ifndef vPortFreeAligned
00562     #define vPortFreeAligned( pvBlockToFree ) vPortFree( pvBlockToFree )
00563 #endif
00564 
00565 #ifndef portSUPPRESS_TICKS_AND_SLEEP
00566     #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )
00567 #endif
00568 
00569 #ifndef configEXPECTED_IDLE_TIME_BEFORE_SLEEP
00570     #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2
00571 #endif
00572 
00573 #if configEXPECTED_IDLE_TIME_BEFORE_SLEEP < 2
00574     #error configEXPECTED_IDLE_TIME_BEFORE_SLEEP must not be less than 2
00575 #endif
00576 
00577 #ifndef configUSE_TICKLESS_IDLE
00578     #define configUSE_TICKLESS_IDLE 0
00579 #endif
00580 
00581 #ifndef configPRE_SLEEP_PROCESSING
00582     #define configPRE_SLEEP_PROCESSING( x )
00583 #endif
00584 
00585 #ifndef configPOST_SLEEP_PROCESSING
00586     #define configPOST_SLEEP_PROCESSING( x )
00587 #endif
00588 
00589 #ifndef configUSE_QUEUE_SETS
00590     #define configUSE_QUEUE_SETS 0
00591 #endif
00592 
00593 #ifndef portTASK_USES_FLOATING_POINT
00594     #define portTASK_USES_FLOATING_POINT()
00595 #endif
00596 
00597 #ifndef configUSE_TIME_SLICING
00598     #define configUSE_TIME_SLICING 1
00599 #endif
00600 
00601 #ifndef configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS
00602     #define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0
00603 #endif
00604 
00605 #ifndef configUSE_NEWLIB_REENTRANT
00606     #define configUSE_NEWLIB_REENTRANT 0
00607 #endif
00608 
00609 #ifndef configUSE_STATS_FORMATTING_FUNCTIONS
00610     #define configUSE_STATS_FORMATTING_FUNCTIONS 0
00611 #endif
00612 
00613 #ifndef portASSERT_IF_INTERRUPT_PRIORITY_INVALID
00614     #define portASSERT_IF_INTERRUPT_PRIORITY_INVALID()
00615 #endif
00616 
00617 /* For backward compatability. */
00618 #define eTaskStateGet eTaskGetState
00619 
00620 #endif /* INC_FREERTOS_H */
00621