547 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			547 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |     FreeRTOS V7.3.0 - Copyright (C) 2012 Real Time Engineers Ltd. | ||
|  | 
 | ||
|  |     FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT  | ||
|  |     http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
 | ||
|  | 
 | ||
|  |     *************************************************************************** | ||
|  |      *                                                                       * | ||
|  |      *    FreeRTOS tutorial books are available in pdf and paperback.        * | ||
|  |      *    Complete, revised, and edited pdf reference manuals are also       * | ||
|  |      *    available.                                                         * | ||
|  |      *                                                                       * | ||
|  |      *    Purchasing FreeRTOS documentation will not only help you, by       * | ||
|  |      *    ensuring you get running as quickly as possible and with an        * | ||
|  |      *    in-depth knowledge of how to use FreeRTOS, it will also help       * | ||
|  |      *    the FreeRTOS project to continue with its mission of providing     * | ||
|  |      *    professional grade, cross platform, de facto standard solutions    * | ||
|  |      *    for microcontrollers - completely free of charge!                  * | ||
|  |      *                                                                       * | ||
|  |      *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
 | ||
|  |      *                                                                       * | ||
|  |      *    Thank you for using FreeRTOS, and thank you for your support!      * | ||
|  |      *                                                                       * | ||
|  |     *************************************************************************** | ||
|  | 
 | ||
|  | 
 | ||
|  |     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.  See the GNU General Public License for | ||
|  |     more details. You should have received a copy of the GNU General Public | ||
|  |     License and the FreeRTOS license exception along with FreeRTOS; if not it | ||
|  |     can be viewed here: http://www.freertos.org/a00114.html and also obtained
 | ||
|  |     by writing to Richard Barry, contact details for whom are available on the | ||
|  |     FreeRTOS WEB site. | ||
|  | 
 | ||
|  |     1 tab == 4 spaces! | ||
|  |      | ||
|  |     *************************************************************************** | ||
|  |      *                                                                       * | ||
|  |      *    Having a problem?  Start by reading the FAQ "My application does   * | ||
|  |      *    not run, what could be wrong?"                                     * | ||
|  |      *                                                                       * | ||
|  |      *    http://www.FreeRTOS.org/FAQHelp.html                               *
 | ||
|  |      *                                                                       * | ||
|  |     *************************************************************************** | ||
|  | 
 | ||
|  |      | ||
|  |     http://www.FreeRTOS.org - Documentation, training, latest versions, license 
 | ||
|  |     and contact details.   | ||
|  |      | ||
|  |     http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
 | ||
|  |     including FreeRTOS+Trace - an indispensable productivity tool. | ||
|  | 
 | ||
|  |     Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell  | ||
|  |     the code with commercial support, indemnification, and middleware, under  | ||
|  |     the OpenRTOS brand: http://www.OpenRTOS.com.  High Integrity Systems also
 | ||
|  |     provide a safety engineered and independently SIL3 certified version under  | ||
|  |     the SafeRTOS brand: http://www.SafeRTOS.com.
 | ||
|  | */ | ||
|  | 
 | ||
|  | #ifndef INC_FREERTOS_H
 | ||
|  | #define INC_FREERTOS_H
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Include the generic headers required for the FreeRTOS port being used. | ||
|  |  */ | ||
|  | #include <stddef.h>
 | ||
|  | 
 | ||
|  | /* Basic FreeRTOS definitions. */ | ||
|  | #include "projdefs.h"
 | ||
|  | 
 | ||
|  | /* Application specific configuration options. */ | ||
|  | #include "FreeRTOSConfig.h"
 | ||
|  | 
 | ||
|  | /* configUSE_PORT_OPTIMISED_TASK_SELECTION must be defined before portable.h
 | ||
|  | is included as it is used by the port layer. */ | ||
|  | #ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION
 | ||
|  | 	#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | /* Definitions specific to the port being used. */ | ||
|  | #include "portable.h"
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /* Defines the prototype to which the application task hook function must
 | ||
|  | conform. */ | ||
|  | typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Check all the required application specific macros have been defined. | ||
|  |  * 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_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
 | ||
|  | 
 | ||
|  | #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_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_eTaskStateGet
 | ||
|  | 	#define INCLUDE_eTaskStateGet 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 configASSERT
 | ||
|  | 	#define configASSERT( x )
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifndef portALIGNMENT_ASSERT_pxCurrentTCB
 | ||
|  | 	#define portALIGNMENT_ASSERT_pxCurrentTCB configASSERT
 | ||
|  | #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 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 unsigned long
 | ||
|  | #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 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_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()
 | ||
|  | #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 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 ( ( unsigned portBASE_TYPE ) 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 configPRE_SLEEP_PROCESSING
 | ||
|  | 	#define configPRE_SLEEP_PROCESSING( x )
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifndef configPOST_SLEEP_PROCESSING
 | ||
|  | 	#define configPOST_SLEEP_PROCESSING( x )
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #endif /* INC_FREERTOS_H */
 | ||
|  | 
 |