| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791 | 
							- /*
 
-     FreeRTOS V8.2.0 - Copyright (C) 2015 Real Time Engineers Ltd.
 
-     All rights reserved
 
-     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
 
-     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
 
-     Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
 
- 	***************************************************************************
 
-     >>!   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.                                   !<<
 
- 	***************************************************************************
 
-     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
 
-     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 
-     FOR A PARTICULAR PURPOSE.  Full license text is available on the following
 
-     link: http://www.freertos.org/a00114.html
 
-     ***************************************************************************
 
-      *                                                                       *
 
-      *    FreeRTOS provides completely free yet professionally developed,    *
 
-      *    robust, strictly quality controlled, supported, and cross          *
 
-      *    platform software that is more than just the market leader, it     *
 
-      *    is the industry's de facto standard.                               *
 
-      *                                                                       *
 
-      *    Help yourself get started quickly while simultaneously helping     *
 
-      *    to support the FreeRTOS project by purchasing a FreeRTOS           *
 
-      *    tutorial book, reference manual, or both:                          *
 
-      *    http://www.FreeRTOS.org/Documentation                              *
 
-      *                                                                       *
 
-     ***************************************************************************
 
-     http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading
 
- 	the FAQ page "My application does not run, what could be wrong?".  Have you
 
- 	defined configASSERT()?
 
- 	http://www.FreeRTOS.org/support - In return for receiving this top quality
 
- 	embedded software for free we request you assist our global community by
 
- 	participating in the support forum.
 
- 	http://www.FreeRTOS.org/training - Investing in training allows your team to
 
- 	be as productive as possible as early as possible.  Now you can receive
 
- 	FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
 
- 	Ltd, and the world's leading authority on the world's leading RTOS.
 
-     http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
 
-     including FreeRTOS+Trace - an indispensable productivity tool, a DOS
 
-     compatible FAT file system, and our tiny thread aware UDP/IP stack.
 
-     http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
 
-     Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
 
-     http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
 
-     Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS
 
-     licenses offer ticketed support, indemnification and commercial middleware.
 
-     http://www.SafeRTOS.com - High Integrity Systems also provide a safety
 
-     engineered and independently SIL3 certified version for use in safety and
 
-     mission critical applications that require provable dependability.
 
-     1 tab == 4 spaces!
 
- */
 
- #ifndef INC_FREERTOS_H
 
- #define INC_FREERTOS_H
 
- /*
 
-  * Include the generic headers required for the FreeRTOS port being used.
 
-  */
 
- #include <stddef.h>
 
- /*
 
-  * 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
 
- /* Application specific configuration options. */
 
- #include "FreeRTOSConfig.h"
 
- /* Basic FreeRTOS definitions. */
 
- #include "projdefs.h"
 
- /* 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.
 
-  */
 
- #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
 
- #ifndef configUSE_PREEMPTION
 
- 	#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.
 
- #endif
 
- #ifndef configUSE_IDLE_HOOK
 
- 	#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.
 
- #endif
 
- #ifndef configUSE_TICK_HOOK
 
- 	#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.
 
- #endif
 
- #ifndef configUSE_CO_ROUTINES
 
- 	#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.
 
- #endif
 
- #ifndef INCLUDE_vTaskPrioritySet
 
- 	#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.
 
- #endif
 
- #ifndef INCLUDE_uxTaskPriorityGet
 
- 	#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.
 
- #endif
 
- #ifndef INCLUDE_vTaskDelete
 
- 	#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.
 
- #endif
 
- #ifndef INCLUDE_vTaskSuspend
 
- 	#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.
 
- #endif
 
- #ifndef INCLUDE_vTaskDelayUntil
 
- 	#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.
 
- #endif
 
- #ifndef INCLUDE_vTaskDelay
 
- 	#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.
 
- #endif
 
- #ifndef configUSE_16_BIT_TICKS
 
- 	#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.
 
- #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
 
- #ifndef INCLUDE_xSemaphoreGetMutexHolder
 
