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 */
 | |
| 
 | 
