TI's CC3100 websocket camera demo with Arducam mini ov5642 and freertos. Should work with other M3's. Work in progress test demo.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers FreeRTOS.h Source File

FreeRTOS.h

00001 /*
00002     FreeRTOS V8.2.1 - Copyright (C) 2015 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     This file is part of the FreeRTOS distribution.
00008 
00009     FreeRTOS is free software; you can redistribute it and/or modify it under
00010     the terms of the GNU General Public License (version 2) as published by the
00011     Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
00012 
00013     ***************************************************************************
00014     >>!   NOTE: The modification to the GPL is included to allow you to     !<<
00015     >>!   distribute a combined work that includes FreeRTOS without being   !<<
00016     >>!   obliged to provide the source code for proprietary components     !<<
00017     >>!   outside of the FreeRTOS kernel.                                   !<<
00018     ***************************************************************************
00019 
00020     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
00021     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00022     FOR A PARTICULAR PURPOSE.  Full license text is available on the following
00023     link: http://www.freertos.org/a00114.html
00024 
00025     ***************************************************************************
00026      *                                                                       *
00027      *    FreeRTOS provides completely free yet professionally developed,    *
00028      *    robust, strictly quality controlled, supported, and cross          *
00029      *    platform software that is more than just the market leader, it     *
00030      *    is the industry's de facto standard.                               *
00031      *                                                                       *
00032      *    Help yourself get started quickly while simultaneously helping     *
00033      *    to support the FreeRTOS project by purchasing a FreeRTOS           *
00034      *    tutorial book, reference manual, or both:                          *
00035      *    http://www.FreeRTOS.org/Documentation                              *
00036      *                                                                       *
00037     ***************************************************************************
00038 
00039     http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading
00040     the FAQ page "My application does not run, what could be wrong?".  Have you
00041     defined configASSERT()?
00042 
00043     http://www.FreeRTOS.org/support - In return for receiving this top quality
00044     embedded software for free we request you assist our global community by
00045     participating in the support forum.
00046 
00047     http://www.FreeRTOS.org/training - Investing in training allows your team to
00048     be as productive as possible as early as possible.  Now you can receive
00049     FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
00050     Ltd, and the world's leading authority on the world's leading RTOS.
00051 
00052     http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
00053     including FreeRTOS+Trace - an indispensable productivity tool, a DOS
00054     compatible FAT file system, and our tiny thread aware UDP/IP stack.
00055 
00056     http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
00057     Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
00058 
00059     http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
00060     Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS
00061     licenses offer ticketed support, indemnification and commercial middleware.
00062 
00063     http://www.SafeRTOS.com - High Integrity Systems also provide a safety
00064     engineered and independently SIL3 certified version for use in safety and
00065     mission critical applications that require provable dependability.
00066 
00067     1 tab == 4 spaces!
00068 */
00069 
00070 #ifndef INC_FREERTOS_H
00071 #define INC_FREERTOS_H
00072 
00073 /*
00074  * Include the generic headers required for the FreeRTOS port being used.
00075  */
00076 #include <stddef.h>
00077 
00078 /*
00079  * If stdint.h cannot be located then:
00080  *   + If using GCC ensure the -nostdint options is *not* being used.
00081  *   + Ensure the project's include path includes the directory in which your
00082  *     compiler stores stdint.h.
00083  *   + Set any compiler options necessary for it to support C99, as technically
00084  *     stdint.h is only mandatory with C99 (FreeRTOS does not require C99 in any
00085  *     other way).
00086  *   + The FreeRTOS download includes a simple stdint.h definition that can be
00087  *     used in cases where none is provided by the compiler.  The files only
00088  *     contains the typedefs required to build FreeRTOS.  Read the instructions
00089  *     in FreeRTOS/source/stdint.readme for more information.
00090  */
00091 #include <stdint.h> /* READ COMMENT ABOVE. */
00092 
00093 #ifdef __cplusplus
00094 extern "C" {
00095 #endif
00096 
00097 /* Application specific configuration options. */
00098 #include "FreeRTOSConfig.h"
00099 
00100 /* Basic FreeRTOS definitions. */
00101 #include "projdefs.h"
00102 
00103 /* Definitions specific to the port being used. */
00104 #include "portable.h"
00105 
00106 /*
00107  * Check all the required application specific macros have been defined.
00108  * These macros are application specific and (as downloaded) are defined
00109  * within FreeRTOSConfig.h.
00110  */
00111 
00112 #ifndef configMINIMAL_STACK_SIZE
00113     #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.
00114 #endif
00115 
00116 #ifndef configMAX_PRIORITIES
00117     #error Missing definition:  configMAX_PRIORITIES must be defined in FreeRTOSConfig.h.  See the Configuration section of the FreeRTOS API documentation for details.
00118 #endif
00119 
00120 #ifndef configUSE_PREEMPTION
00121     #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.
00122 #endif
00123 
00124 #ifndef configUSE_IDLE_HOOK
00125     #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.
00126 #endif
00127 
00128 #ifndef configUSE_TICK_HOOK
00129     #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.
00130 #endif
00131 
00132 #ifndef INCLUDE_vTaskPrioritySet
00133     #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.
00134 #endif
00135 
00136 #ifndef INCLUDE_uxTaskPriorityGet
00137     #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.
00138 #endif
00139 
00140 #ifndef INCLUDE_vTaskDelete
00141     #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.
00142 #endif
00143 
00144 #ifndef INCLUDE_vTaskSuspend
00145     #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.
00146 #endif
00147 
00148 #ifndef INCLUDE_vTaskDelayUntil
00149     #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.
00150 #endif
00151 
00152 #ifndef INCLUDE_vTaskDelay
00153     #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.
00154 #endif
00155 
00156 #ifndef configUSE_16_BIT_TICKS
00157     #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.
00158 #endif
00159 
00160 #ifndef configMAX_PRIORITIES
00161     #error configMAX_PRIORITIES must be defined to be greater than or equal to 1.
00162 #endif
00163 
00164 #ifndef configUSE_CO_ROUTINES
00165     #define configUSE_CO_ROUTINES 0
00166 #endif
00167 
00168 #if configUSE_CO_ROUTINES != 0
00169     #ifndef configMAX_CO_ROUTINE_PRIORITIES
00170         #error configMAX_CO_ROUTINE_PRIORITIES must be greater than or equal to 1.
00171     #endif
00172 #endif
00173 
00174 #ifndef INCLUDE_xTaskGetIdleTaskHandle
00175     #define INCLUDE_xTaskGetIdleTaskHandle 0
00176 #endif
00177 
00178 #ifndef INCLUDE_xTimerGetTimerDaemonTaskHandle
00179     #define INCLUDE_xTimerGetTimerDaemonTaskHandle 0
00180 #endif
00181 
00182 #ifndef INCLUDE_xQueueGetMutexHolder
00183     #define INCLUDE_xQueueGetMutexHolder 0
00184 #endif
00185 
00186 #ifndef INCLUDE_xSemaphoreGetMutexHolder
00187     #define INCLUDE_xSemaphoreGetMutexHolder INCLUDE_xQueueGetMutexHolder
00188 #endif
00189 
00190 #ifndef INCLUDE_pcTaskGetTaskName
00191     #define INCLUDE_pcTaskGetTaskName 0
00192 #endif
00193 
00194 #ifndef configUSE_APPLICATION_TASK_TAG
00195     #define configUSE_APPLICATION_TASK_TAG 0
00196 #endif
00197 
00198 #ifndef configNUM_THREAD_LOCAL_STORAGE_POINTERS
00199     #define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
00200 #endif
00201 
00202 #ifndef INCLUDE_uxTaskGetStackHighWaterMark
00203     #define INCLUDE_uxTaskGetStackHighWaterMark 0
00204 #endif
00205 
00206 #ifndef INCLUDE_eTaskGetState
00207     #define INCLUDE_eTaskGetState 0
00208 #endif
00209 
00210 #ifndef configUSE_RECURSIVE_MUTEXES
00211     #define configUSE_RECURSIVE_MUTEXES 0
00212 #endif
00213 
00214 #ifndef configUSE_MUTEXES
00215     #define configUSE_MUTEXES 0
00216 #endif
00217 
00218 #ifndef configUSE_TIMERS
00219     #define configUSE_TIMERS 0
00220 #endif
00221 
00222 #ifndef configUSE_COUNTING_SEMAPHORES
00223     #define configUSE_COUNTING_SEMAPHORES 0
00224 #endif
00225 
00226 #ifndef configUSE_ALTERNATIVE_API
00227     #define configUSE_ALTERNATIVE_API 0
00228 #endif
00229 
00230 #ifndef portCRITICAL_NESTING_IN_TCB
00231     #define portCRITICAL_NESTING_IN_TCB 0
00232 #endif
00233 
00234 #ifndef configMAX_TASK_NAME_LEN
00235     #define configMAX_TASK_NAME_LEN 16
00236 #endif
00237 
00238 #ifndef configIDLE_SHOULD_YIELD
00239     #define configIDLE_SHOULD_YIELD     1
00240 #endif
00241 
00242 #if configMAX_TASK_NAME_LEN < 1
00243     #error configMAX_TASK_NAME_LEN must be set to a minimum of 1 in FreeRTOSConfig.h
00244 #endif
00245 
00246 #ifndef INCLUDE_xTaskResumeFromISR
00247     #define INCLUDE_xTaskResumeFromISR 1
00248 #endif
00249 
00250 #ifndef INCLUDE_xEventGroupSetBitFromISR
00251     #define INCLUDE_xEventGroupSetBitFromISR 0
00252 #endif
00253 
00254 #ifndef INCLUDE_xTimerPendFunctionCall
00255     #define INCLUDE_xTimerPendFunctionCall 0
00256 #endif
00257 
00258 #ifndef configASSERT
00259     #define configASSERT( x )
00260     #define configASSERT_DEFINED 0
00261 #else
00262     #define configASSERT_DEFINED 1
00263 #endif
00264 
00265 /* The timers module relies on xTaskGetSchedulerState(). */
00266 #if configUSE_TIMERS == 1
00267 
00268     #ifndef configTIMER_TASK_PRIORITY
00269         #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_PRIORITY must also be defined.
00270     #endif /* configTIMER_TASK_PRIORITY */
00271 
00272     #ifndef configTIMER_QUEUE_LENGTH
00273         #error If configUSE_TIMERS is set to 1 then configTIMER_QUEUE_LENGTH must also be defined.
00274     #endif /* configTIMER_QUEUE_LENGTH */
00275 
00276     #ifndef configTIMER_TASK_STACK_DEPTH
00277         #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_STACK_DEPTH must also be defined.
00278     #endif /* configTIMER_TASK_STACK_DEPTH */
00279 
00280 #endif /* configUSE_TIMERS */
00281 
00282 #ifndef INCLUDE_xTaskGetSchedulerState
00283     #define INCLUDE_xTaskGetSchedulerState 0
00284 #endif
00285 
00286 #ifndef INCLUDE_xTaskGetCurrentTaskHandle
00287     #define INCLUDE_xTaskGetCurrentTaskHandle 0
00288 #endif
00289 
00290 
00291 #ifndef portSET_INTERRUPT_MASK_FROM_ISR
00292     #define portSET_INTERRUPT_MASK_FROM_ISR() 0
00293 #endif
00294 
00295 #ifndef portCLEAR_INTERRUPT_MASK_FROM_ISR
00296     #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue ) ( void ) uxSavedStatusValue
00297 #endif
00298 
00299 #ifndef portCLEAN_UP_TCB
00300     #define portCLEAN_UP_TCB( pxTCB ) ( void ) pxTCB
00301 #endif
00302 
00303 #ifndef portPRE_TASK_DELETE_HOOK
00304     #define portPRE_TASK_DELETE_HOOK( pvTaskToDelete, pxYieldPending )
00305 #endif
00306 
00307 #ifndef portSETUP_TCB
00308     #define portSETUP_TCB( pxTCB ) ( void ) pxTCB
00309 #endif
00310 
00311 #ifndef configQUEUE_REGISTRY_SIZE
00312     #define configQUEUE_REGISTRY_SIZE 0U
00313 #endif
00314 
00315 #if ( configQUEUE_REGISTRY_SIZE < 1 )
00316     #define vQueueAddToRegistry( xQueue, pcName )
00317     #define vQueueUnregisterQueue( xQueue )
00318 #endif
00319 
00320 #ifndef portPOINTER_SIZE_TYPE
00321     #define portPOINTER_SIZE_TYPE uint32_t
00322 #endif
00323 
00324 /* Remove any unused trace macros. */
00325 #ifndef traceSTART
00326     /* Used to perform any necessary initialisation - for example, open a file
00327     into which trace is to be written. */
00328     #define traceSTART()
00329 #endif
00330 
00331 #ifndef traceEND
00332     /* Use to close a trace, for example close a file into which trace has been
00333     written. */
00334     #define traceEND()
00335 #endif
00336 
00337 #ifndef traceTASK_SWITCHED_IN
00338     /* Called after a task has been selected to run.  pxCurrentTCB holds a pointer
00339     to the task control block of the selected task. */
00340     #define traceTASK_SWITCHED_IN()
00341 #endif
00342 
00343 #ifndef traceINCREASE_TICK_COUNT
00344     /* Called before stepping the tick count after waking from tickless idle
00345     sleep. */
00346     #define traceINCREASE_TICK_COUNT( x )
00347 #endif
00348 
00349 #ifndef traceLOW_POWER_IDLE_BEGIN
00350     /* Called immediately before entering tickless idle. */
00351     #define traceLOW_POWER_IDLE_BEGIN()
00352 #endif
00353 
00354 #ifndef traceLOW_POWER_IDLE_END
00355     /* Called when returning to the Idle task after a tickless idle. */
00356     #define traceLOW_POWER_IDLE_END()
00357 #endif
00358 
00359 #ifndef traceTASK_SWITCHED_OUT
00360     /* Called before a task has been selected to run.  pxCurrentTCB holds a pointer
00361     to the task control block of the task being switched out. */
00362     #define traceTASK_SWITCHED_OUT()
00363 #endif
00364 
00365 #ifndef traceTASK_PRIORITY_INHERIT
00366     /* Called when a task attempts to take a mutex that is already held by a
00367     lower priority task.  pxTCBOfMutexHolder is a pointer to the TCB of the task
00368     that holds the mutex.  uxInheritedPriority is the priority the mutex holder
00369     will inherit (the priority of the task that is attempting to obtain the
00370     muted. */
00371     #define traceTASK_PRIORITY_INHERIT( pxTCBOfMutexHolder, uxInheritedPriority )
00372 #endif
00373 
00374 #ifndef traceTASK_PRIORITY_DISINHERIT
00375     /* Called when a task releases a mutex, the holding of which had resulted in
00376     the task inheriting the priority of a higher priority task.
00377     pxTCBOfMutexHolder is a pointer to the TCB of the task that is releasing the
00378     mutex.  uxOriginalPriority is the task's configured (base) priority. */
00379     #define traceTASK_PRIORITY_DISINHERIT( pxTCBOfMutexHolder, uxOriginalPriority )
00380 #endif
00381 
00382 #ifndef traceBLOCKING_ON_QUEUE_RECEIVE
00383     /* Task is about to block because it cannot read from a
00384     queue/mutex/semaphore.  pxQueue is a pointer to the queue/mutex/semaphore
00385     upon which the read was attempted.  pxCurrentTCB points to the TCB of the
00386     task that attempted the read. */
00387     #define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue )
00388 #endif
00389 
00390 #ifndef traceBLOCKING_ON_QUEUE_SEND
00391     /* Task is about to block because it cannot write to a
00392     queue/mutex/semaphore.  pxQueue is a pointer to the queue/mutex/semaphore
00393     upon which the write was attempted.  pxCurrentTCB points to the TCB of the
00394     task that attempted the write. */
00395     #define traceBLOCKING_ON_QUEUE_SEND( pxQueue )
00396 #endif
00397 
00398 #ifndef configCHECK_FOR_STACK_OVERFLOW
00399     #define configCHECK_FOR_STACK_OVERFLOW 0
00400 #endif
00401 
00402 /* The following event macros are embedded in the kernel API calls. */
00403 
00404 #ifndef traceMOVED_TASK_TO_READY_STATE
00405     #define traceMOVED_TASK_TO_READY_STATE( pxTCB )
00406 #endif
00407 
00408 #ifndef traceQUEUE_CREATE
00409     #define traceQUEUE_CREATE( pxNewQueue )
00410 #endif
00411 
00412 #ifndef traceQUEUE_CREATE_FAILED
00413     #define traceQUEUE_CREATE_FAILED( ucQueueType )
00414 #endif
00415 
00416 #ifndef traceCREATE_MUTEX
00417     #define traceCREATE_MUTEX( pxNewQueue )
00418 #endif
00419 
00420 #ifndef traceCREATE_MUTEX_FAILED
00421     #define traceCREATE_MUTEX_FAILED()
00422 #endif
00423 
00424 #ifndef traceGIVE_MUTEX_RECURSIVE
00425     #define traceGIVE_MUTEX_RECURSIVE( pxMutex )
00426 #endif
00427 
00428 #ifndef traceGIVE_MUTEX_RECURSIVE_FAILED
00429     #define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex )
00430 #endif
00431 
00432 #ifndef traceTAKE_MUTEX_RECURSIVE
00433     #define traceTAKE_MUTEX_RECURSIVE( pxMutex )
00434 #endif
00435 
00436 #ifndef traceTAKE_MUTEX_RECURSIVE_FAILED
00437     #define traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex )
00438 #endif
00439 
00440 #ifndef traceCREATE_COUNTING_SEMAPHORE
00441     #define traceCREATE_COUNTING_SEMAPHORE()
00442 #endif
00443 
00444 #ifndef traceCREATE_COUNTING_SEMAPHORE_FAILED
00445     #define traceCREATE_COUNTING_SEMAPHORE_FAILED()
00446 #endif
00447 
00448 #ifndef traceQUEUE_SEND
00449     #define traceQUEUE_SEND( pxQueue )
00450 #endif
00451 
00452 #ifndef traceQUEUE_SEND_FAILED
00453     #define traceQUEUE_SEND_FAILED( pxQueue )
00454 #endif
00455 
00456 #ifndef traceQUEUE_RECEIVE
00457     #define traceQUEUE_RECEIVE( pxQueue )
00458 #endif
00459 
00460 #ifndef traceQUEUE_PEEK
00461     #define traceQUEUE_PEEK( pxQueue )
00462 #endif
00463 
00464 #ifndef traceQUEUE_PEEK_FROM_ISR
00465     #define traceQUEUE_PEEK_FROM_ISR( pxQueue )
00466 #endif
00467 
00468 #ifndef traceQUEUE_RECEIVE_FAILED
00469     #define traceQUEUE_RECEIVE_FAILED( pxQueue )
00470 #endif
00471 
00472 #ifndef traceQUEUE_SEND_FROM_ISR
00473     #define traceQUEUE_SEND_FROM_ISR( pxQueue )
00474 #endif
00475 
00476 #ifndef traceQUEUE_SEND_FROM_ISR_FAILED
00477     #define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue )
00478 #endif
00479 
00480 #ifndef traceQUEUE_RECEIVE_FROM_ISR
00481     #define traceQUEUE_RECEIVE_FROM_ISR( pxQueue )
00482 #endif
00483 
00484 #ifndef traceQUEUE_RECEIVE_FROM_ISR_FAILED
00485     #define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue )
00486 #endif
00487 
00488 #ifndef traceQUEUE_PEEK_FROM_ISR_FAILED
00489     #define traceQUEUE_PEEK_FROM_ISR_FAILED( pxQueue )
00490 #endif
00491 
00492 #ifndef traceQUEUE_DELETE
00493     #define traceQUEUE_DELETE( pxQueue )
00494 #endif
00495 
00496 #ifndef traceTASK_CREATE
00497     #define traceTASK_CREATE( pxNewTCB )
00498 #endif
00499 
00500 #ifndef traceTASK_CREATE_FAILED
00501     #define traceTASK_CREATE_FAILED()
00502 #endif
00503 
00504 #ifndef traceTASK_DELETE
00505     #define traceTASK_DELETE( pxTaskToDelete )
00506 #endif
00507 
00508 #ifndef traceTASK_DELAY_UNTIL
00509     #define traceTASK_DELAY_UNTIL()
00510 #endif
00511 
00512 #ifndef traceTASK_DELAY
00513     #define traceTASK_DELAY()
00514 #endif
00515 
00516 #ifndef traceTASK_PRIORITY_SET
00517     #define traceTASK_PRIORITY_SET( pxTask, uxNewPriority )
00518 #endif
00519 
00520 #ifndef traceTASK_SUSPEND
00521     #define traceTASK_SUSPEND( pxTaskToSuspend )
00522 #endif
00523 
00524 #ifndef traceTASK_RESUME
00525     #define traceTASK_RESUME( pxTaskToResume )
00526 #endif
00527 
00528 #ifndef traceTASK_RESUME_FROM_ISR
00529     #define traceTASK_RESUME_FROM_ISR( pxTaskToResume )
00530 #endif
00531 
00532 #ifndef traceTASK_INCREMENT_TICK
00533     #define traceTASK_INCREMENT_TICK( xTickCount )
00534 #endif
00535 
00536 #ifndef traceTIMER_CREATE
00537     #define traceTIMER_CREATE( pxNewTimer )
00538 #endif
00539 
00540 #ifndef traceTIMER_CREATE_FAILED
00541     #define traceTIMER_CREATE_FAILED()
00542 #endif
00543 
00544 #ifndef traceTIMER_COMMAND_SEND
00545     #define traceTIMER_COMMAND_SEND( xTimer, xMessageID, xMessageValueValue, xReturn )
00546 #endif
00547 
00548 #ifndef traceTIMER_EXPIRED
00549     #define traceTIMER_EXPIRED( pxTimer )
00550 #endif
00551 
00552 #ifndef traceTIMER_COMMAND_RECEIVED
00553     #define traceTIMER_COMMAND_RECEIVED( pxTimer, xMessageID, xMessageValue )
00554 #endif
00555 
00556 #ifndef traceMALLOC
00557     #define traceMALLOC( pvAddress, uiSize )
00558 #endif
00559 
00560 #ifndef traceFREE
00561     #define traceFREE( pvAddress, uiSize )
00562 #endif
00563 
00564 #ifndef traceEVENT_GROUP_CREATE
00565     #define traceEVENT_GROUP_CREATE( xEventGroup )
00566 #endif
00567 
00568 #ifndef traceEVENT_GROUP_CREATE_FAILED
00569     #define traceEVENT_GROUP_CREATE_FAILED()
00570 #endif
00571 
00572 #ifndef traceEVENT_GROUP_SYNC_BLOCK
00573     #define traceEVENT_GROUP_SYNC_BLOCK( xEventGroup, uxBitsToSet, uxBitsToWaitFor )
00574 #endif
00575 
00576 #ifndef traceEVENT_GROUP_SYNC_END
00577     #define traceEVENT_GROUP_SYNC_END( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) xTimeoutOccurred
00578 #endif
00579 
00580 #ifndef traceEVENT_GROUP_WAIT_BITS_BLOCK
00581     #define traceEVENT_GROUP_WAIT_BITS_BLOCK( xEventGroup, uxBitsToWaitFor )
00582 #endif
00583 
00584 #ifndef traceEVENT_GROUP_WAIT_BITS_END
00585     #define traceEVENT_GROUP_WAIT_BITS_END( xEventGroup, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) xTimeoutOccurred
00586 #endif
00587 
00588 #ifndef traceEVENT_GROUP_CLEAR_BITS
00589     #define traceEVENT_GROUP_CLEAR_BITS( xEventGroup, uxBitsToClear )
00590 #endif
00591 
00592 #ifndef traceEVENT_GROUP_CLEAR_BITS_FROM_ISR
00593     #define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR( xEventGroup, uxBitsToClear )
00594 #endif
00595 
00596 #ifndef traceEVENT_GROUP_SET_BITS
00597     #define traceEVENT_GROUP_SET_BITS( xEventGroup, uxBitsToSet )
00598 #endif
00599 
00600 #ifndef traceEVENT_GROUP_SET_BITS_FROM_ISR
00601     #define traceEVENT_GROUP_SET_BITS_FROM_ISR( xEventGroup, uxBitsToSet )
00602 #endif
00603 
00604 #ifndef traceEVENT_GROUP_DELETE
00605     #define traceEVENT_GROUP_DELETE( xEventGroup )
00606 #endif
00607 
00608 #ifndef tracePEND_FUNC_CALL
00609     #define tracePEND_FUNC_CALL(xFunctionToPend, pvParameter1, ulParameter2, ret)
00610 #endif
00611 
00612 #ifndef tracePEND_FUNC_CALL_FROM_ISR
00613     #define tracePEND_FUNC_CALL_FROM_ISR(xFunctionToPend, pvParameter1, ulParameter2, ret)
00614 #endif
00615 
00616 #ifndef traceQUEUE_REGISTRY_ADD
00617     #define traceQUEUE_REGISTRY_ADD(xQueue, pcQueueName)
00618 #endif
00619 
00620 #ifndef configGENERATE_RUN_TIME_STATS
00621     #define configGENERATE_RUN_TIME_STATS 0
00622 #endif
00623 
00624 #if ( configGENERATE_RUN_TIME_STATS == 1 )
00625 
00626     #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
00627         #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.
00628     #endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */
00629 
00630     #ifndef portGET_RUN_TIME_COUNTER_VALUE
00631         #ifndef portALT_GET_RUN_TIME_COUNTER_VALUE
00632             #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.
00633         #endif /* portALT_GET_RUN_TIME_COUNTER_VALUE */
00634     #endif /* portGET_RUN_TIME_COUNTER_VALUE */
00635 
00636 #endif /* configGENERATE_RUN_TIME_STATS */
00637 
00638 #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
00639     #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()
00640 #endif
00641 
00642 #ifndef configUSE_MALLOC_FAILED_HOOK
00643     #define configUSE_MALLOC_FAILED_HOOK 0
00644 #endif
00645 
00646 #ifndef portPRIVILEGE_BIT
00647     #define portPRIVILEGE_BIT ( ( UBaseType_t ) 0x00 )
00648 #endif
00649 
00650 #ifndef portYIELD_WITHIN_API
00651     #define portYIELD_WITHIN_API portYIELD
00652 #endif
00653 
00654 #ifndef pvPortMallocAligned
00655     #define pvPortMallocAligned( x, puxStackBuffer ) ( ( ( puxStackBuffer ) == NULL ) ? ( pvPortMalloc( ( x ) ) ) : ( puxStackBuffer ) )
00656 #endif
00657 
00658 #ifndef vPortFreeAligned
00659     #define vPortFreeAligned( pvBlockToFree ) vPortFree( pvBlockToFree )
00660 #endif
00661 
00662 #ifndef portSUPPRESS_TICKS_AND_SLEEP
00663     #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )
00664 #endif
00665 
00666 #ifndef configEXPECTED_IDLE_TIME_BEFORE_SLEEP
00667     #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2
00668 #endif
00669 
00670 #if configEXPECTED_IDLE_TIME_BEFORE_SLEEP < 2
00671     #error configEXPECTED_IDLE_TIME_BEFORE_SLEEP must not be less than 2
00672 #endif
00673 
00674 #ifndef configUSE_TICKLESS_IDLE
00675     #define configUSE_TICKLESS_IDLE 0
00676 #endif
00677 
00678 #ifndef configPRE_SLEEP_PROCESSING
00679     #define configPRE_SLEEP_PROCESSING( x )
00680 #endif
00681 
00682 #ifndef configPOST_SLEEP_PROCESSING
00683     #define configPOST_SLEEP_PROCESSING( x )
00684 #endif
00685 
00686 #ifndef configUSE_QUEUE_SETS
00687     #define configUSE_QUEUE_SETS 0
00688 #endif
00689 
00690 #ifndef portTASK_USES_FLOATING_POINT
00691     #define portTASK_USES_FLOATING_POINT()
00692 #endif
00693 
00694 #ifndef configUSE_TIME_SLICING
00695     #define configUSE_TIME_SLICING 1
00696 #endif
00697 
00698 #ifndef configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS
00699     #define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0
00700 #endif
00701 
00702 #ifndef configUSE_NEWLIB_REENTRANT
00703     #define configUSE_NEWLIB_REENTRANT 0
00704 #endif
00705 
00706 #ifndef configUSE_STATS_FORMATTING_FUNCTIONS
00707     #define configUSE_STATS_FORMATTING_FUNCTIONS 0
00708 #endif
00709 
00710 #ifndef portASSERT_IF_INTERRUPT_PRIORITY_INVALID
00711     #define portASSERT_IF_INTERRUPT_PRIORITY_INVALID()
00712 #endif
00713 
00714 #ifndef configUSE_TRACE_FACILITY
00715     #define configUSE_TRACE_FACILITY 0
00716 #endif
00717 
00718 #ifndef mtCOVERAGE_TEST_MARKER
00719     #define mtCOVERAGE_TEST_MARKER()
00720 #endif
00721 
00722 #ifndef mtCOVERAGE_TEST_DELAY
00723     #define mtCOVERAGE_TEST_DELAY()
00724 #endif
00725 
00726 #ifndef portASSERT_IF_IN_ISR
00727     #define portASSERT_IF_IN_ISR()
00728 #endif
00729 
00730 #ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION
00731     #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
00732 #endif
00733 
00734 #ifndef configAPPLICATION_ALLOCATED_HEAP
00735     #define configAPPLICATION_ALLOCATED_HEAP 0
00736 #endif
00737 
00738 #ifndef configUSE_TASK_NOTIFICATIONS
00739     #define configUSE_TASK_NOTIFICATIONS 1
00740 #endif
00741 
00742 #ifndef portTICK_TYPE_IS_ATOMIC
00743     #define portTICK_TYPE_IS_ATOMIC 0
00744 #endif
00745 
00746 #if( portTICK_TYPE_IS_ATOMIC == 0 )
00747     /* Either variables of tick type cannot be read atomically, or
00748     portTICK_TYPE_IS_ATOMIC was not set - map the critical sections used when
00749     the tick count is returned to the standard critical section macros. */
00750     #define portTICK_TYPE_ENTER_CRITICAL() portENTER_CRITICAL()
00751     #define portTICK_TYPE_EXIT_CRITICAL() portEXIT_CRITICAL()
00752     #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() portSET_INTERRUPT_MASK_FROM_ISR()
00753     #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) portCLEAR_INTERRUPT_MASK_FROM_ISR( ( x ) )
00754 #else
00755     /* The tick type can be read atomically, so critical sections used when the
00756     tick count is returned can be defined away. */
00757     #define portTICK_TYPE_ENTER_CRITICAL()
00758     #define portTICK_TYPE_EXIT_CRITICAL()
00759     #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() 0
00760     #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) ( void ) x
00761 #endif
00762 
00763 /* Definitions to allow backward compatibility with FreeRTOS versions prior to
00764 V8 if desired. */
00765 #ifndef configENABLE_BACKWARD_COMPATIBILITY
00766     #define configENABLE_BACKWARD_COMPATIBILITY 1
00767 #endif
00768 
00769 #if configENABLE_BACKWARD_COMPATIBILITY == 1
00770     #define eTaskStateGet eTaskGetState
00771     #define portTickType TickType_t
00772     #define xTaskHandle TaskHandle_t
00773     #define xQueueHandle QueueHandle_t
00774     #define xSemaphoreHandle SemaphoreHandle_t
00775     #define xQueueSetHandle QueueSetHandle_t
00776     #define xQueueSetMemberHandle QueueSetMemberHandle_t
00777     #define xTimeOutType TimeOut_t
00778     #define xMemoryRegion MemoryRegion_t
00779     #define xTaskParameters TaskParameters_t
00780     #define xTaskStatusType TaskStatus_t
00781     #define xTimerHandle TimerHandle_t
00782     #define xCoRoutineHandle CoRoutineHandle_t
00783     #define pdTASK_HOOK_CODE TaskHookFunction_t
00784     #define portTICK_RATE_MS portTICK_PERIOD_MS
00785 
00786     /* Backward compatibility within the scheduler code only - these definitions
00787     are not really required but are included for completeness. */
00788     #define tmrTIMER_CALLBACK TimerCallbackFunction_t
00789     #define pdTASK_CODE TaskFunction_t
00790     #define xListItem ListItem_t
00791     #define xList List_t
00792 #endif /* configENABLE_BACKWARD_COMPATIBILITY */
00793 
00794 #ifdef __cplusplus
00795 }
00796 #endif
00797 
00798 #endif /* INC_FREERTOS_H */
00799 
00800