- 	#define INCLUDE_xSemaphoreGetMutexHolder INCLUDE_xQueueGetMutexHolder
 
- #endif
 
- #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
 
- #ifndef INCLUDE_eTaskGetState
 
- 	#define INCLUDE_eTaskGetState 0
 
- #endif
 
- #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
 
- #ifndef INCLUDE_xEventGroupSetBitFromISR
 
- 	#define INCLUDE_xEventGroupSetBitFromISR 0
 
- #endif
 
- #ifndef INCLUDE_xTimerPendFunctionCall
 
- 	#define INCLUDE_xTimerPendFunctionCall 0
 
- #endif
 
- #ifndef configASSERT
 
- 	#define configASSERT( x )
 
- 	#define configASSERT_DEFINED 0
 
- #else
 
- 	#define configASSERT_DEFINED 1
 
- #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
 
- #ifndef portPRE_TASK_DELETE_HOOK
 
- 	#define portPRE_TASK_DELETE_HOOK( pvTaskToDelete, pxYieldPending )
 
- #endif
 
- #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
 
- 	#define portPOINTER_SIZE_TYPE uint32_t
 
- #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
 
- #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
 
- #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
 
- 	the task inheriting the priority of a higher priority task.
 
- 	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
 
- #ifndef traceQUEUE_CREATE
 
- 	#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
 
- #ifndef traceQUEUE_PEEK_FROM_ISR
 
- 	#define traceQUEUE_PEEK_FROM_ISR( 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_PEEK_FROM_ISR_FAILED
 
- 	#define traceQUEUE_PEEK_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()
 
- #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
 
- #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
 
- #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
 
- 	#define portPRIVILEGE_BIT ( ( UBaseType_t ) 0x00 )
 
- #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
 
- #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
 
- #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
 
- #ifndef configUSE_TRACE_FACILITY
 
- 	#define configUSE_TRACE_FACILITY 0
 
- #endif
 
- #ifndef mtCOVERAGE_TEST_MARKER
 
- 	#define mtCOVERAGE_TEST_MARKER()
 
- #endif
 
- #ifndef portASSERT_IF_IN_ISR
 
- 	#define portASSERT_IF_IN_ISR()
 
- #endif
 
- #ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION
 
- 	#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
 
- #endif
 
- #ifndef configAPPLICATION_ALLOCATED_HEAP
 
- 	#define configAPPLICATION_ALLOCATED_HEAP 0
 
- #endif
 
- #ifndef configUSE_TASK_NOTIFICATIONS
 
- 	#define configUSE_TASK_NOTIFICATIONS 1
 
- #endif
 
- #ifndef portTICK_TYPE_IS_ATOMIC
 
- 	#define portTICK_TYPE_IS_ATOMIC 0
 
- #endif
 
- #if( portTICK_TYPE_IS_ATOMIC == 0 )
 
- 	/* Either variables of tick type cannot be read atomically, or
 
- 	portTICK_TYPE_IS_ATOMIC was not set - map the critical sections used when
 
- 	the tick count is returned to the standard critical section macros. */
 
- 	#define portTICK_TYPE_ENTER_CRITICAL() portENTER_CRITICAL()
 
- 	#define portTICK_TYPE_EXIT_CRITICAL() portEXIT_CRITICAL()
 
- 	#define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() portSET_INTERRUPT_MASK_FROM_ISR()
 
- 	#define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) portCLEAR_INTERRUPT_MASK_FROM_ISR( ( x ) )
 
- #else
 
- 	/* The tick type can be read atomically, so critical sections used when the
 
- 	tick count is returned can be defined away. */
 
- 	#define portTICK_TYPE_ENTER_CRITICAL()
 
- 	#define portTICK_TYPE_EXIT_CRITICAL()
 
- 	#define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() 0
 
- 	#define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) ( void ) x
 
- #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
 
- #endif /* INC_FREERTOS_H */
 
 
  |