/* * FreeRTOS Kernel <DEVELOPMENT BRANCH> * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * SPDX-License-Identifier: MIT * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * https://www.FreeRTOS.org * https://github.com/FreeRTOS * *//* ... */#ifndefINC_FREERTOS_H#defineINC_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. *//* Acceptable values for configTICK_TYPE_WIDTH_IN_BITS. */#defineTICK_TYPE_WIDTH_16_BITS0#defineTICK_TYPE_WIDTH_32_BITS1#defineTICK_TYPE_WIDTH_64_BITS2/* Application specific configuration options. */#include"FreeRTOSConfig.h"#if!defined(configUSE_16_BIT_TICKS)&&!defined(configTICK_TYPE_WIDTH_IN_BITS)#errorMissingdefinition:OneofconfigUSE_16_BIT_TICKSandconfigTICK_TYPE_WIDTH_IN_BITSmustbedefinedinFreeRTOSConfig.h.SeetheConfigurationsectionoftheFreeRTOSAPIdocumentationfordetails.#endif#ifdefined(configUSE_16_BIT_TICKS)&&defined(configTICK_TYPE_WIDTH_IN_BITS)#errorOnlyoneofconfigUSE_16_BIT_TICKSandconfigTICK_TYPE_WIDTH_IN_BITSmustbedefinedinFreeRTOSConfig.h.SeetheConfigurationsectionoftheFreeRTOSAPIdocumentationfordetails.#endif/* Define configTICK_TYPE_WIDTH_IN_BITS according to the * value of configUSE_16_BIT_TICKS for backward compatibility. *//* ... */#ifndefconfigTICK_TYPE_WIDTH_IN_BITS#if(configUSE_16_BIT_TICKS==1)#defineconfigTICK_TYPE_WIDTH_IN_BITSTICK_TYPE_WIDTH_16_BITS#else#defineconfigTICK_TYPE_WIDTH_IN_BITSTICK_TYPE_WIDTH_32_BITS#endif/* ... */#endif/* Set configUSE_MPU_WRAPPERS_V1 to 1 to use MPU wrappers v1. */#ifndefconfigUSE_MPU_WRAPPERS_V1#defineconfigUSE_MPU_WRAPPERS_V10#endif/* Set configENABLE_ACCESS_CONTROL_LIST to 1 to enable access control list support. */#ifndefconfigENABLE_ACCESS_CONTROL_LIST#defineconfigENABLE_ACCESS_CONTROL_LIST0#endif/* Set default value of configNUMBER_OF_CORES to 1 to use single core FreeRTOS. */#ifndefconfigNUMBER_OF_CORES#defineconfigNUMBER_OF_CORES1#endif#ifndefconfigUSE_MALLOC_FAILED_HOOK#defineconfigUSE_MALLOC_FAILED_HOOK0#endif/* Basic FreeRTOS definitions. */#include"projdefs.h"/* Definitions specific to the port being used. */#include"portable.h"/* Must be defaulted before configUSE_NEWLIB_REENTRANT is used below. */#ifndefconfigUSE_NEWLIB_REENTRANT#defineconfigUSE_NEWLIB_REENTRANT0#endif/* Required if struct _reent is used. */#if(configUSE_NEWLIB_REENTRANT==1)#include"newlib-freertos.h"/* ... */#endif/* if ( configUSE_NEWLIB_REENTRANT == 1 ) *//* Must be defaulted before configUSE_PICOLIBC_TLS is used below. */#ifndefconfigUSE_PICOLIBC_TLS#defineconfigUSE_PICOLIBC_TLS0#endif#if(configUSE_PICOLIBC_TLS==1)#include"picolibc-freertos.h"/* ... */#endif/* if ( configUSE_PICOLIBC_TLS == 1 ) *//* *INDENT-OFF* */#ifdef__cplusplusextern"C"{#endif/* *INDENT-ON* */#ifndefconfigUSE_C_RUNTIME_TLS_SUPPORT#defineconfigUSE_C_RUNTIME_TLS_SUPPORT0#endif#if(configUSE_C_RUNTIME_TLS_SUPPORT==1)#ifndefconfigTLS_BLOCK_TYPE#errorMissingdefinition:configTLS_BLOCK_TYPEmustbedefinedinFreeRTOSConfig.hwhenconfigUSE_C_RUNTIME_TLS_SUPPORTissetto1.#endif#ifndefconfigINIT_TLS_BLOCK#errorMissingdefinition:configINIT_TLS_BLOCKmustbedefinedinFreeRTOSConfig.hwhenconfigUSE_C_RUNTIME_TLS_SUPPORTissetto1.#endif#ifndefconfigSET_TLS_BLOCK#errorMissingdefinition:configSET_TLS_BLOCKmustbedefinedinFreeRTOSConfig.hwhenconfigUSE_C_RUNTIME_TLS_SUPPORTissetto1.#endif#ifndefconfigDEINIT_TLS_BLOCK#errorMissingdefinition:configDEINIT_TLS_BLOCKmustbedefinedinFreeRTOSConfig.hwhenconfigUSE_C_RUNTIME_TLS_SUPPORTissetto1.#endif/* ... */#endif/* if ( configUSE_C_RUNTIME_TLS_SUPPORT == 1 ) *//* * Check all the required application specific macros have been defined. * These macros are application specific and (as downloaded) are defined * within FreeRTOSConfig.h. *//* ... */#ifndefconfigMINIMAL_STACK_SIZE#errorMissingdefinition:configMINIMAL_STACK_SIZEmustbedefinedinFreeRTOSConfig.h.configMINIMAL_STACK_SIZEdefinesthesize(inwords)ofthestackallocatedtotheidletask.Refertothedemoprojectprovidedforyourportforasuitablevalue.#endif#ifndefconfigMAX_PRIORITIES#errorMissingdefinition:configMAX_PRIORITIESmustbedefinedinFreeRTOSConfig.h.SeetheConfigurationsectionoftheFreeRTOSAPIdocumentationfordetails.#endif#ifconfigMAX_PRIORITIES<1#errorconfigMAX_PRIORITIESmustbedefinedtobegreaterthanorequalto1.#endif#ifndefconfigUSE_PREEMPTION#errorMissingdefinition:configUSE_PREEMPTIONmustbedefinedinFreeRTOSConfig.haseither1or0.SeetheConfigurationsectionoftheFreeRTOSAPIdocumentationfordetails.#endif#ifndefconfigUSE_IDLE_HOOK#errorMissingdefinition:configUSE_IDLE_HOOKmustbedefinedinFreeRTOSConfig.haseither1or0.SeetheConfigurationsectionoftheFreeRTOSAPIdocumentationfordetails.#endif#if(configNUMBER_OF_CORES>1)#ifndefconfigUSE_PASSIVE_IDLE_HOOK#errorMissingdefinition:configUSE_PASSIVE_IDLE_HOOKmustbedefinedinFreeRTOSConfig.haseither1or0.SeetheConfigurationsectionoftheFreeRTOSAPIdocumentationfordetails.#endif/* ... */#endif#ifndefconfigUSE_TICK_HOOK#errorMissingdefinition:configUSE_TICK_HOOKmustbedefinedinFreeRTOSConfig.haseither1or0.SeetheConfigurationsectionoftheFreeRTOSAPIdocumentationfordetails.#endif#if((configTICK_TYPE_WIDTH_IN_BITS!=TICK_TYPE_WIDTH_16_BITS)&&\(configTICK_TYPE_WIDTH_IN_BITS!=TICK_TYPE_WIDTH_32_BITS)&&\(configTICK_TYPE_WIDTH_IN_BITS!=TICK_TYPE_WIDTH_64_BITS))#errorMacroconfigTICK_TYPE_WIDTH_IN_BITSisdefinedtoincorrectvalue.SeetheConfigurationsectionoftheFreeRTOSAPIdocumentationfordetails.#endif#ifndefconfigUSE_CO_ROUTINES#defineconfigUSE_CO_ROUTINES0#endif#ifndefINCLUDE_vTaskPrioritySet#defineINCLUDE_vTaskPrioritySet0#endif#ifndefINCLUDE_uxTaskPriorityGet#defineINCLUDE_uxTaskPriorityGet0#endif#ifndefINCLUDE_vTaskDelete#defineINCLUDE_vTaskDelete0#endif#ifndefINCLUDE_vTaskSuspend#defineINCLUDE_vTaskSuspend0#endif#ifdefINCLUDE_xTaskDelayUntil#ifdefINCLUDE_vTaskDelayUntil/* INCLUDE_vTaskDelayUntil was replaced by INCLUDE_xTaskDelayUntil. Backward * compatibility is maintained if only one or the other is defined, but * there is a conflict if both are defined. *//* ... */#errorINCLUDE_vTaskDelayUntilandINCLUDE_xTaskDelayUntilarebothdefined.INCLUDE_vTaskDelayUntilisnolongerrequiredandshouldberemoved/* ... */#endif/* ... */#endif#ifndefINCLUDE_xTaskDelayUntil#ifdefINCLUDE_vTaskDelayUntil/* If INCLUDE_vTaskDelayUntil is set but INCLUDE_xTaskDelayUntil is not then * the project's FreeRTOSConfig.h probably pre-dates the introduction of * xTaskDelayUntil and setting INCLUDE_xTaskDelayUntil to whatever * INCLUDE_vTaskDelayUntil is set to will ensure backward compatibility. *//* ... */#defineINCLUDE_xTaskDelayUntilINCLUDE_vTaskDelayUntil/* ... */#endif/* ... */#endif#ifndefINCLUDE_xTaskDelayUntil#defineINCLUDE_xTaskDelayUntil0#endif#ifndefINCLUDE_vTaskDelay#defineINCLUDE_vTaskDelay0#endif#ifndefINCLUDE_xTaskGetIdleTaskHandle#defineINCLUDE_xTaskGetIdleTaskHandle0#endif#ifndefINCLUDE_xTaskAbortDelay#defineINCLUDE_xTaskAbortDelay0#endif#ifndefINCLUDE_xQueueGetMutexHolder#defineINCLUDE_xQueueGetMutexHolder0#endif#ifndefINCLUDE_xSemaphoreGetMutexHolder#defineINCLUDE_xSemaphoreGetMutexHolderINCLUDE_xQueueGetMutexHolder#endif#ifndefINCLUDE_xTaskGetHandle#defineINCLUDE_xTaskGetHandle0#endif#ifndefINCLUDE_uxTaskGetStackHighWaterMark#defineINCLUDE_uxTaskGetStackHighWaterMark0#endif#ifndefINCLUDE_uxTaskGetStackHighWaterMark2#defineINCLUDE_uxTaskGetStackHighWaterMark20#endif#ifndefINCLUDE_eTaskGetState#defineINCLUDE_eTaskGetState0#endif#ifndefINCLUDE_xTaskResumeFromISR#defineINCLUDE_xTaskResumeFromISR1#endif#ifndefINCLUDE_xTimerPendFunctionCall#defineINCLUDE_xTimerPendFunctionCall0#endif#ifndefINCLUDE_xTaskGetSchedulerState#defineINCLUDE_xTaskGetSchedulerState0#endif#ifndefINCLUDE_xTaskGetCurrentTaskHandle#defineINCLUDE_xTaskGetCurrentTaskHandle1#endif#ifconfigUSE_CO_ROUTINES!=0#ifndefconfigMAX_CO_ROUTINE_PRIORITIES#errorconfigMAX_CO_ROUTINE_PRIORITIESmustbegreaterthanorequalto1.#endif/* ... */#endif#ifndefconfigUSE_APPLICATION_TASK_TAG#defineconfigUSE_APPLICATION_TASK_TAG0#endif#ifndefconfigNUM_THREAD_LOCAL_STORAGE_POINTERS#defineconfigNUM_THREAD_LOCAL_STORAGE_POINTERS0#endif#ifndefconfigUSE_RECURSIVE_MUTEXES#defineconfigUSE_RECURSIVE_MUTEXES0#endif#ifndefconfigUSE_MUTEXES#defineconfigUSE_MUTEXES0#endif#ifndefconfigUSE_TIMERS#defineconfigUSE_TIMERS0#endif#ifndefconfigUSE_EVENT_GROUPS#defineconfigUSE_EVENT_GROUPS1#endif#ifndefconfigUSE_STREAM_BUFFERS#defineconfigUSE_STREAM_BUFFERS1#endif#ifndefconfigUSE_DAEMON_TASK_STARTUP_HOOK#defineconfigUSE_DAEMON_TASK_STARTUP_HOOK0#endif#if(configUSE_DAEMON_TASK_STARTUP_HOOK!=0)#if(configUSE_TIMERS==0)#errorconfigUSE_DAEMON_TASK_STARTUP_HOOKisset,butthedaemontaskisnotcreatedbecauseconfigUSE_TIMERSis0.#endif/* ... */#endif#ifndefconfigUSE_COUNTING_SEMAPHORES#defineconfigUSE_COUNTING_SEMAPHORES0#endif#ifndefconfigUSE_TASK_PREEMPTION_DISABLE#defineconfigUSE_TASK_PREEMPTION_DISABLE0#endif#ifndefconfigUSE_ALTERNATIVE_API#defineconfigUSE_ALTERNATIVE_API0#endif#ifndefportCRITICAL_NESTING_IN_TCB#defineportCRITICAL_NESTING_IN_TCB0#endif#ifndefconfigMAX_TASK_NAME_LEN#defineconfigMAX_TASK_NAME_LEN16#endif#ifndefconfigIDLE_SHOULD_YIELD#defineconfigIDLE_SHOULD_YIELD1#endif#ifconfigMAX_TASK_NAME_LEN<1#errorconfigMAX_TASK_NAME_LENmustbesettoaminimumof1inFreeRTOSConfig.h#endif#ifndefconfigASSERT#defineconfigASSERT(x)#defineconfigASSERT_DEFINED0/* ... */#else#defineconfigASSERT_DEFINED1#endif/* configPRECONDITION should be defined as configASSERT. * The CBMC proofs need a way to track assumptions and assertions. * A configPRECONDITION statement should express an implicit invariant or * assumption made. A configASSERT statement should express an invariant that must * hold explicit before calling the code. *//* ... */#ifndefconfigPRECONDITION#defineconfigPRECONDITION(X)configASSERT(X)#defineconfigPRECONDITION_DEFINED0/* ... */#else#defineconfigPRECONDITION_DEFINED1#endif#ifndefconfigCHECK_HANDLER_INSTALLATION#defineconfigCHECK_HANDLER_INSTALLATION1#else/* The application has explicitly defined configCHECK_HANDLER_INSTALLATION * to 1. The checks requires configASSERT() to be defined. *//* ... */#if((configCHECK_HANDLER_INSTALLATION==1)&&(configASSERT_DEFINED==0))#errorYoumustdefineconfigASSERT()whenconfigCHECK_HANDLER_INSTALLATIONis1.#endif/* ... */#endif#ifndefportMEMORY_BARRIER#defineportMEMORY_BARRIER()#endif#ifndefportSOFTWARE_BARRIER#defineportSOFTWARE_BARRIER()#endif#ifndefconfigRUN_MULTIPLE_PRIORITIES#defineconfigRUN_MULTIPLE_PRIORITIES0#endif#ifndefportGET_CORE_ID#if(configNUMBER_OF_CORES==1)#defineportGET_CORE_ID()0#else#errorconfigNUMBER_OF_CORESissettomorethan1thenportGET_CORE_IDmustalsobedefined.#endif/* configNUMBER_OF_CORES *//* ... */#endif/* portGET_CORE_ID */#ifndefportYIELD_CORE#if(configNUMBER_OF_CORES==1)#defineportYIELD_CORE(x)portYIELD()#else#errorconfigNUMBER_OF_CORESissettomorethan1thenportYIELD_COREmustalsobedefined.#endif/* configNUMBER_OF_CORES *//* ... */#endif/* portYIELD_CORE */#ifndefportSET_INTERRUPT_MASK#if(configNUMBER_OF_CORES>1)#errorportSET_INTERRUPT_MASKisrequiredinSMP#endif/* ... */#endif/* portSET_INTERRUPT_MASK */#ifndefportCLEAR_INTERRUPT_MASK#if(configNUMBER_OF_CORES>1)#errorportCLEAR_INTERRUPT_MASKisrequiredinSMP#endif/* ... */#endif/* portCLEAR_INTERRUPT_MASK */#ifndefportRELEASE_TASK_LOCK#if(configNUMBER_OF_CORES==1)#defineportRELEASE_TASK_LOCK()#else#errorportRELEASE_TASK_LOCKisrequiredinSMP#endif/* ... */#endif/* portRELEASE_TASK_LOCK */#ifndefportGET_TASK_LOCK#if(configNUMBER_OF_CORES==1)#defineportGET_TASK_LOCK()#else#errorportGET_TASK_LOCKisrequiredinSMP#endif/* ... */#endif/* portGET_TASK_LOCK */#ifndefportRELEASE_ISR_LOCK#if(configNUMBER_OF_CORES==1)#defineportRELEASE_ISR_LOCK()#else#errorportRELEASE_ISR_LOCKisrequiredinSMP#endif/* ... */#endif/* portRELEASE_ISR_LOCK */#ifndefportGET_ISR_LOCK#if(configNUMBER_OF_CORES==1)#defineportGET_ISR_LOCK()#else#errorportGET_ISR_LOCKisrequiredinSMP#endif/* ... */#endif/* portGET_ISR_LOCK */#ifndefportENTER_CRITICAL_FROM_ISR#if(configNUMBER_OF_CORES>1)#errorportENTER_CRITICAL_FROM_ISRisrequiredinSMP#endif/* ... */#endif#ifndefportEXIT_CRITICAL_FROM_ISR#if(configNUMBER_OF_CORES>1)#errorportEXIT_CRITICAL_FROM_ISRisrequiredinSMP#endif/* ... */#endif#ifndefconfigUSE_CORE_AFFINITY#defineconfigUSE_CORE_AFFINITY0#endif/* configUSE_CORE_AFFINITY */#if((configNUMBER_OF_CORES>1)&&(configUSE_CORE_AFFINITY==1))#ifndefconfigTASK_DEFAULT_CORE_AFFINITY#defineconfigTASK_DEFAULT_CORE_AFFINITYtskNO_AFFINITY#endif/* ... */#endif#ifndefconfigUSE_PASSIVE_IDLE_HOOK#defineconfigUSE_PASSIVE_IDLE_HOOK0#endif/* configUSE_PASSIVE_IDLE_HOOK *//* The timers module relies on xTaskGetSchedulerState(). */#ifconfigUSE_TIMERS==1#ifndefconfigTIMER_TASK_PRIORITY#errorIfconfigUSE_TIMERSissetto1thenconfigTIMER_TASK_PRIORITYmustalsobedefined.#endif/* configTIMER_TASK_PRIORITY */#ifndefconfigTIMER_QUEUE_LENGTH#errorIfconfigUSE_TIMERSissetto1thenconfigTIMER_QUEUE_LENGTHmustalsobedefined.#endif/* configTIMER_QUEUE_LENGTH */#ifndefconfigTIMER_TASK_STACK_DEPTH#errorIfconfigUSE_TIMERSissetto1thenconfigTIMER_TASK_STACK_DEPTHmustalsobedefined.#endif/* configTIMER_TASK_STACK_DEPTH */#ifndefportTIMER_CALLBACK_ATTRIBUTE#defineportTIMER_CALLBACK_ATTRIBUTE#endif/* portTIMER_CALLBACK_ATTRIBUTE *//* ... */#endif/* configUSE_TIMERS */#ifndefportHAS_NESTED_INTERRUPTS#ifdefined(portSET_INTERRUPT_MASK_FROM_ISR)&&defined(portCLEAR_INTERRUPT_MASK_FROM_ISR)#defineportHAS_NESTED_INTERRUPTS1#else#defineportHAS_NESTED_INTERRUPTS0#endif/* ... */#endif#ifndefportSET_INTERRUPT_MASK_FROM_ISR#if(portHAS_NESTED_INTERRUPTS==1)#errorportSET_INTERRUPT_MASK_FROM_ISRmustbedefinedforportsthatsupportnestedinterrupts(i.e.portHAS_NESTED_INTERRUPTSissetto1)#else#defineportSET_INTERRUPT_MASK_FROM_ISR()0#endif/* ... */#else#if(portHAS_NESTED_INTERRUPTS==0)#errorportSET_INTERRUPT_MASK_FROM_ISRmustnotbedefinedforportsthatdonotsupportnestedinterrupts(i.e.portHAS_NESTED_INTERRUPTSissetto0)#endif/* ... */#endif#ifndefportCLEAR_INTERRUPT_MASK_FROM_ISR#if(portHAS_NESTED_INTERRUPTS==1)#errorportCLEAR_INTERRUPT_MASK_FROM_ISRmustbedefinedforportsthatsupportnestedinterrupts(i.e.portHAS_NESTED_INTERRUPTSissetto1)#else#defineportCLEAR_INTERRUPT_MASK_FROM_ISR(uxSavedStatusValue)(void)(uxSavedStatusValue)#endif/* ... */#else#if(portHAS_NESTED_INTERRUPTS==0)#errorportCLEAR_INTERRUPT_MASK_FROM_ISRmustnotbedefinedforportsthatdonotsupportnestedinterrupts(i.e.portHAS_NESTED_INTERRUPTSissetto0)#endif/* ... */#endif#ifndefportCLEAN_UP_TCB#defineportCLEAN_UP_TCB(pxTCB)(void)(pxTCB)#endif#ifndefportPRE_TASK_DELETE_HOOK#defineportPRE_TASK_DELETE_HOOK(pvTaskToDelete,pxYieldPending)#endif#ifndefportSETUP_TCB#defineportSETUP_TCB(pxTCB)(void)(pxTCB)#endif#ifndefportTASK_SWITCH_HOOK#defineportTASK_SWITCH_HOOK(pxTCB)(void)(pxTCB)#endif#ifndefconfigQUEUE_REGISTRY_SIZE#defineconfigQUEUE_REGISTRY_SIZE0U#endif#if(configQUEUE_REGISTRY_SIZE<1)#definevQueueAddToRegistry(xQueue,pcName)#definevQueueUnregisterQueue(xQueue)#definepcQueueGetName(xQueue)/* ... */#endif#ifndefconfigUSE_MINI_LIST_ITEM#defineconfigUSE_MINI_LIST_ITEM1#endif#ifndefportPOINTER_SIZE_TYPE#defineportPOINTER_SIZE_TYPEuint32_t#endif/* Remove any unused trace macros. */#ifndeftraceSTART/* Used to perform any necessary initialisation - for example, open a file * into which trace is to be written. *//* ... */#definetraceSTART()/* ... */#endif#ifndeftraceEND/* Use to close a trace, for example close a file into which trace has been * written. *//* ... */#definetraceEND()/* ... */#endif#ifndeftraceTASK_SWITCHED_IN/* Called after a task has been selected to run. pxCurrentTCB holds a pointer * to the task control block of the selected task. *//* ... */#definetraceTASK_SWITCHED_IN()/* ... */#endif#ifndeftraceSTARTING_SCHEDULER/* Called after all idle tasks and timer task (if enabled) have been created * successfully, just before the scheduler is started. *//* ... */#definetraceSTARTING_SCHEDULER(xIdleTaskHandles)/* ... */#endif#ifndeftraceINCREASE_TICK_COUNT/* Called before stepping the tick count after waking from tickless idle * sleep. *//* ... */#definetraceINCREASE_TICK_COUNT(x)/* ... */#endif#ifndeftraceLOW_POWER_IDLE_BEGIN/* Called immediately before entering tickless idle. */#definetraceLOW_POWER_IDLE_BEGIN()/* ... */#endif#ifndeftraceLOW_POWER_IDLE_END/* Called when returning to the Idle task after a tickless idle. */#definetraceLOW_POWER_IDLE_END()/* ... */#endif#ifndeftraceTASK_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. *//* ... */#definetraceTASK_SWITCHED_OUT()/* ... */#endif#ifndeftraceTASK_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. *//* ... */#definetraceTASK_PRIORITY_INHERIT(pxTCBOfMutexHolder,uxInheritedPriority)/* ... */#endif#ifndeftraceTASK_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. *//* ... */#definetraceTASK_PRIORITY_DISINHERIT(pxTCBOfMutexHolder,uxOriginalPriority)/* ... */#endif#ifndeftraceBLOCKING_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. *//* ... */#definetraceBLOCKING_ON_QUEUE_RECEIVE(pxQueue)/* ... */#endif#ifndeftraceBLOCKING_ON_QUEUE_PEEK/* 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. *//* ... */#definetraceBLOCKING_ON_QUEUE_PEEK(pxQueue)/* ... */#endif#ifndeftraceBLOCKING_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. *//* ... */#definetraceBLOCKING_ON_QUEUE_SEND(pxQueue)/* ... */#endif#ifndefconfigCHECK_FOR_STACK_OVERFLOW#defineconfigCHECK_FOR_STACK_OVERFLOW0#endif#ifndefconfigRECORD_STACK_HIGH_ADDRESS#defineconfigRECORD_STACK_HIGH_ADDRESS0#endif#ifndefconfigINCLUDE_FREERTOS_TASK_C_ADDITIONS_H#defineconfigINCLUDE_FREERTOS_TASK_C_ADDITIONS_H0#endif/* The following event macros are embedded in the kernel API calls. */#ifndeftraceMOVED_TASK_TO_READY_STATE#definetraceMOVED_TASK_TO_READY_STATE(pxTCB)#endif#ifndeftracePOST_MOVED_TASK_TO_READY_STATE#definetracePOST_MOVED_TASK_TO_READY_STATE(pxTCB)#endif#ifndeftraceMOVED_TASK_TO_DELAYED_LIST#definetraceMOVED_TASK_TO_DELAYED_LIST()#endif#ifndeftraceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST#definetraceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST()#endif#ifndeftraceQUEUE_CREATE#definetraceQUEUE_CREATE(pxNewQueue)#endif#ifndeftraceQUEUE_CREATE_FAILED#definetraceQUEUE_CREATE_FAILED(ucQueueType)#endif#ifndeftraceCREATE_MUTEX#definetraceCREATE_MUTEX(pxNewQueue)#endif#ifndeftraceCREATE_MUTEX_FAILED#definetraceCREATE_MUTEX_FAILED()#endif#ifndeftraceGIVE_MUTEX_RECURSIVE#definetraceGIVE_MUTEX_RECURSIVE(pxMutex)#endif#ifndeftraceGIVE_MUTEX_RECURSIVE_FAILED#definetraceGIVE_MUTEX_RECURSIVE_FAILED(pxMutex)#endif#ifndeftraceTAKE_MUTEX_RECURSIVE#definetraceTAKE_MUTEX_RECURSIVE(pxMutex)#endif#ifndeftraceTAKE_MUTEX_RECURSIVE_FAILED#definetraceTAKE_MUTEX_RECURSIVE_FAILED(pxMutex)#endif#ifndeftraceCREATE_COUNTING_SEMAPHORE#definetraceCREATE_COUNTING_SEMAPHORE()#endif#ifndeftraceCREATE_COUNTING_SEMAPHORE_FAILED#definetraceCREATE_COUNTING_SEMAPHORE_FAILED()#endif#ifndeftraceQUEUE_SET_SEND#definetraceQUEUE_SET_SENDtraceQUEUE_SEND#endif#ifndeftraceQUEUE_SEND#definetraceQUEUE_SEND(pxQueue)#endif#ifndeftraceQUEUE_SEND_FAILED#definetraceQUEUE_SEND_FAILED(pxQueue)#endif#ifndeftraceQUEUE_RECEIVE#definetraceQUEUE_RECEIVE(pxQueue)#endif#ifndeftraceQUEUE_PEEK#definetraceQUEUE_PEEK(pxQueue)#endif#ifndeftraceQUEUE_PEEK_FAILED#definetraceQUEUE_PEEK_FAILED(pxQueue)#endif#ifndeftraceQUEUE_PEEK_FROM_ISR#definetraceQUEUE_PEEK_FROM_ISR(pxQueue)#endif#ifndeftraceQUEUE_RECEIVE_FAILED#definetraceQUEUE_RECEIVE_FAILED(pxQueue)#endif#ifndeftraceQUEUE_SEND_FROM_ISR#definetraceQUEUE_SEND_FROM_ISR(pxQueue)#endif#ifndeftraceQUEUE_SEND_FROM_ISR_FAILED#definetraceQUEUE_SEND_FROM_ISR_FAILED(pxQueue)#endif#ifndeftraceQUEUE_RECEIVE_FROM_ISR#definetraceQUEUE_RECEIVE_FROM_ISR(pxQueue)#endif#ifndeftraceQUEUE_RECEIVE_FROM_ISR_FAILED#definetraceQUEUE_RECEIVE_FROM_ISR_FAILED(pxQueue)#endif#ifndeftraceQUEUE_PEEK_FROM_ISR_FAILED#definetraceQUEUE_PEEK_FROM_ISR_FAILED(pxQueue)#endif#ifndeftraceQUEUE_DELETE#definetraceQUEUE_DELETE(pxQueue)#endif#ifndeftraceTASK_CREATE#definetraceTASK_CREATE(pxNewTCB)#endif#ifndeftraceTASK_CREATE_FAILED#definetraceTASK_CREATE_FAILED()#endif#ifndeftraceTASK_DELETE#definetraceTASK_DELETE(pxTaskToDelete)#endif#ifndeftraceTASK_DELAY_UNTIL#definetraceTASK_DELAY_UNTIL(x)#endif#ifndeftraceTASK_DELAY#definetraceTASK_DELAY()#endif#ifndeftraceTASK_PRIORITY_SET#definetraceTASK_PRIORITY_SET(pxTask,uxNewPriority)#endif#ifndeftraceTASK_SUSPEND#definetraceTASK_SUSPEND(pxTaskToSuspend)#endif#ifndeftraceTASK_RESUME#definetraceTASK_RESUME(pxTaskToResume)#endif#ifndeftraceTASK_RESUME_FROM_ISR#definetraceTASK_RESUME_FROM_ISR(pxTaskToResume)#endif#ifndeftraceTASK_INCREMENT_TICK#definetraceTASK_INCREMENT_TICK(xTickCount)#endif#ifndeftraceTIMER_CREATE#definetraceTIMER_CREATE(pxNewTimer)#endif#ifndeftraceTIMER_CREATE_FAILED#definetraceTIMER_CREATE_FAILED()#endif#ifndeftraceTIMER_COMMAND_SEND#definetraceTIMER_COMMAND_SEND(xTimer,xMessageID,xMessageValueValue,xReturn)#endif#ifndeftraceTIMER_EXPIRED#definetraceTIMER_EXPIRED(pxTimer)#endif#ifndeftraceTIMER_COMMAND_RECEIVED#definetraceTIMER_COMMAND_RECEIVED(pxTimer,xMessageID,xMessageValue)#endif#ifndeftraceMALLOC#definetraceMALLOC(pvAddress,uiSize)#endif#ifndeftraceFREE#definetraceFREE(pvAddress,uiSize)#endif#ifndeftraceEVENT_GROUP_CREATE#definetraceEVENT_GROUP_CREATE(xEventGroup)#endif#ifndeftraceEVENT_GROUP_CREATE_FAILED#definetraceEVENT_GROUP_CREATE_FAILED()#endif#ifndeftraceEVENT_GROUP_SYNC_BLOCK#definetraceEVENT_GROUP_SYNC_BLOCK(xEventGroup,uxBitsToSet,uxBitsToWaitFor)#endif#ifndeftraceEVENT_GROUP_SYNC_END#definetraceEVENT_GROUP_SYNC_END(xEventGroup,uxBitsToSet,uxBitsToWaitFor,xTimeoutOccurred)(void)(xTimeoutOccurred)#endif#ifndeftraceEVENT_GROUP_WAIT_BITS_BLOCK#definetraceEVENT_GROUP_WAIT_BITS_BLOCK(xEventGroup,uxBitsToWaitFor)#endif#ifndeftraceEVENT_GROUP_WAIT_BITS_END#definetraceEVENT_GROUP_WAIT_BITS_END(xEventGroup,uxBitsToWaitFor,xTimeoutOccurred)(void)(xTimeoutOccurred)#endif#ifndeftraceEVENT_GROUP_CLEAR_BITS#definetraceEVENT_GROUP_CLEAR_BITS(xEventGroup,uxBitsToClear)#endif#ifndeftraceEVENT_GROUP_CLEAR_BITS_FROM_ISR#definetraceEVENT_GROUP_CLEAR_BITS_FROM_ISR(xEventGroup,uxBitsToClear)#endif#ifndeftraceEVENT_GROUP_SET_BITS#definetraceEVENT_GROUP_SET_BITS(xEventGroup,uxBitsToSet)#endif#ifndeftraceEVENT_GROUP_SET_BITS_FROM_ISR#definetraceEVENT_GROUP_SET_BITS_FROM_ISR(xEventGroup,uxBitsToSet)#endif#ifndeftraceEVENT_GROUP_DELETE#definetraceEVENT_GROUP_DELETE(xEventGroup)#endif#ifndeftracePEND_FUNC_CALL#definetracePEND_FUNC_CALL(xFunctionToPend,pvParameter1,ulParameter2,ret)#endif#ifndeftracePEND_FUNC_CALL_FROM_ISR#definetracePEND_FUNC_CALL_FROM_ISR(xFunctionToPend,pvParameter1,ulParameter2,ret)#endif#ifndeftraceQUEUE_REGISTRY_ADD#definetraceQUEUE_REGISTRY_ADD(xQueue,pcQueueName)#endif#ifndeftraceTASK_NOTIFY_TAKE_BLOCK#definetraceTASK_NOTIFY_TAKE_BLOCK(uxIndexToWait)#endif#ifndeftraceTASK_NOTIFY_TAKE#definetraceTASK_NOTIFY_TAKE(uxIndexToWait)#endif#ifndeftraceTASK_NOTIFY_WAIT_BLOCK#definetraceTASK_NOTIFY_WAIT_BLOCK(uxIndexToWait)#endif#ifndeftraceTASK_NOTIFY_WAIT#definetraceTASK_NOTIFY_WAIT(uxIndexToWait)#endif#ifndeftraceTASK_NOTIFY#definetraceTASK_NOTIFY(uxIndexToNotify)#endif#ifndeftraceTASK_NOTIFY_FROM_ISR#definetraceTASK_NOTIFY_FROM_ISR(uxIndexToNotify)#endif#ifndeftraceTASK_NOTIFY_GIVE_FROM_ISR#definetraceTASK_NOTIFY_GIVE_FROM_ISR(uxIndexToNotify)#endif#ifndeftraceISR_EXIT_TO_SCHEDULER#definetraceISR_EXIT_TO_SCHEDULER()#endif#ifndeftraceISR_EXIT#definetraceISR_EXIT()#endif#ifndeftraceISR_ENTER#definetraceISR_ENTER()#endif#ifndeftraceSTREAM_BUFFER_CREATE_FAILED#definetraceSTREAM_BUFFER_CREATE_FAILED(xStreamBufferType)#endif#ifndeftraceSTREAM_BUFFER_CREATE_STATIC_FAILED#definetraceSTREAM_BUFFER_CREATE_STATIC_FAILED(xReturn,xStreamBufferType)#endif#ifndeftraceSTREAM_BUFFER_CREATE#definetraceSTREAM_BUFFER_CREATE(pxStreamBuffer,xStreamBufferType)#endif#ifndeftraceSTREAM_BUFFER_DELETE#definetraceSTREAM_BUFFER_DELETE(xStreamBuffer)#endif#ifndeftraceSTREAM_BUFFER_RESET#definetraceSTREAM_BUFFER_RESET(xStreamBuffer)#endif#ifndeftraceSTREAM_BUFFER_RESET_FROM_ISR#definetraceSTREAM_BUFFER_RESET_FROM_ISR(xStreamBuffer)#endif#ifndeftraceBLOCKING_ON_STREAM_BUFFER_SEND#definetraceBLOCKING_ON_STREAM_BUFFER_SEND(xStreamBuffer)#endif#ifndeftraceSTREAM_BUFFER_SEND#definetraceSTREAM_BUFFER_SEND(xStreamBuffer,xBytesSent)#endif#ifndeftraceSTREAM_BUFFER_SEND_FAILED#definetraceSTREAM_BUFFER_SEND_FAILED(xStreamBuffer)#endif#ifndeftraceSTREAM_BUFFER_SEND_FROM_ISR#definetraceSTREAM_BUFFER_SEND_FROM_ISR(xStreamBuffer,xBytesSent)#endif#ifndeftraceBLOCKING_ON_STREAM_BUFFER_RECEIVE#definetraceBLOCKING_ON_STREAM_BUFFER_RECEIVE(xStreamBuffer)#endif#ifndeftraceSTREAM_BUFFER_RECEIVE#definetraceSTREAM_BUFFER_RECEIVE(xStreamBuffer,xReceivedLength)#endif#ifndeftraceSTREAM_BUFFER_RECEIVE_FAILED#definetraceSTREAM_BUFFER_RECEIVE_FAILED(xStreamBuffer)#endif#ifndeftraceSTREAM_BUFFER_RECEIVE_FROM_ISR#definetraceSTREAM_BUFFER_RECEIVE_FROM_ISR(xStreamBuffer,xReceivedLength)#endif#ifndeftraceENTER_xEventGroupCreateStatic#definetraceENTER_xEventGroupCreateStatic(pxEventGroupBuffer)#endif#ifndeftraceRETURN_xEventGroupCreateStatic#definetraceRETURN_xEventGroupCreateStatic(pxEventBits)#endif#ifndeftraceENTER_xEventGroupCreate#definetraceENTER_xEventGroupCreate()#endif#ifndeftraceRETURN_xEventGroupCreate#definetraceRETURN_xEventGroupCreate(pxEventBits)#endif#ifndeftraceENTER_xEventGroupSync#definetraceENTER_xEventGroupSync(xEventGroup,uxBitsToSet,uxBitsToWaitFor,xTicksToWait)#endif#ifndeftraceRETURN_xEventGroupSync#definetraceRETURN_xEventGroupSync(uxReturn)#endif#ifndeftraceENTER_xEventGroupWaitBits#definetraceENTER_xEventGroupWaitBits(xEventGroup,uxBitsToWaitFor,xClearOnExit,xWaitForAllBits,xTicksToWait)#endif#ifndeftraceRETURN_xEventGroupWaitBits#definetraceRETURN_xEventGroupWaitBits(uxReturn)#endif#ifndeftraceENTER_xEventGroupClearBits#definetraceENTER_xEventGroupClearBits(xEventGroup,uxBitsToClear)#endif#ifndeftraceRETURN_xEventGroupClearBits#definetraceRETURN_xEventGroupClearBits(uxReturn)#endif#ifndeftraceENTER_xEventGroupClearBitsFromISR#definetraceENTER_xEventGroupClearBitsFromISR(xEventGroup,uxBitsToClear)#endif#ifndeftraceRETURN_xEventGroupClearBitsFromISR#definetraceRETURN_xEventGroupClearBitsFromISR(xReturn)#endif#ifndeftraceENTER_xEventGroupGetBitsFromISR#definetraceENTER_xEventGroupGetBitsFromISR(xEventGroup)#endif#ifndeftraceRETURN_xEventGroupGetBitsFromISR#definetraceRETURN_xEventGroupGetBitsFromISR(uxReturn)#endif#ifndeftraceENTER_xEventGroupSetBits#definetraceENTER_xEventGroupSetBits(xEventGroup,uxBitsToSet)#endif#ifndeftraceRETURN_xEventGroupSetBits#definetraceRETURN_xEventGroupSetBits(uxEventBits)#endif#ifndeftraceENTER_vEventGroupDelete#definetraceENTER_vEventGroupDelete(xEventGroup)#endif#ifndeftraceRETURN_vEventGroupDelete#definetraceRETURN_vEventGroupDelete()#endif#ifndeftraceENTER_xEventGroupGetStaticBuffer#definetraceENTER_xEventGroupGetStaticBuffer(xEventGroup,ppxEventGroupBuffer)#endif#ifndeftraceRETURN_xEventGroupGetStaticBuffer#definetraceRETURN_xEventGroupGetStaticBuffer(xReturn)#endif#ifndeftraceENTER_vEventGroupSetBitsCallback#definetraceENTER_vEventGroupSetBitsCallback(pvEventGroup,ulBitsToSet)#endif#ifndeftraceRETURN_vEventGroupSetBitsCallback#definetraceRETURN_vEventGroupSetBitsCallback()#endif#ifndeftraceENTER_vEventGroupClearBitsCallback#definetraceENTER_vEventGroupClearBitsCallback(pvEventGroup,ulBitsToClear)#endif#ifndeftraceRETURN_vEventGroupClearBitsCallback#definetraceRETURN_vEventGroupClearBitsCallback()#endif#ifndeftraceENTER_xEventGroupSetBitsFromISR#definetraceENTER_xEventGroupSetBitsFromISR(xEventGroup,uxBitsToSet,pxHigherPriorityTaskWoken)#endif#ifndeftraceRETURN_xEventGroupSetBitsFromISR#definetraceRETURN_xEventGroupSetBitsFromISR(xReturn)#endif#ifndeftraceENTER_uxEventGroupGetNumber#definetraceENTER_uxEventGroupGetNumber(xEventGroup)#endif#ifndeftraceRETURN_uxEventGroupGetNumber#definetraceRETURN_uxEventGroupGetNumber(xReturn)#endif#ifndeftraceENTER_vEventGroupSetNumber#definetraceENTER_vEventGroupSetNumber(xEventGroup,uxEventGroupNumber)#endif#ifndeftraceRETURN_vEventGroupSetNumber#definetraceRETURN_vEventGroupSetNumber()#endif#ifndeftraceENTER_xQueueGenericReset#definetraceENTER_xQueueGenericReset(xQueue,xNewQueue)#endif#ifndeftraceRETURN_xQueueGenericReset#definetraceRETURN_xQueueGenericReset(xReturn)#endif#ifndeftraceENTER_xQueueGenericCreateStatic#definetraceENTER_xQueueGenericCreateStatic(uxQueueLength,uxItemSize,pucQueueStorage,pxStaticQueue,ucQueueType)#endif#ifndeftraceRETURN_xQueueGenericCreateStatic#definetraceRETURN_xQueueGenericCreateStatic(pxNewQueue)#endif#ifndeftraceENTER_xQueueGenericGetStaticBuffers#definetraceENTER_xQueueGenericGetStaticBuffers(xQueue,ppucQueueStorage,ppxStaticQueue)#endif#ifndeftraceRETURN_xQueueGenericGetStaticBuffers#definetraceRETURN_xQueueGenericGetStaticBuffers(xReturn)#endif#ifndeftraceENTER_xQueueGenericCreate#definetraceENTER_xQueueGenericCreate(uxQueueLength,uxItemSize,ucQueueType)#endif#ifndeftraceRETURN_xQueueGenericCreate#definetraceRETURN_xQueueGenericCreate(pxNewQueue)#endif#ifndeftraceENTER_xQueueCreateMutex#definetraceENTER_xQueueCreateMutex(ucQueueType)#endif#ifndeftraceRETURN_xQueueCreateMutex#definetraceRETURN_xQueueCreateMutex(xNewQueue)#endif#ifndeftraceENTER_xQueueCreateMutexStatic#definetraceENTER_xQueueCreateMutexStatic(ucQueueType,pxStaticQueue)#endif#ifndeftraceRETURN_xQueueCreateMutexStatic#definetraceRETURN_xQueueCreateMutexStatic(xNewQueue)#endif#ifndeftraceENTER_xQueueGetMutexHolder#definetraceENTER_xQueueGetMutexHolder(xSemaphore)#endif#ifndeftraceRETURN_xQueueGetMutexHolder#definetraceRETURN_xQueueGetMutexHolder(pxReturn)#endif#ifndeftraceENTER_xQueueGetMutexHolderFromISR#definetraceENTER_xQueueGetMutexHolderFromISR(xSemaphore)#endif#ifndeftraceRETURN_xQueueGetMutexHolderFromISR#definetraceRETURN_xQueueGetMutexHolderFromISR(pxReturn)#endif#ifndeftraceENTER_xQueueGiveMutexRecursive#definetraceENTER_xQueueGiveMutexRecursive(xMutex)#endif#ifndeftraceRETURN_xQueueGiveMutexRecursive#definetraceRETURN_xQueueGiveMutexRecursive(xReturn)#endif#ifndeftraceENTER_xQueueTakeMutexRecursive#definetraceENTER_xQueueTakeMutexRecursive(xMutex,xTicksToWait)#endif#ifndeftraceRETURN_xQueueTakeMutexRecursive#definetraceRETURN_xQueueTakeMutexRecursive(xReturn)#endif#ifndeftraceENTER_xQueueCreateCountingSemaphoreStatic#definetraceENTER_xQueueCreateCountingSemaphoreStatic(uxMaxCount,uxInitialCount,pxStaticQueue)#endif#ifndeftraceRETURN_xQueueCreateCountingSemaphoreStatic#definetraceRETURN_xQueueCreateCountingSemaphoreStatic(xHandle)#endif#ifndeftraceENTER_xQueueCreateCountingSemaphore#definetraceENTER_xQueueCreateCountingSemaphore(uxMaxCount,uxInitialCount)#endif#ifndeftraceRETURN_xQueueCreateCountingSemaphore#definetraceRETURN_xQueueCreateCountingSemaphore(xHandle)#endif#ifndeftraceENTER_xQueueGenericSend#definetraceENTER_xQueueGenericSend(xQueue,pvItemToQueue,xTicksToWait,xCopyPosition)#endif#ifndeftraceRETURN_xQueueGenericSend#definetraceRETURN_xQueueGenericSend(xReturn)#endif#ifndeftraceENTER_xQueueGenericSendFromISR#definetraceENTER_xQueueGenericSendFromISR(xQueue,pvItemToQueue,pxHigherPriorityTaskWoken,xCopyPosition)#endif#ifndeftraceRETURN_xQueueGenericSendFromISR#definetraceRETURN_xQueueGenericSendFromISR(xReturn)#endif#ifndeftraceENTER_xQueueGiveFromISR#definetraceENTER_xQueueGiveFromISR(xQueue,pxHigherPriorityTaskWoken)#endif#ifndeftraceRETURN_xQueueGiveFromISR#definetraceRETURN_xQueueGiveFromISR(xReturn)#endif#ifndeftraceENTER_xQueueReceive#definetraceENTER_xQueueReceive(xQueue,pvBuffer,xTicksToWait)#endif#ifndeftraceRETURN_xQueueReceive#definetraceRETURN_xQueueReceive(xReturn)#endif#ifndeftraceENTER_xQueueSemaphoreTake#definetraceENTER_xQueueSemaphoreTake(xQueue,xTicksToWait)#endif#ifndeftraceRETURN_xQueueSemaphoreTake#definetraceRETURN_xQueueSemaphoreTake(xReturn)#endif#ifndeftraceENTER_xQueuePeek#definetraceENTER_xQueuePeek(xQueue,pvBuffer,xTicksToWait)#endif#ifndeftraceRETURN_xQueuePeek#definetraceRETURN_xQueuePeek(xReturn)#endif#ifndeftraceENTER_xQueueReceiveFromISR#definetraceENTER_xQueueReceiveFromISR(xQueue,pvBuffer,pxHigherPriorityTaskWoken)#endif#ifndeftraceRETURN_xQueueReceiveFromISR#definetraceRETURN_xQueueReceiveFromISR(xReturn)#endif#ifndeftraceENTER_xQueuePeekFromISR#definetraceENTER_xQueuePeekFromISR(xQueue,pvBuffer)#endif#ifndeftraceRETURN_xQueuePeekFromISR#definetraceRETURN_xQueuePeekFromISR(xReturn)#endif#ifndeftraceENTER_uxQueueMessagesWaiting#definetraceENTER_uxQueueMessagesWaiting(xQueue)#endif#ifndeftraceRETURN_uxQueueMessagesWaiting#definetraceRETURN_uxQueueMessagesWaiting(uxReturn)#endif#ifndeftraceENTER_uxQueueSpacesAvailable#definetraceENTER_uxQueueSpacesAvailable(xQueue)#endif#ifndeftraceRETURN_uxQueueSpacesAvailable#definetraceRETURN_uxQueueSpacesAvailable(uxReturn)#endif#ifndeftraceENTER_uxQueueMessagesWaitingFromISR#definetraceENTER_uxQueueMessagesWaitingFromISR(xQueue)#endif#ifndeftraceRETURN_uxQueueMessagesWaitingFromISR#definetraceRETURN_uxQueueMessagesWaitingFromISR(uxReturn)#endif#ifndeftraceENTER_vQueueDelete#definetraceENTER_vQueueDelete(xQueue)#endif#ifndeftraceRETURN_vQueueDelete#definetraceRETURN_vQueueDelete()#endif#ifndeftraceENTER_uxQueueGetQueueNumber#definetraceENTER_uxQueueGetQueueNumber(xQueue)#endif#ifndeftraceRETURN_uxQueueGetQueueNumber#definetraceRETURN_uxQueueGetQueueNumber(uxQueueNumber)#endif#ifndeftraceENTER_vQueueSetQueueNumber#definetraceENTER_vQueueSetQueueNumber(xQueue,uxQueueNumber)#endif#ifndeftraceRETURN_vQueueSetQueueNumber#definetraceRETURN_vQueueSetQueueNumber()#endif#ifndeftraceENTER_ucQueueGetQueueType#definetraceENTER_ucQueueGetQueueType(xQueue)#endif#ifndeftraceRETURN_ucQueueGetQueueType#definetraceRETURN_ucQueueGetQueueType(ucQueueType)#endif#ifndeftraceENTER_uxQueueGetQueueItemSize#definetraceENTER_uxQueueGetQueueItemSize(xQueue)#endif#ifndeftraceRETURN_uxQueueGetQueueItemSize#definetraceRETURN_uxQueueGetQueueItemSize(uxItemSize)#endif#ifndeftraceENTER_uxQueueGetQueueLength#definetraceENTER_uxQueueGetQueueLength(xQueue)#endif#ifndeftraceRETURN_uxQueueGetQueueLength#definetraceRETURN_uxQueueGetQueueLength(uxLength)#endif#ifndeftraceENTER_xQueueIsQueueEmptyFromISR#definetraceENTER_xQueueIsQueueEmptyFromISR(xQueue)#endif#ifndeftraceRETURN_xQueueIsQueueEmptyFromISR#definetraceRETURN_xQueueIsQueueEmptyFromISR(xReturn)#endif#ifndeftraceENTER_xQueueIsQueueFullFromISR#definetraceENTER_xQueueIsQueueFullFromISR(xQueue)#endif#ifndeftraceRETURN_xQueueIsQueueFullFromISR#definetraceRETURN_xQueueIsQueueFullFromISR(xReturn)#endif#ifndeftraceENTER_xQueueCRSend#definetraceENTER_xQueueCRSend(xQueue,pvItemToQueue,xTicksToWait)#endif#ifndeftraceRETURN_xQueueCRSend#definetraceRETURN_xQueueCRSend(xReturn)#endif#ifndeftraceENTER_xQueueCRReceive#definetraceENTER_xQueueCRReceive(xQueue,pvBuffer,xTicksToWait)#endif#ifndeftraceRETURN_xQueueCRReceive#definetraceRETURN_xQueueCRReceive(xReturn)#endif#ifndeftraceENTER_xQueueCRSendFromISR#definetraceENTER_xQueueCRSendFromISR(xQueue,pvItemToQueue,xCoRoutinePreviouslyWoken)#endif#ifndeftraceRETURN_xQueueCRSendFromISR#definetraceRETURN_xQueueCRSendFromISR(xCoRoutinePreviouslyWoken)#endif#ifndeftraceENTER_xQueueCRReceiveFromISR#definetraceENTER_xQueueCRReceiveFromISR(xQueue,pvBuffer,pxCoRoutineWoken)#endif#ifndeftraceRETURN_xQueueCRReceiveFromISR#definetraceRETURN_xQueueCRReceiveFromISR(xReturn)#endif#ifndeftraceENTER_vQueueAddToRegistry#definetraceENTER_vQueueAddToRegistry(xQueue,pcQueueName)#endif#ifndeftraceRETURN_vQueueAddToRegistry#definetraceRETURN_vQueueAddToRegistry()#endif#ifndeftraceENTER_pcQueueGetName#definetraceENTER_pcQueueGetName(xQueue)#endif#ifndeftraceRETURN_pcQueueGetName#definetraceRETURN_pcQueueGetName(pcReturn)#endif#ifndeftraceENTER_vQueueUnregisterQueue#definetraceENTER_vQueueUnregisterQueue(xQueue)#endif#ifndeftraceRETURN_vQueueUnregisterQueue#definetraceRETURN_vQueueUnregisterQueue()#endif#ifndeftraceENTER_vQueueWaitForMessageRestricted#definetraceENTER_vQueueWaitForMessageRestricted(xQueue,xTicksToWait,xWaitIndefinitely)#endif#ifndeftraceRETURN_vQueueWaitForMessageRestricted#definetraceRETURN_vQueueWaitForMessageRestricted()#endif#ifndeftraceENTER_xQueueCreateSet#definetraceENTER_xQueueCreateSet(uxEventQueueLength)#endif#ifndeftraceRETURN_xQueueCreateSet#definetraceRETURN_xQueueCreateSet(pxQueue)#endif#ifndeftraceENTER_xQueueAddToSet#definetraceENTER_xQueueAddToSet(xQueueOrSemaphore,xQueueSet)#endif#ifndeftraceRETURN_xQueueAddToSet#definetraceRETURN_xQueueAddToSet(xReturn)#endif#ifndeftraceENTER_xQueueRemoveFromSet#definetraceENTER_xQueueRemoveFromSet(xQueueOrSemaphore,xQueueSet)#endif#ifndeftraceRETURN_xQueueRemoveFromSet#definetraceRETURN_xQueueRemoveFromSet(xReturn)#endif#ifndeftraceENTER_xQueueSelectFromSet#definetraceENTER_xQueueSelectFromSet(xQueueSet,xTicksToWait)#endif#ifndeftraceRETURN_xQueueSelectFromSet#definetraceRETURN_xQueueSelectFromSet(xReturn)#endif#ifndeftraceENTER_xQueueSelectFromSetFromISR#definetraceENTER_xQueueSelectFromSetFromISR(xQueueSet)#endif#ifndeftraceRETURN_xQueueSelectFromSetFromISR#definetraceRETURN_xQueueSelectFromSetFromISR(xReturn)#endif#ifndeftraceENTER_xTimerCreateTimerTask#definetraceENTER_xTimerCreateTimerTask()#endif#ifndeftraceRETURN_xTimerCreateTimerTask#definetraceRETURN_xTimerCreateTimerTask(xReturn)#endif#ifndeftraceENTER_xTimerCreate#definetraceENTER_xTimerCreate(pcTimerName,xTimerPeriodInTicks,xAutoReload,pvTimerID,pxCallbackFunction)#endif#ifndeftraceRETURN_xTimerCreate#definetraceRETURN_xTimerCreate(pxNewTimer)#endif#ifndeftraceENTER_xTimerCreateStatic#definetraceENTER_xTimerCreateStatic(pcTimerName,xTimerPeriodInTicks,xAutoReload,pvTimerID,pxCallbackFunction,pxTimerBuffer)#endif#ifndeftraceRETURN_xTimerCreateStatic#definetraceRETURN_xTimerCreateStatic(pxNewTimer)#endif#ifndeftraceENTER_xTimerGenericCommandFromTask#definetraceENTER_xTimerGenericCommandFromTask(xTimer,xCommandID,xOptionalValue,pxHigherPriorityTaskWoken,xTicksToWait)#endif#ifndeftraceRETURN_xTimerGenericCommandFromTask#definetraceRETURN_xTimerGenericCommandFromTask(xReturn)#endif#ifndeftraceENTER_xTimerGenericCommandFromISR#definetraceENTER_xTimerGenericCommandFromISR(xTimer,xCommandID,xOptionalValue,pxHigherPriorityTaskWoken,xTicksToWait)#endif#ifndeftraceRETURN_xTimerGenericCommandFromISR#definetraceRETURN_xTimerGenericCommandFromISR(xReturn)#endif#ifndeftraceENTER_xTimerGetTimerDaemonTaskHandle#definetraceENTER_xTimerGetTimerDaemonTaskHandle()#endif#ifndeftraceRETURN_xTimerGetTimerDaemonTaskHandle#definetraceRETURN_xTimerGetTimerDaemonTaskHandle(xTimerTaskHandle)#endif#ifndeftraceENTER_xTimerGetPeriod#definetraceENTER_xTimerGetPeriod(xTimer)#endif#ifndeftraceRETURN_xTimerGetPeriod#definetraceRETURN_xTimerGetPeriod(xTimerPeriodInTicks)#endif#ifndeftraceENTER_vTimerSetReloadMode#definetraceENTER_vTimerSetReloadMode(xTimer,xAutoReload)#endif#ifndeftraceRETURN_vTimerSetReloadMode#definetraceRETURN_vTimerSetReloadMode()#endif#ifndeftraceENTER_xTimerGetReloadMode#definetraceENTER_xTimerGetReloadMode(xTimer)#endif#ifndeftraceRETURN_xTimerGetReloadMode#definetraceRETURN_xTimerGetReloadMode(xReturn)#endif#ifndeftraceENTER_uxTimerGetReloadMode#definetraceENTER_uxTimerGetReloadMode(xTimer)#endif#ifndeftraceRETURN_uxTimerGetReloadMode#definetraceRETURN_uxTimerGetReloadMode(uxReturn)#endif#ifndeftraceENTER_xTimerGetExpiryTime#definetraceENTER_xTimerGetExpiryTime(xTimer)#endif#ifndeftraceRETURN_xTimerGetExpiryTime#definetraceRETURN_xTimerGetExpiryTime(xReturn)#endif#ifndeftraceENTER_xTimerGetStaticBuffer#definetraceENTER_xTimerGetStaticBuffer(xTimer,ppxTimerBuffer)#endif#ifndeftraceRETURN_xTimerGetStaticBuffer#definetraceRETURN_xTimerGetStaticBuffer(xReturn)#endif#ifndeftraceENTER_pcTimerGetName#definetraceENTER_pcTimerGetName(xTimer)#endif#ifndeftraceRETURN_pcTimerGetName#definetraceRETURN_pcTimerGetName(pcTimerName)#endif#ifndeftraceENTER_xTimerIsTimerActive#definetraceENTER_xTimerIsTimerActive(xTimer)#endif#ifndeftraceRETURN_xTimerIsTimerActive#definetraceRETURN_xTimerIsTimerActive(xReturn)#endif#ifndeftraceENTER_pvTimerGetTimerID#definetraceENTER_pvTimerGetTimerID(xTimer)#endif#ifndeftraceRETURN_pvTimerGetTimerID#definetraceRETURN_pvTimerGetTimerID(pvReturn)#endif#ifndeftraceENTER_vTimerSetTimerID#definetraceENTER_vTimerSetTimerID(xTimer,pvNewID)#endif#ifndeftraceRETURN_vTimerSetTimerID#definetraceRETURN_vTimerSetTimerID()#endif#ifndeftraceENTER_xTimerPendFunctionCallFromISR#definetraceENTER_xTimerPendFunctionCallFromISR(xFunctionToPend,pvParameter1,ulParameter2,pxHigherPriorityTaskWoken)#endif#ifndeftraceRETURN_xTimerPendFunctionCallFromISR#definetraceRETURN_xTimerPendFunctionCallFromISR(xReturn)#endif#ifndeftraceENTER_xTimerPendFunctionCall#definetraceENTER_xTimerPendFunctionCall(xFunctionToPend,pvParameter1,ulParameter2,xTicksToWait)#endif#ifndeftraceRETURN_xTimerPendFunctionCall#definetraceRETURN_xTimerPendFunctionCall(xReturn)#endif#ifndeftraceENTER_uxTimerGetTimerNumber#definetraceENTER_uxTimerGetTimerNumber(xTimer)#endif#ifndeftraceRETURN_uxTimerGetTimerNumber#definetraceRETURN_uxTimerGetTimerNumber(uxTimerNumber)#endif#ifndeftraceENTER_vTimerSetTimerNumber#definetraceENTER_vTimerSetTimerNumber(xTimer,uxTimerNumber)#endif#ifndeftraceRETURN_vTimerSetTimerNumber#definetraceRETURN_vTimerSetTimerNumber()#endif#ifndeftraceENTER_xTaskCreateStatic#definetraceENTER_xTaskCreateStatic(pxTaskCode,pcName,uxStackDepth,pvParameters,uxPriority,puxStackBuffer,pxTaskBuffer)#endif#ifndeftraceRETURN_xTaskCreateStatic#definetraceRETURN_xTaskCreateStatic(xReturn)#endif#ifndeftraceENTER_xTaskCreateStaticAffinitySet#definetraceENTER_xTaskCreateStaticAffinitySet(pxTaskCode,pcName,uxStackDepth,pvParameters,uxPriority,puxStackBuffer,pxTaskBuffer,uxCoreAffinityMask)#endif#ifndeftraceRETURN_xTaskCreateStaticAffinitySet#definetraceRETURN_xTaskCreateStaticAffinitySet(xReturn)#endif#ifndeftraceENTER_xTaskCreateRestrictedStatic#definetraceENTER_xTaskCreateRestrictedStatic(pxTaskDefinition,pxCreatedTask)#endif#ifndeftraceRETURN_xTaskCreateRestrictedStatic#definetraceRETURN_xTaskCreateRestrictedStatic(xReturn)#endif#ifndeftraceENTER_xTaskCreateRestrictedStaticAffinitySet#definetraceENTER_xTaskCreateRestrictedStaticAffinitySet(pxTaskDefinition,uxCoreAffinityMask,pxCreatedTask)#endif#ifndeftraceRETURN_xTaskCreateRestrictedStaticAffinitySet#definetraceRETURN_xTaskCreateRestrictedStaticAffinitySet(xReturn)#endif#ifndeftraceENTER_xTaskCreateRestricted#definetraceENTER_xTaskCreateRestricted(pxTaskDefinition,pxCreatedTask)#endif#ifndeftraceRETURN_xTaskCreateRestricted#definetraceRETURN_xTaskCreateRestricted(xReturn)#endif#ifndeftraceENTER_xTaskCreateRestrictedAffinitySet#definetraceENTER_xTaskCreateRestrictedAffinitySet(pxTaskDefinition,uxCoreAffinityMask,pxCreatedTask)#endif#ifndeftraceRETURN_xTaskCreateRestrictedAffinitySet#definetraceRETURN_xTaskCreateRestrictedAffinitySet(xReturn)#endif#ifndeftraceENTER_xTaskCreate#definetraceENTER_xTaskCreate(pxTaskCode,pcName,uxStackDepth,pvParameters,uxPriority,pxCreatedTask)#endif#ifndeftraceRETURN_xTaskCreate#definetraceRETURN_xTaskCreate(xReturn)#endif#ifndeftraceENTER_xTaskCreateAffinitySet#definetraceENTER_xTaskCreateAffinitySet(pxTaskCode,pcName,uxStackDepth,pvParameters,uxPriority,uxCoreAffinityMask,pxCreatedTask)#endif#ifndeftraceRETURN_xTaskCreateAffinitySet#definetraceRETURN_xTaskCreateAffinitySet(xReturn)#endif#ifndeftraceENTER_vTaskDelete#definetraceENTER_vTaskDelete(xTaskToDelete)#endif#ifndeftraceRETURN_vTaskDelete#definetraceRETURN_vTaskDelete()#endif#ifndeftraceENTER_xTaskDelayUntil#definetraceENTER_xTaskDelayUntil(pxPreviousWakeTime,xTimeIncrement)#endif#ifndeftraceRETURN_xTaskDelayUntil#definetraceRETURN_xTaskDelayUntil(xShouldDelay)#endif#ifndeftraceENTER_vTaskDelay#definetraceENTER_vTaskDelay(xTicksToDelay)#endif#ifndeftraceRETURN_vTaskDelay#definetraceRETURN_vTaskDelay()#endif#ifndeftraceENTER_eTaskGetState#definetraceENTER_eTaskGetState(xTask)#endif#ifndeftraceRETURN_eTaskGetState#definetraceRETURN_eTaskGetState(eReturn)#endif#ifndeftraceENTER_uxTaskPriorityGet#definetraceENTER_uxTaskPriorityGet(xTask)#endif#ifndeftraceRETURN_uxTaskPriorityGet#definetraceRETURN_uxTaskPriorityGet(uxReturn)#endif#ifndeftraceENTER_uxTaskPriorityGetFromISR#definetraceENTER_uxTaskPriorityGetFromISR(xTask)#endif#ifndeftraceRETURN_uxTaskPriorityGetFromISR#definetraceRETURN_uxTaskPriorityGetFromISR(uxReturn)#endif#ifndeftraceENTER_uxTaskBasePriorityGet#definetraceENTER_uxTaskBasePriorityGet(xTask)#endif#ifndeftraceRETURN_uxTaskBasePriorityGet#definetraceRETURN_uxTaskBasePriorityGet(uxReturn)#endif#ifndeftraceENTER_uxTaskBasePriorityGetFromISR#definetraceENTER_uxTaskBasePriorityGetFromISR(xTask)#endif#ifndeftraceRETURN_uxTaskBasePriorityGetFromISR#definetraceRETURN_uxTaskBasePriorityGetFromISR(uxReturn)#endif#ifndeftraceENTER_vTaskPrioritySet#definetraceENTER_vTaskPrioritySet(xTask,uxNewPriority)#endif#ifndeftraceRETURN_vTaskPrioritySet#definetraceRETURN_vTaskPrioritySet()#endif#ifndeftraceENTER_vTaskCoreAffinitySet#definetraceENTER_vTaskCoreAffinitySet(xTask,uxCoreAffinityMask)#endif#ifndeftraceRETURN_vTaskCoreAffinitySet#definetraceRETURN_vTaskCoreAffinitySet()#endif#ifndeftraceENTER_vTaskCoreAffinityGet#definetraceENTER_vTaskCoreAffinityGet(xTask)#endif#ifndeftraceRETURN_vTaskCoreAffinityGet#definetraceRETURN_vTaskCoreAffinityGet(uxCoreAffinityMask)#endif#ifndeftraceENTER_vTaskPreemptionDisable#definetraceENTER_vTaskPreemptionDisable(xTask)#endif#ifndeftraceRETURN_vTaskPreemptionDisable#definetraceRETURN_vTaskPreemptionDisable()#endif#ifndeftraceENTER_vTaskPreemptionEnable#definetraceENTER_vTaskPreemptionEnable(xTask)#endif#ifndeftraceRETURN_vTaskPreemptionEnable#definetraceRETURN_vTaskPreemptionEnable()#endif#ifndeftraceENTER_vTaskSuspend#definetraceENTER_vTaskSuspend(xTaskToSuspend)#endif#ifndeftraceRETURN_vTaskSuspend#definetraceRETURN_vTaskSuspend()#endif#ifndeftraceENTER_vTaskResume#definetraceENTER_vTaskResume(xTaskToResume)#endif#ifndeftraceRETURN_vTaskResume#definetraceRETURN_vTaskResume()#endif#ifndeftraceENTER_xTaskResumeFromISR#definetraceENTER_xTaskResumeFromISR(xTaskToResume)#endif#ifndeftraceRETURN_xTaskResumeFromISR#definetraceRETURN_xTaskResumeFromISR(xYieldRequired)#endif#ifndeftraceENTER_vTaskStartScheduler#definetraceENTER_vTaskStartScheduler()#endif#ifndeftraceRETURN_vTaskStartScheduler#definetraceRETURN_vTaskStartScheduler()#endif#ifndeftraceENTER_vTaskEndScheduler#definetraceENTER_vTaskEndScheduler()#endif#ifndeftraceRETURN_vTaskEndScheduler#definetraceRETURN_vTaskEndScheduler()#endif#ifndeftraceENTER_vTaskSuspendAll#definetraceENTER_vTaskSuspendAll()#endif#ifndeftraceRETURN_vTaskSuspendAll#definetraceRETURN_vTaskSuspendAll()#endif#ifndeftraceENTER_xTaskResumeAll#definetraceENTER_xTaskResumeAll()#endif#ifndeftraceRETURN_xTaskResumeAll#definetraceRETURN_xTaskResumeAll(xAlreadyYielded)#endif#ifndeftraceENTER_xTaskGetTickCount#definetraceENTER_xTaskGetTickCount()#endif#ifndeftraceRETURN_xTaskGetTickCount#definetraceRETURN_xTaskGetTickCount(xTicks)#endif#ifndeftraceENTER_xTaskGetTickCountFromISR#definetraceENTER_xTaskGetTickCountFromISR()#endif#ifndeftraceRETURN_xTaskGetTickCountFromISR#definetraceRETURN_xTaskGetTickCountFromISR(xReturn)#endif#ifndeftraceENTER_uxTaskGetNumberOfTasks#definetraceENTER_uxTaskGetNumberOfTasks()#endif#ifndeftraceRETURN_uxTaskGetNumberOfTasks#definetraceRETURN_uxTaskGetNumberOfTasks(uxCurrentNumberOfTasks)#endif#ifndeftraceENTER_pcTaskGetName#definetraceENTER_pcTaskGetName(xTaskToQuery)#endif#ifndeftraceRETURN_pcTaskGetName#definetraceRETURN_pcTaskGetName(pcTaskName)#endif#ifndeftraceENTER_xTaskGetHandle#definetraceENTER_xTaskGetHandle(pcNameToQuery)#endif#ifndeftraceRETURN_xTaskGetHandle#definetraceRETURN_xTaskGetHandle(pxTCB)#endif#ifndeftraceENTER_xTaskGetStaticBuffers#definetraceENTER_xTaskGetStaticBuffers(xTask,ppuxStackBuffer,ppxTaskBuffer)#endif#ifndeftraceRETURN_xTaskGetStaticBuffers#definetraceRETURN_xTaskGetStaticBuffers(xReturn)#endif#ifndeftraceENTER_uxTaskGetSystemState#definetraceENTER_uxTaskGetSystemState(pxTaskStatusArray,uxArraySize,pulTotalRunTime)#endif#ifndeftraceRETURN_uxTaskGetSystemState#definetraceRETURN_uxTaskGetSystemState(uxTask)#endif#if(configNUMBER_OF_CORES==1)#ifndeftraceENTER_xTaskGetIdleTaskHandle#definetraceENTER_xTaskGetIdleTaskHandle()#endif/* ... */#endif#if(configNUMBER_OF_CORES==1)#ifndeftraceRETURN_xTaskGetIdleTaskHandle#definetraceRETURN_xTaskGetIdleTaskHandle(xIdleTaskHandle)#endif/* ... */#endif#ifndeftraceENTER_xTaskGetIdleTaskHandleForCore#definetraceENTER_xTaskGetIdleTaskHandleForCore(xCoreID)#endif#ifndeftraceRETURN_xTaskGetIdleTaskHandleForCore#definetraceRETURN_xTaskGetIdleTaskHandleForCore(xIdleTaskHandle)#endif#ifndeftraceENTER_vTaskStepTick#definetraceENTER_vTaskStepTick(xTicksToJump)#endif#ifndeftraceRETURN_vTaskStepTick#definetraceRETURN_vTaskStepTick()#endif#ifndeftraceENTER_xTaskCatchUpTicks#definetraceENTER_xTaskCatchUpTicks(xTicksToCatchUp)#endif#ifndeftraceRETURN_xTaskCatchUpTicks#definetraceRETURN_xTaskCatchUpTicks(xYieldOccurred)#endif#ifndeftraceENTER_xTaskAbortDelay#definetraceENTER_xTaskAbortDelay(xTask)#endif#ifndeftraceRETURN_xTaskAbortDelay#definetraceRETURN_xTaskAbortDelay(xReturn)#endif#ifndeftraceENTER_xTaskIncrementTick#definetraceENTER_xTaskIncrementTick()#endif#ifndeftraceRETURN_xTaskIncrementTick#definetraceRETURN_xTaskIncrementTick(xSwitchRequired)#endif#ifndeftraceENTER_vTaskSetApplicationTaskTag#definetraceENTER_vTaskSetApplicationTaskTag(xTask,pxHookFunction)#endif#ifndeftraceRETURN_vTaskSetApplicationTaskTag#definetraceRETURN_vTaskSetApplicationTaskTag()#endif#ifndeftraceENTER_xTaskGetApplicationTaskTag#definetraceENTER_xTaskGetApplicationTaskTag(xTask)#endif#ifndeftraceRETURN_xTaskGetApplicationTaskTag#definetraceRETURN_xTaskGetApplicationTaskTag(xReturn)#endif#ifndeftraceENTER_xTaskGetApplicationTaskTagFromISR#definetraceENTER_xTaskGetApplicationTaskTagFromISR(xTask)#endif#ifndeftraceRETURN_xTaskGetApplicationTaskTagFromISR#definetraceRETURN_xTaskGetApplicationTaskTagFromISR(xReturn)#endif#ifndeftraceENTER_xTaskCallApplicationTaskHook#definetraceENTER_xTaskCallApplicationTaskHook(xTask,pvParameter)#endif#ifndeftraceRETURN_xTaskCallApplicationTaskHook#definetraceRETURN_xTaskCallApplicationTaskHook(xReturn)#endif#ifndeftraceENTER_vTaskSwitchContext#definetraceENTER_vTaskSwitchContext()#endif#ifndeftraceRETURN_vTaskSwitchContext#definetraceRETURN_vTaskSwitchContext()#endif#ifndeftraceENTER_vTaskPlaceOnEventList#definetraceENTER_vTaskPlaceOnEventList(pxEventList,xTicksToWait)#endif#ifndeftraceRETURN_vTaskPlaceOnEventList#definetraceRETURN_vTaskPlaceOnEventList()#endif#ifndeftraceENTER_vTaskPlaceOnUnorderedEventList#definetraceENTER_vTaskPlaceOnUnorderedEventList(pxEventList,xItemValue,xTicksToWait)#endif#ifndeftraceRETURN_vTaskPlaceOnUnorderedEventList#definetraceRETURN_vTaskPlaceOnUnorderedEventList()#endif#ifndeftraceENTER_vTaskPlaceOnEventListRestricted#definetraceENTER_vTaskPlaceOnEventListRestricted(pxEventList,xTicksToWait,xWaitIndefinitely)#endif#ifndeftraceRETURN_vTaskPlaceOnEventListRestricted#definetraceRETURN_vTaskPlaceOnEventListRestricted()#endif#ifndeftraceENTER_xTaskRemoveFromEventList#definetraceENTER_xTaskRemoveFromEventList(pxEventList)#endif#ifndeftraceRETURN_xTaskRemoveFromEventList#definetraceRETURN_xTaskRemoveFromEventList(xReturn)#endif#ifndeftraceENTER_vTaskRemoveFromUnorderedEventList#definetraceENTER_vTaskRemoveFromUnorderedEventList(pxEventListItem,xItemValue)#endif#ifndeftraceRETURN_vTaskRemoveFromUnorderedEventList#definetraceRETURN_vTaskRemoveFromUnorderedEventList()#endif#ifndeftraceENTER_vTaskSetTimeOutState#definetraceENTER_vTaskSetTimeOutState(pxTimeOut)#endif#ifndeftraceRETURN_vTaskSetTimeOutState#definetraceRETURN_vTaskSetTimeOutState()#endif#ifndeftraceENTER_vTaskInternalSetTimeOutState#definetraceENTER_vTaskInternalSetTimeOutState(pxTimeOut)#endif#ifndeftraceRETURN_vTaskInternalSetTimeOutState#definetraceRETURN_vTaskInternalSetTimeOutState()#endif#ifndeftraceENTER_xTaskCheckForTimeOut#definetraceENTER_xTaskCheckForTimeOut(pxTimeOut,pxTicksToWait)#endif#ifndeftraceRETURN_xTaskCheckForTimeOut#definetraceRETURN_xTaskCheckForTimeOut(xReturn)#endif#ifndeftraceENTER_vTaskMissedYield#definetraceENTER_vTaskMissedYield()#endif#ifndeftraceRETURN_vTaskMissedYield#definetraceRETURN_vTaskMissedYield()#endif#ifndeftraceENTER_uxTaskGetTaskNumber#definetraceENTER_uxTaskGetTaskNumber(xTask)#endif#ifndeftraceRETURN_uxTaskGetTaskNumber#definetraceRETURN_uxTaskGetTaskNumber(uxReturn)#endif#ifndeftraceENTER_vTaskSetTaskNumber#definetraceENTER_vTaskSetTaskNumber(xTask,uxHandle)#endif#ifndeftraceRETURN_vTaskSetTaskNumber#definetraceRETURN_vTaskSetTaskNumber()#endif#ifndeftraceENTER_eTaskConfirmSleepModeStatus#definetraceENTER_eTaskConfirmSleepModeStatus()#endif#ifndeftraceRETURN_eTaskConfirmSleepModeStatus#definetraceRETURN_eTaskConfirmSleepModeStatus(eReturn)#endif#ifndeftraceENTER_vTaskSetThreadLocalStoragePointer#definetraceENTER_vTaskSetThreadLocalStoragePointer(xTaskToSet,xIndex,pvValue)#endif#ifndeftraceRETURN_vTaskSetThreadLocalStoragePointer#definetraceRETURN_vTaskSetThreadLocalStoragePointer()#endif#ifndeftraceENTER_pvTaskGetThreadLocalStoragePointer#definetraceENTER_pvTaskGetThreadLocalStoragePointer(xTaskToQuery,xIndex)#endif#ifndeftraceRETURN_pvTaskGetThreadLocalStoragePointer#definetraceRETURN_pvTaskGetThreadLocalStoragePointer(pvReturn)#endif#ifndeftraceENTER_vTaskAllocateMPURegions#definetraceENTER_vTaskAllocateMPURegions(xTaskToModify,pxRegions)#endif#ifndeftraceRETURN_vTaskAllocateMPURegions#definetraceRETURN_vTaskAllocateMPURegions()#endif#ifndeftraceENTER_vTaskGetInfo#definetraceENTER_vTaskGetInfo(xTask,pxTaskStatus,xGetFreeStackSpace,eState)#endif#ifndeftraceRETURN_vTaskGetInfo#definetraceRETURN_vTaskGetInfo()#endif#ifndeftraceENTER_uxTaskGetStackHighWaterMark2#definetraceENTER_uxTaskGetStackHighWaterMark2(xTask)#endif#ifndeftraceRETURN_uxTaskGetStackHighWaterMark2#definetraceRETURN_uxTaskGetStackHighWaterMark2(uxReturn)#endif#ifndeftraceENTER_uxTaskGetStackHighWaterMark#definetraceENTER_uxTaskGetStackHighWaterMark(xTask)#endif#ifndeftraceRETURN_uxTaskGetStackHighWaterMark#definetraceRETURN_uxTaskGetStackHighWaterMark(uxReturn)#endif#ifndeftraceENTER_xTaskGetCurrentTaskHandle#definetraceENTER_xTaskGetCurrentTaskHandle()#endif#ifndeftraceRETURN_xTaskGetCurrentTaskHandle#definetraceRETURN_xTaskGetCurrentTaskHandle(xReturn)#endif#ifndeftraceENTER_xTaskGetCurrentTaskHandleForCore#definetraceENTER_xTaskGetCurrentTaskHandleForCore(xCoreID)#endif#ifndeftraceRETURN_xTaskGetCurrentTaskHandleForCore#definetraceRETURN_xTaskGetCurrentTaskHandleForCore(xReturn)#endif#ifndeftraceENTER_xTaskGetSchedulerState#definetraceENTER_xTaskGetSchedulerState()#endif#ifndeftraceRETURN_xTaskGetSchedulerState#definetraceRETURN_xTaskGetSchedulerState(xReturn)#endif#ifndeftraceENTER_xTaskPriorityInherit#definetraceENTER_xTaskPriorityInherit(pxMutexHolder)#endif#ifndeftraceRETURN_xTaskPriorityInherit#definetraceRETURN_xTaskPriorityInherit(xReturn)#endif#ifndeftraceENTER_xTaskPriorityDisinherit#definetraceENTER_xTaskPriorityDisinherit(pxMutexHolder)#endif#ifndeftraceRETURN_xTaskPriorityDisinherit#definetraceRETURN_xTaskPriorityDisinherit(xReturn)#endif#ifndeftraceENTER_vTaskPriorityDisinheritAfterTimeout#definetraceENTER_vTaskPriorityDisinheritAfterTimeout(pxMutexHolder,uxHighestPriorityWaitingTask)#endif#ifndeftraceRETURN_vTaskPriorityDisinheritAfterTimeout#definetraceRETURN_vTaskPriorityDisinheritAfterTimeout()#endif#ifndeftraceENTER_vTaskYieldWithinAPI#definetraceENTER_vTaskYieldWithinAPI()#endif#ifndeftraceRETURN_vTaskYieldWithinAPI#definetraceRETURN_vTaskYieldWithinAPI()#endif#ifndeftraceENTER_vTaskEnterCritical#definetraceENTER_vTaskEnterCritical()#endif#ifndeftraceRETURN_vTaskEnterCritical#definetraceRETURN_vTaskEnterCritical()#endif#ifndeftraceENTER_vTaskEnterCriticalFromISR#definetraceENTER_vTaskEnterCriticalFromISR()#endif#ifndeftraceRETURN_vTaskEnterCriticalFromISR#definetraceRETURN_vTaskEnterCriticalFromISR(uxSavedInterruptStatus)#endif#ifndeftraceENTER_vTaskExitCritical#definetraceENTER_vTaskExitCritical()#endif#ifndeftraceRETURN_vTaskExitCritical#definetraceRETURN_vTaskExitCritical()#endif#ifndeftraceENTER_vTaskExitCriticalFromISR#definetraceENTER_vTaskExitCriticalFromISR(uxSavedInterruptStatus)#endif#ifndeftraceRETURN_vTaskExitCriticalFromISR#definetraceRETURN_vTaskExitCriticalFromISR()#endif#ifndeftraceENTER_vTaskListTasks#definetraceENTER_vTaskListTasks(pcWriteBuffer,uxBufferLength)#endif#ifndeftraceRETURN_vTaskListTasks#definetraceRETURN_vTaskListTasks()#endif#ifndeftraceENTER_vTaskGetRunTimeStatistics#definetraceENTER_vTaskGetRunTimeStatistics(pcWriteBuffer,uxBufferLength)#endif#ifndeftraceRETURN_vTaskGetRunTimeStatistics#definetraceRETURN_vTaskGetRunTimeStatistics()#endif#ifndeftraceENTER_uxTaskResetEventItemValue#definetraceENTER_uxTaskResetEventItemValue()#endif#ifndeftraceRETURN_uxTaskResetEventItemValue#definetraceRETURN_uxTaskResetEventItemValue(uxReturn)#endif#ifndeftraceENTER_pvTaskIncrementMutexHeldCount#definetraceENTER_pvTaskIncrementMutexHeldCount()#endif#ifndeftraceRETURN_pvTaskIncrementMutexHeldCount#definetraceRETURN_pvTaskIncrementMutexHeldCount(pxTCB)#endif#ifndeftraceENTER_ulTaskGenericNotifyTake#definetraceENTER_ulTaskGenericNotifyTake(uxIndexToWaitOn,xClearCountOnExit,xTicksToWait)#endif#ifndeftraceRETURN_ulTaskGenericNotifyTake#definetraceRETURN_ulTaskGenericNotifyTake(ulReturn)#endif#ifndeftraceENTER_xTaskGenericNotifyWait#definetraceENTER_xTaskGenericNotifyWait(uxIndexToWaitOn,ulBitsToClearOnEntry,ulBitsToClearOnExit,pulNotificationValue,xTicksToWait)#endif#ifndeftraceRETURN_xTaskGenericNotifyWait#definetraceRETURN_xTaskGenericNotifyWait(xReturn)#endif#ifndeftraceENTER_xTaskGenericNotify#definetraceENTER_xTaskGenericNotify(xTaskToNotify,uxIndexToNotify,ulValue,eAction,pulPreviousNotificationValue)#endif#ifndeftraceRETURN_xTaskGenericNotify#definetraceRETURN_xTaskGenericNotify(xReturn)#endif#ifndeftraceENTER_xTaskGenericNotifyFromISR#definetraceENTER_xTaskGenericNotifyFromISR(xTaskToNotify,uxIndexToNotify,ulValue,eAction,pulPreviousNotificationValue,pxHigherPriorityTaskWoken)#endif#ifndeftraceRETURN_xTaskGenericNotifyFromISR#definetraceRETURN_xTaskGenericNotifyFromISR(xReturn)#endif#ifndeftraceENTER_vTaskGenericNotifyGiveFromISR#definetraceENTER_vTaskGenericNotifyGiveFromISR(xTaskToNotify,uxIndexToNotify,pxHigherPriorityTaskWoken)#endif#ifndeftraceRETURN_vTaskGenericNotifyGiveFromISR#definetraceRETURN_vTaskGenericNotifyGiveFromISR()#endif#ifndeftraceENTER_xTaskGenericNotifyStateClear#definetraceENTER_xTaskGenericNotifyStateClear(xTask,uxIndexToClear)#endif#ifndeftraceRETURN_xTaskGenericNotifyStateClear#definetraceRETURN_xTaskGenericNotifyStateClear(xReturn)#endif#ifndeftraceENTER_ulTaskGenericNotifyValueClear#definetraceENTER_ulTaskGenericNotifyValueClear(xTask,uxIndexToClear,ulBitsToClear)#endif#ifndeftraceRETURN_ulTaskGenericNotifyValueClear#definetraceRETURN_ulTaskGenericNotifyValueClear(ulReturn)#endif#ifndeftraceENTER_ulTaskGetRunTimeCounter#definetraceENTER_ulTaskGetRunTimeCounter(xTask)#endif#ifndeftraceRETURN_ulTaskGetRunTimeCounter#definetraceRETURN_ulTaskGetRunTimeCounter(ulRunTimeCounter)#endif#ifndeftraceENTER_ulTaskGetRunTimePercent#definetraceENTER_ulTaskGetRunTimePercent(xTask)#endif#ifndeftraceRETURN_ulTaskGetRunTimePercent#definetraceRETURN_ulTaskGetRunTimePercent(ulReturn)#endif#ifndeftraceENTER_ulTaskGetIdleRunTimeCounter#definetraceENTER_ulTaskGetIdleRunTimeCounter()#endif#ifndeftraceRETURN_ulTaskGetIdleRunTimeCounter#definetraceRETURN_ulTaskGetIdleRunTimeCounter(ulReturn)#endif#ifndeftraceENTER_ulTaskGetIdleRunTimePercent#definetraceENTER_ulTaskGetIdleRunTimePercent()#endif#ifndeftraceRETURN_ulTaskGetIdleRunTimePercent#definetraceRETURN_ulTaskGetIdleRunTimePercent(ulReturn)#endif#ifndeftraceENTER_xTaskGetMPUSettings#definetraceENTER_xTaskGetMPUSettings(xTask)#endif#ifndeftraceRETURN_xTaskGetMPUSettings#definetraceRETURN_xTaskGetMPUSettings(xMPUSettings)#endif#ifndeftraceENTER_xStreamBufferGenericCreate#definetraceENTER_xStreamBufferGenericCreate(xBufferSizeBytes,xTriggerLevelBytes,xStreamBufferType,pxSendCompletedCallback,pxReceiveCompletedCallback)#endif#ifndeftraceRETURN_xStreamBufferGenericCreate#definetraceRETURN_xStreamBufferGenericCreate(pvAllocatedMemory)#endif#ifndeftraceENTER_xStreamBufferGenericCreateStatic#definetraceENTER_xStreamBufferGenericCreateStatic(xBufferSizeBytes,xTriggerLevelBytes,xStreamBufferType,pucStreamBufferStorageArea,pxStaticStreamBuffer,pxSendCompletedCallback,pxReceiveCompletedCallback)#endif#ifndeftraceRETURN_xStreamBufferGenericCreateStatic#definetraceRETURN_xStreamBufferGenericCreateStatic(xReturn)#endif#ifndeftraceENTER_xStreamBufferGetStaticBuffers#definetraceENTER_xStreamBufferGetStaticBuffers(xStreamBuffer,ppucStreamBufferStorageArea,ppxStaticStreamBuffer)#endif#ifndeftraceRETURN_xStreamBufferGetStaticBuffers#definetraceRETURN_xStreamBufferGetStaticBuffers(xReturn)#endif#ifndeftraceENTER_vStreamBufferDelete#definetraceENTER_vStreamBufferDelete(xStreamBuffer)#endif#ifndeftraceRETURN_vStreamBufferDelete#definetraceRETURN_vStreamBufferDelete()#endif#ifndeftraceENTER_xStreamBufferReset#definetraceENTER_xStreamBufferReset(xStreamBuffer)#endif#ifndeftraceRETURN_xStreamBufferReset#definetraceRETURN_xStreamBufferReset(xReturn)#endif#ifndeftraceENTER_xStreamBufferResetFromISR#definetraceENTER_xStreamBufferResetFromISR(xStreamBuffer)#endif#ifndeftraceRETURN_xStreamBufferResetFromISR#definetraceRETURN_xStreamBufferResetFromISR(xReturn)#endif#ifndeftraceENTER_xStreamBufferSetTriggerLevel#definetraceENTER_xStreamBufferSetTriggerLevel(xStreamBuffer,xTriggerLevel)#endif#ifndeftraceRETURN_xStreamBufferSetTriggerLevel#definetraceRETURN_xStreamBufferSetTriggerLevel(xReturn)#endif#ifndeftraceENTER_xStreamBufferSpacesAvailable#definetraceENTER_xStreamBufferSpacesAvailable(xStreamBuffer)#endif#ifndeftraceRETURN_xStreamBufferSpacesAvailable#definetraceRETURN_xStreamBufferSpacesAvailable(xSpace)#endif#ifndeftraceENTER_xStreamBufferBytesAvailable#definetraceENTER_xStreamBufferBytesAvailable(xStreamBuffer)#endif#ifndeftraceRETURN_xStreamBufferBytesAvailable#definetraceRETURN_xStreamBufferBytesAvailable(xReturn)#endif#ifndeftraceENTER_xStreamBufferSend#definetraceENTER_xStreamBufferSend(xStreamBuffer,pvTxData,xDataLengthBytes,xTicksToWait)#endif#ifndeftraceRETURN_xStreamBufferSend#definetraceRETURN_xStreamBufferSend(xReturn)#endif#ifndeftraceENTER_xStreamBufferSendFromISR#definetraceENTER_xStreamBufferSendFromISR(xStreamBuffer,pvTxData,xDataLengthBytes,pxHigherPriorityTaskWoken)#endif#ifndeftraceRETURN_xStreamBufferSendFromISR#definetraceRETURN_xStreamBufferSendFromISR(xReturn)#endif#ifndeftraceENTER_xStreamBufferReceive#definetraceENTER_xStreamBufferReceive(xStreamBuffer,pvRxData,xBufferLengthBytes,xTicksToWait)#endif#ifndeftraceRETURN_xStreamBufferReceive#definetraceRETURN_xStreamBufferReceive(xReceivedLength)#endif#ifndeftraceENTER_xStreamBufferNextMessageLengthBytes#definetraceENTER_xStreamBufferNextMessageLengthBytes(xStreamBuffer)#endif#ifndeftraceRETURN_xStreamBufferNextMessageLengthBytes#definetraceRETURN_xStreamBufferNextMessageLengthBytes(xReturn)#endif#ifndeftraceENTER_xStreamBufferReceiveFromISR#definetraceENTER_xStreamBufferReceiveFromISR(xStreamBuffer,pvRxData,xBufferLengthBytes,pxHigherPriorityTaskWoken)#endif#ifndeftraceRETURN_xStreamBufferReceiveFromISR#definetraceRETURN_xStreamBufferReceiveFromISR(xReceivedLength)#endif#ifndeftraceENTER_xStreamBufferIsEmpty#definetraceENTER_xStreamBufferIsEmpty(xStreamBuffer)#endif#ifndeftraceRETURN_xStreamBufferIsEmpty#definetraceRETURN_xStreamBufferIsEmpty(xReturn)#endif#ifndeftraceENTER_xStreamBufferIsFull#definetraceENTER_xStreamBufferIsFull(xStreamBuffer)#endif#ifndeftraceRETURN_xStreamBufferIsFull#definetraceRETURN_xStreamBufferIsFull(xReturn)#endif#ifndeftraceENTER_xStreamBufferSendCompletedFromISR#definetraceENTER_xStreamBufferSendCompletedFromISR(xStreamBuffer,pxHigherPriorityTaskWoken)#endif#ifndeftraceRETURN_xStreamBufferSendCompletedFromISR#definetraceRETURN_xStreamBufferSendCompletedFromISR(xReturn)#endif#ifndeftraceENTER_xStreamBufferReceiveCompletedFromISR#definetraceENTER_xStreamBufferReceiveCompletedFromISR(xStreamBuffer,pxHigherPriorityTaskWoken)#endif#ifndeftraceRETURN_xStreamBufferReceiveCompletedFromISR#definetraceRETURN_xStreamBufferReceiveCompletedFromISR(xReturn)#endif#ifndeftraceENTER_uxStreamBufferGetStreamBufferNotificationIndex#definetraceENTER_uxStreamBufferGetStreamBufferNotificationIndex(xStreamBuffer)#endif#ifndeftraceRETURN_uxStreamBufferGetStreamBufferNotificationIndex#definetraceRETURN_uxStreamBufferGetStreamBufferNotificationIndex(uxNotificationIndex)#endif#ifndeftraceENTER_vStreamBufferSetStreamBufferNotificationIndex#definetraceENTER_vStreamBufferSetStreamBufferNotificationIndex(xStreamBuffer,uxNotificationIndex)#endif#ifndeftraceRETURN_vStreamBufferSetStreamBufferNotificationIndex#definetraceRETURN_vStreamBufferSetStreamBufferNotificationIndex()#endif#ifndeftraceENTER_uxStreamBufferGetStreamBufferNumber#definetraceENTER_uxStreamBufferGetStreamBufferNumber(xStreamBuffer)#endif#ifndeftraceRETURN_uxStreamBufferGetStreamBufferNumber#definetraceRETURN_uxStreamBufferGetStreamBufferNumber(uxStreamBufferNumber)#endif#ifndeftraceENTER_vStreamBufferSetStreamBufferNumber#definetraceENTER_vStreamBufferSetStreamBufferNumber(xStreamBuffer,uxStreamBufferNumber)#endif#ifndeftraceRETURN_vStreamBufferSetStreamBufferNumber#definetraceRETURN_vStreamBufferSetStreamBufferNumber()#endif#ifndeftraceENTER_ucStreamBufferGetStreamBufferType#definetraceENTER_ucStreamBufferGetStreamBufferType(xStreamBuffer)#endif#ifndeftraceRETURN_ucStreamBufferGetStreamBufferType#definetraceRETURN_ucStreamBufferGetStreamBufferType(ucStreamBufferType)#endif#ifndeftraceENTER_vListInitialise#definetraceENTER_vListInitialise(pxList)#endif#ifndeftraceRETURN_vListInitialise#definetraceRETURN_vListInitialise()#endif#ifndeftraceENTER_vListInitialiseItem#definetraceENTER_vListInitialiseItem(pxItem)#endif#ifndeftraceRETURN_vListInitialiseItem#definetraceRETURN_vListInitialiseItem()#endif#ifndeftraceENTER_vListInsertEnd#definetraceENTER_vListInsertEnd(pxList,pxNewListItem)#endif#ifndeftraceRETURN_vListInsertEnd#definetraceRETURN_vListInsertEnd()#endif#ifndeftraceENTER_vListInsert#definetraceENTER_vListInsert(pxList,pxNewListItem)#endif#ifndeftraceRETURN_vListInsert#definetraceRETURN_vListInsert()#endif#ifndeftraceENTER_uxListRemove#definetraceENTER_uxListRemove(pxItemToRemove)#endif#ifndeftraceRETURN_uxListRemove#definetraceRETURN_uxListRemove(uxNumberOfItems)#endif#ifndeftraceENTER_xCoRoutineCreate#definetraceENTER_xCoRoutineCreate(pxCoRoutineCode,uxPriority,uxIndex)#endif#ifndeftraceRETURN_xCoRoutineCreate#definetraceRETURN_xCoRoutineCreate(xReturn)#endif#ifndeftraceENTER_vCoRoutineAddToDelayedList#definetraceENTER_vCoRoutineAddToDelayedList(xTicksToDelay,pxEventList)#endif#ifndeftraceRETURN_vCoRoutineAddToDelayedList#definetraceRETURN_vCoRoutineAddToDelayedList()#endif#ifndeftraceENTER_vCoRoutineSchedule#definetraceENTER_vCoRoutineSchedule()#endif#ifndeftraceRETURN_vCoRoutineSchedule#definetraceRETURN_vCoRoutineSchedule()#endif#ifndeftraceENTER_xCoRoutineRemoveFromEventList#definetraceENTER_xCoRoutineRemoveFromEventList(pxEventList)#endif#ifndeftraceRETURN_xCoRoutineRemoveFromEventList#definetraceRETURN_xCoRoutineRemoveFromEventList(xReturn)#endif#ifndefconfigGENERATE_RUN_TIME_STATS#defineconfigGENERATE_RUN_TIME_STATS0#endif#if(configGENERATE_RUN_TIME_STATS==1)#ifndefportCONFIGURE_TIMER_FOR_RUN_TIME_STATS#errorIfconfigGENERATE_RUN_TIME_STATSisdefinedthenportCONFIGURE_TIMER_FOR_RUN_TIME_STATSmustalsobedefined.portCONFIGURE_TIMER_FOR_RUN_TIME_STATSshouldcallaportlayerfunctiontosetupaperipheraltimer/counterthatcanthenbeusedastheruntimecountertimebase.#endif/* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */#ifndefportGET_RUN_TIME_COUNTER_VALUE#ifndefportALT_GET_RUN_TIME_COUNTER_VALUE#errorIfconfigGENERATE_RUN_TIME_STATSisdefinedtheneitherportGET_RUN_TIME_COUNTER_VALUEorportALT_GET_RUN_TIME_COUNTER_VALUEmustalsobedefined.SeetheexamplesprovidedandtheFreeRTOSwebsiteformoreinformation.#endif/* portALT_GET_RUN_TIME_COUNTER_VALUE *//* ... */#endif/* portGET_RUN_TIME_COUNTER_VALUE *//* ... */#endif/* configGENERATE_RUN_TIME_STATS */#ifndefportCONFIGURE_TIMER_FOR_RUN_TIME_STATS#defineportCONFIGURE_TIMER_FOR_RUN_TIME_STATS()#endif#ifndefportPRIVILEGE_BIT#defineportPRIVILEGE_BIT((UBaseType_t)0x00)#endif#ifndefportYIELD_WITHIN_API#defineportYIELD_WITHIN_APIportYIELD#endif#ifndefportSUPPRESS_TICKS_AND_SLEEP#defineportSUPPRESS_TICKS_AND_SLEEP(xExpectedIdleTime)#endif#ifndefconfigEXPECTED_IDLE_TIME_BEFORE_SLEEP#defineconfigEXPECTED_IDLE_TIME_BEFORE_SLEEP2#endif#ifconfigEXPECTED_IDLE_TIME_BEFORE_SLEEP<2#errorconfigEXPECTED_IDLE_TIME_BEFORE_SLEEPmustnotbelessthan2#endif#ifndefconfigUSE_TICKLESS_IDLE#defineconfigUSE_TICKLESS_IDLE0#endif#ifndefconfigPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING#defineconfigPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING(x)#endif#ifndefconfigPRE_SLEEP_PROCESSING#defineconfigPRE_SLEEP_PROCESSING(x)#endif#ifndefconfigPOST_SLEEP_PROCESSING#defineconfigPOST_SLEEP_PROCESSING(x)#endif#ifndefconfigUSE_QUEUE_SETS#defineconfigUSE_QUEUE_SETS0#endif#ifndefportTASK_USES_FLOATING_POINT#defineportTASK_USES_FLOATING_POINT()#endif#ifndefportALLOCATE_SECURE_CONTEXT#defineportALLOCATE_SECURE_CONTEXT(ulSecureStackSize)#endif#ifndefportDONT_DISCARD#defineportDONT_DISCARD#endif#ifndefconfigUSE_TIME_SLICING#defineconfigUSE_TIME_SLICING1#endif#ifndefconfigINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS#defineconfigINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS0#endif#ifndefconfigUSE_STATS_FORMATTING_FUNCTIONS#defineconfigUSE_STATS_FORMATTING_FUNCTIONS0#endif#ifndefportASSERT_IF_INTERRUPT_PRIORITY_INVALID#defineportASSERT_IF_INTERRUPT_PRIORITY_INVALID()#endif#ifndefconfigUSE_TRACE_FACILITY#defineconfigUSE_TRACE_FACILITY0#endif#ifndefmtCOVERAGE_TEST_MARKER#definemtCOVERAGE_TEST_MARKER()#endif#ifndefmtCOVERAGE_TEST_DELAY#definemtCOVERAGE_TEST_DELAY()#endif#ifndefportASSERT_IF_IN_ISR#defineportASSERT_IF_IN_ISR()#endif#ifndefconfigUSE_PORT_OPTIMISED_TASK_SELECTION#defineconfigUSE_PORT_OPTIMISED_TASK_SELECTION0#endif#ifndefconfigAPPLICATION_ALLOCATED_HEAP#defineconfigAPPLICATION_ALLOCATED_HEAP0#endif#ifndefconfigENABLE_HEAP_PROTECTOR#defineconfigENABLE_HEAP_PROTECTOR0#endif#ifndefconfigUSE_TASK_NOTIFICATIONS#defineconfigUSE_TASK_NOTIFICATIONS1#endif#ifndefconfigTASK_NOTIFICATION_ARRAY_ENTRIES#defineconfigTASK_NOTIFICATION_ARRAY_ENTRIES1#endif#ifconfigTASK_NOTIFICATION_ARRAY_ENTRIES<1#errorconfigTASK_NOTIFICATION_ARRAY_ENTRIESmustbeatleast1#endif#ifndefconfigUSE_POSIX_ERRNO#defineconfigUSE_POSIX_ERRNO0#endif#ifndefconfigUSE_SB_COMPLETED_CALLBACK/* By default per-instance callbacks are not enabled for stream buffer or message buffer. */#defineconfigUSE_SB_COMPLETED_CALLBACK0/* ... */#endif#ifndefportTICK_TYPE_IS_ATOMIC#defineportTICK_TYPE_IS_ATOMIC0#endif#ifndefconfigSUPPORT_STATIC_ALLOCATION/* Defaults to 0 for backward compatibility. */#defineconfigSUPPORT_STATIC_ALLOCATION0/* ... */#endif#ifndefconfigKERNEL_PROVIDED_STATIC_MEMORY#defineconfigKERNEL_PROVIDED_STATIC_MEMORY0#endif#ifndefconfigSUPPORT_DYNAMIC_ALLOCATION/* Defaults to 1 for backward compatibility. */#defineconfigSUPPORT_DYNAMIC_ALLOCATION1/* ... */#endif#if((configUSE_STATS_FORMATTING_FUNCTIONS>0)&&(configSUPPORT_DYNAMIC_ALLOCATION!=1))#errorconfigUSE_STATS_FORMATTING_FUNCTIONScannotbeusedwithoutdynamicallocation,butconfigSUPPORT_DYNAMIC_ALLOCATIONisnotsetto1.#endif#if(configUSE_STATS_FORMATTING_FUNCTIONS>0)#if((configUSE_TRACE_FACILITY!=1)&&(configGENERATE_RUN_TIME_STATS!=1))#errorconfigUSE_STATS_FORMATTING_FUNCTIONSis1butthefunctionsitenablesarenotusedbecauseneitherconfigUSE_TRACE_FACILITYorconfigGENERATE_RUN_TIME_STATSare1.SetconfigUSE_STATS_FORMATTING_FUNCTIONSto0inFreeRTOSConfig.h.#endif/* ... */#endif#ifndefconfigSTATS_BUFFER_MAX_LENGTH#defineconfigSTATS_BUFFER_MAX_LENGTH0xFFFF#endif#ifndefconfigSTACK_DEPTH_TYPE/* Defaults to StackType_t for backward compatibility, but can be overridden * in FreeRTOSConfig.h if StackType_t is too restrictive. *//* ... */#defineconfigSTACK_DEPTH_TYPEStackType_t/* ... */#endif#ifndefconfigRUN_TIME_COUNTER_TYPE/* Defaults to uint32_t for backward compatibility, but can be overridden in * FreeRTOSConfig.h if uint32_t is too restrictive. *//* ... */#defineconfigRUN_TIME_COUNTER_TYPEuint32_t/* ... */#endif#ifndefconfigMESSAGE_BUFFER_LENGTH_TYPE/* Defaults to size_t for backward compatibility, but can be overridden * in FreeRTOSConfig.h if lengths will always be less than the number of bytes * in a size_t. *//* ... */#defineconfigMESSAGE_BUFFER_LENGTH_TYPEsize_t/* ... */#endif/* Sanity check the configuration. */#if((configSUPPORT_STATIC_ALLOCATION==0)&&(configSUPPORT_DYNAMIC_ALLOCATION==0))#errorconfigSUPPORT_STATIC_ALLOCATIONandconfigSUPPORT_DYNAMIC_ALLOCATIONcannotbothbe0,butcanbothbe1.#endif#if((configUSE_RECURSIVE_MUTEXES==1)&&(configUSE_MUTEXES!=1))#errorconfigUSE_MUTEXESmustbesetto1touserecursivemutexes#endif#if((configRUN_MULTIPLE_PRIORITIES==0)&&(configUSE_TASK_PREEMPTION_DISABLE!=0))#errorconfigRUN_MULTIPLE_PRIORITIESmustbesetto1tousetaskpreemptiondisable#endif#if((configUSE_PREEMPTION==0)&&(configUSE_TASK_PREEMPTION_DISABLE!=0))#errorconfigUSE_PREEMPTIONmustbesetto1tousetaskpreemptiondisable#endif#if((configNUMBER_OF_CORES==1)&&(configUSE_TASK_PREEMPTION_DISABLE!=0))#errorconfigUSE_TASK_PREEMPTION_DISABLEisnotsupportedinsinglecoreFreeRTOS#endif#if((configNUMBER_OF_CORES==1)&&(configUSE_CORE_AFFINITY!=0))#errorconfigUSE_CORE_AFFINITYisnotsupportedinsinglecoreFreeRTOS#endif#if((configNUMBER_OF_CORES>1)&&(configUSE_PORT_OPTIMISED_TASK_SELECTION!=0))#errorconfigUSE_PORT_OPTIMISED_TASK_SELECTIONisnotsupportedinSMPFreeRTOS#endif#ifndefconfigINITIAL_TICK_COUNT#defineconfigINITIAL_TICK_COUNT0#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. *//* ... */#defineportTICK_TYPE_ENTER_CRITICAL()portENTER_CRITICAL()#defineportTICK_TYPE_EXIT_CRITICAL()portEXIT_CRITICAL()#defineportTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR()portSET_INTERRUPT_MASK_FROM_ISR()#defineportTICK_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. *//* ... */#defineportTICK_TYPE_ENTER_CRITICAL()#defineportTICK_TYPE_EXIT_CRITICAL()#defineportTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR()0#defineportTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR(x)(void)(x)/* ... */#endif/* if ( portTICK_TYPE_IS_ATOMIC == 0 ) *//* Definitions to allow backward compatibility with FreeRTOS versions prior to * V8 if desired. *//* ... */#ifndefconfigENABLE_BACKWARD_COMPATIBILITY#defineconfigENABLE_BACKWARD_COMPATIBILITY1#endif#ifndefconfigPRINTF/* configPRINTF() was not defined, so define it away to nothing. To use * configPRINTF() then define it as follows (where MyPrintFunction() is * provided by the application writer): * * void MyPrintFunction(const char *pcFormat, ... ); #define configPRINTF( X ) MyPrintFunction X * * Then call like a standard printf() function, but placing brackets around * all parameters so they are passed as a single parameter. For example: * configPRINTF( ("Value = %d", MyVariable) ); *//* ... */#defineconfigPRINTF(X)/* ... */#endif#ifndefconfigMAX/* The application writer has not provided their own MAX macro, so define * the following generic implementation. *//* ... */#defineconfigMAX(a,b)(((a)>(b))?(a):(b))/* ... */#endif#ifndefconfigMIN/* The application writer has not provided their own MIN macro, so define * the following generic implementation. *//* ... */#defineconfigMIN(a,b)(((a)<(b))?(a):(b))/* ... */#endif#ifconfigENABLE_BACKWARD_COMPATIBILITY==1#defineeTaskStateGeteTaskGetState#defineportTickTypeTickType_t#definexTaskHandleTaskHandle_t#definexQueueHandleQueueHandle_t#definexSemaphoreHandleSemaphoreHandle_t#definexQueueSetHandleQueueSetHandle_t#definexQueueSetMemberHandleQueueSetMemberHandle_t#definexTimeOutTypeTimeOut_t#definexMemoryRegionMemoryRegion_t#definexTaskParametersTaskParameters_t#definexTaskStatusTypeTaskStatus_t#definexTimerHandleTimerHandle_t#definexCoRoutineHandleCoRoutineHandle_t#definepdTASK_HOOK_CODETaskHookFunction_t#defineportTICK_RATE_MSportTICK_PERIOD_MS#definepcTaskGetTaskNamepcTaskGetName#definepcTimerGetTimerNamepcTimerGetName#definepcQueueGetQueueNamepcQueueGetName#definevTaskGetTaskInfovTaskGetInfo#definexTaskGetIdleRunTimeCounterulTaskGetIdleRunTimeCounter/* Backward compatibility within the scheduler code only - these definitions * are not really required but are included for completeness. *//* ... */#definetmrTIMER_CALLBACKTimerCallbackFunction_t#definepdTASK_CODETaskFunction_t#definexListItemListItem_t#definexListList_t/* For libraries that break the list data hiding, and access list structure * members directly (which is not supposed to be done). *//* ... */#definepxContainerpvContainer/* ... */#endif/* configENABLE_BACKWARD_COMPATIBILITY */#if(configUSE_ALTERNATIVE_API!=0)#errorThealternativeAPIwasdeprecatedsometimeago,andwasremovedinFreeRTOSV9.00#endif/* Set configUSE_TASK_FPU_SUPPORT to 0 to omit floating point support even * if floating point hardware is otherwise supported by the FreeRTOS port in use. * This constant is not supported by all FreeRTOS ports that include floating * point support. *//* ... */#ifndefconfigUSE_TASK_FPU_SUPPORT#defineconfigUSE_TASK_FPU_SUPPORT1#endif/* Set configENABLE_MPU to 1 to enable MPU support and 0 to disable it. This is * currently used in ARMv8M ports. *//* ... */#ifndefconfigENABLE_MPU#defineconfigENABLE_MPU0#endif/* Set configENABLE_FPU to 1 to enable FPU support and 0 to disable it. This is * currently used in ARMv8M ports. *//* ... */#ifndefconfigENABLE_FPU#defineconfigENABLE_FPU1#endif/* Set configENABLE_MVE to 1 to enable MVE support and 0 to disable it. This is * currently used in ARMv8M ports. *//* ... */#ifndefconfigENABLE_MVE#defineconfigENABLE_MVE0#endif/* Set configENABLE_TRUSTZONE to 1 enable TrustZone support and 0 to disable it. * This is currently used in ARMv8M ports. *//* ... */#ifndefconfigENABLE_TRUSTZONE#defineconfigENABLE_TRUSTZONE1#endif/* Set configRUN_FREERTOS_SECURE_ONLY to 1 to run the FreeRTOS ARMv8M port on * the Secure Side only. *//* ... */#ifndefconfigRUN_FREERTOS_SECURE_ONLY#defineconfigRUN_FREERTOS_SECURE_ONLY0#endif#ifndefconfigRUN_ADDITIONAL_TESTS#defineconfigRUN_ADDITIONAL_TESTS0#endif/* The following config allows infinite loop control. For example, control the * infinite loop in idle task function when performing unit tests. *//* ... */#ifndefconfigCONTROL_INFINITE_LOOP#defineconfigCONTROL_INFINITE_LOOP()#endif/* Sometimes the FreeRTOSConfig.h settings only allow a task to be created using * dynamically allocated RAM, in which case when any task is deleted it is known * that both the task's stack and TCB need to be freed. Sometimes the * FreeRTOSConfig.h settings only allow a task to be created using statically * allocated RAM, in which case when any task is deleted it is known that neither * the task's stack or TCB should be freed. Sometimes the FreeRTOSConfig.h * settings allow a task to be created using either statically or dynamically * allocated RAM, in which case a member of the TCB is used to record whether the * stack and/or TCB were allocated statically or dynamically, so when a task is * deleted the RAM that was allocated dynamically is freed again and no attempt is * made to free the RAM that was allocated statically. * tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is only true if it is possible for a * task to be created using either statically or dynamically allocated RAM. Note * that if portUSING_MPU_WRAPPERS is 1 then a protected task can be created with * a statically allocated stack and a dynamically allocated TCB. * * The following table lists various combinations of portUSING_MPU_WRAPPERS, * configSUPPORT_DYNAMIC_ALLOCATION and configSUPPORT_STATIC_ALLOCATION and * when it is possible to have both static and dynamic allocation: * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+ * | MPU | Dynamic | Static | Available Functions | Possible Allocations | Both Dynamic and | Need Free | * | | | | | | Static Possible | | * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+ * | 0 | 0 | 1 | xTaskCreateStatic | TCB - Static, Stack - Static | No | No | * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------| * | 0 | 1 | 0 | xTaskCreate | TCB - Dynamic, Stack - Dynamic | No | Yes | * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------| * | 0 | 1 | 1 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes | * | | | | xTaskCreateStatic | 2. TCB - Static, Stack - Static | | | * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------| * | 1 | 0 | 1 | xTaskCreateStatic, | TCB - Static, Stack - Static | No | No | * | | | | xTaskCreateRestrictedStatic | | | | * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------| * | 1 | 1 | 0 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes | * | | | | xTaskCreateRestricted | 2. TCB - Dynamic, Stack - Static | | | * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------| * | 1 | 1 | 1 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes | * | | | | xTaskCreateStatic, | 2. TCB - Dynamic, Stack - Static | | | * | | | | xTaskCreateRestricted, | 3. TCB - Static, Stack - Static | | | * | | | | xTaskCreateRestrictedStatic | | | | * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+ *//* ... */#definetskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE\(((portUSING_MPU_WRAPPERS==0)&&(configSUPPORT_DYNAMIC_ALLOCATION==1)&&(configSUPPORT_STATIC_ALLOCATION==1))||\((portUSING_MPU_WRAPPERS==1)&&(configSUPPORT_DYNAMIC_ALLOCATION==1))).../* * In line with software engineering best practice, FreeRTOS implements a strict * data hiding policy, so the real structures used by FreeRTOS to maintain the * state of tasks, queues, semaphores, etc. are not accessible to the application * code. However, if the application writer wants to statically allocate such * an object then the size of the object needs to be known. Dummy structures * that are guaranteed to have the same size and alignment requirements of the * real objects are used for this purpose. The dummy list and list item * structures below are used for inclusion in such a dummy structure. *//* ... */structxSTATIC_LIST_ITEM{#if(configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES==1)TickType_txDummy1;#endifTickType_txDummy2;void*pvDummy3[4];#if(configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES==1)TickType_txDummy4;#endif...};typedefstructxSTATIC_LIST_ITEMStaticListItem_t;#if(configUSE_MINI_LIST_ITEM==1)/* See the comments above the struct xSTATIC_LIST_ITEM definition. */structxSTATIC_MINI_LIST_ITEM{#if(configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES==1)TickType_txDummy1;#endifTickType_txDummy2;void*pvDummy3[2];...};typedefstructxSTATIC_MINI_LIST_ITEMStaticMiniListItem_t;/* ... */#else/* if ( configUSE_MINI_LIST_ITEM == 1 ) */typedefstructxSTATIC_LIST_ITEMStaticMiniListItem_t;#endif/* if ( configUSE_MINI_LIST_ITEM == 1 ) *//* See the comments above the struct xSTATIC_LIST_ITEM definition. */typedefstructxSTATIC_LIST{#if(configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES==1)TickType_txDummy1;#endifUBaseType_tuxDummy2;void*pvDummy3;StaticMiniListItem_txDummy4;#if(configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES==1)TickType_txDummy5;#endif...}StaticList_t;/* * In line with software engineering best practice, especially when supplying a * library that is likely to change in future versions, FreeRTOS implements a * strict data hiding policy. This means the Task structure used internally by * FreeRTOS is not accessible to application code. However, if the application * writer wants to statically allocate the memory required to create a task then * the size of the task object needs to be known. The StaticTask_t structure * below is provided for this purpose. Its sizes and alignment requirements are * guaranteed to match those of the genuine structure, no matter which * architecture is being used, and no matter how the values in FreeRTOSConfig.h * are set. Its contents are somewhat obfuscated in the hope users will * recognise that it would be unwise to make direct use of the structure members. *//* ... */typedefstructxSTATIC_TCB{void*pxDummy1;#if(portUSING_MPU_WRAPPERS==1)xMPU_SETTINGSxDummy2;#endif#if(configUSE_CORE_AFFINITY==1)&&(configNUMBER_OF_CORES>1)UBaseType_tuxDummy26;#endifStaticListItem_txDummy3[2];UBaseType_tuxDummy5;void*pxDummy6;#if(configNUMBER_OF_CORES>1)BaseType_txDummy23;UBaseType_tuxDummy24;/* ... */#endifuint8_tucDummy7[configMAX_TASK_NAME_LEN];#if(configUSE_TASK_PREEMPTION_DISABLE==1)BaseType_txDummy25;#endif#if((portSTACK_GROWTH>0)||(configRECORD_STACK_HIGH_ADDRESS==1))void*pxDummy8;#endif#if(portCRITICAL_NESTING_IN_TCB==1)UBaseType_tuxDummy9;#endif#if(configUSE_TRACE_FACILITY==1)UBaseType_tuxDummy10[2];#endif#if(configUSE_MUTEXES==1)UBaseType_tuxDummy12[2];#endif#if(configUSE_APPLICATION_TASK_TAG==1)void*pxDummy14;#endif#if(configNUM_THREAD_LOCAL_STORAGE_POINTERS>0)void*pvDummy15[configNUM_THREAD_LOCAL_STORAGE_POINTERS];#endif#if(configGENERATE_RUN_TIME_STATS==1)configRUN_TIME_COUNTER_TYPEulDummy16;#endif#if(configUSE_C_RUNTIME_TLS_SUPPORT==1)configTLS_BLOCK_TYPExDummy17;#endif#if(configUSE_TASK_NOTIFICATIONS==1)uint32_tulDummy18[configTASK_NOTIFICATION_ARRAY_ENTRIES];uint8_tucDummy19[configTASK_NOTIFICATION_ARRAY_ENTRIES];/* ... */#endif#if(tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE!=0)uint8_tuxDummy20;#endif#if(INCLUDE_xTaskAbortDelay==1)uint8_tucDummy21;#endif#if(configUSE_POSIX_ERRNO==1)intiDummy22;#endif...}StaticTask_t;/* * In line with software engineering best practice, especially when supplying a * library that is likely to change in future versions, FreeRTOS implements a * strict data hiding policy. This means the Queue structure used internally by * FreeRTOS is not accessible to application code. However, if the application * writer wants to statically allocate the memory required to create a queue * then the size of the queue object needs to be known. The StaticQueue_t * structure below is provided for this purpose. Its sizes and alignment * requirements are guaranteed to match those of the genuine structure, no * matter which architecture is being used, and no matter how the values in * FreeRTOSConfig.h are set. Its contents are somewhat obfuscated in the hope * users will recognise that it would be unwise to make direct use of the * structure members. *//* ... */typedefstructxSTATIC_QUEUE{void*pvDummy1[3];union{void*pvDummy2;UBaseType_tuxDummy2;...}u;StaticList_txDummy3[2];UBaseType_tuxDummy4[3];uint8_tucDummy5[2];#if((configSUPPORT_STATIC_ALLOCATION==1)&&(configSUPPORT_DYNAMIC_ALLOCATION==1))uint8_tucDummy6;#endif#if(configUSE_QUEUE_SETS==1)void*pvDummy7;#endif#if(configUSE_TRACE_FACILITY==1)UBaseType_tuxDummy8;uint8_tucDummy9;/* ... */#endif...}StaticQueue_t;typedefStaticQueue_tStaticSemaphore_t;/* * In line with software engineering best practice, especially when supplying a * library that is likely to change in future versions, FreeRTOS implements a * strict data hiding policy. This means the event group structure used * internally by FreeRTOS is not accessible to application code. However, if * the application writer wants to statically allocate the memory required to * create an event group then the size of the event group object needs to be * know. The StaticEventGroup_t structure below is provided for this purpose. * Its sizes and alignment requirements are guaranteed to match those of the * genuine structure, no matter which architecture is being used, and no matter * how the values in FreeRTOSConfig.h are set. Its contents are somewhat * obfuscated in the hope users will recognise that it would be unwise to make * direct use of the structure members. *//* ... */typedefstructxSTATIC_EVENT_GROUP{TickType_txDummy1;StaticList_txDummy2;#if(configUSE_TRACE_FACILITY==1)UBaseType_tuxDummy3;#endif#if((configSUPPORT_STATIC_ALLOCATION==1)&&(configSUPPORT_DYNAMIC_ALLOCATION==1))uint8_tucDummy4;#endif...}StaticEventGroup_t;/* * In line with software engineering best practice, especially when supplying a * library that is likely to change in future versions, FreeRTOS implements a * strict data hiding policy. This means the software timer structure used * internally by FreeRTOS is not accessible to application code. However, if * the application writer wants to statically allocate the memory required to * create a software timer then the size of the queue object needs to be known. * The StaticTimer_t structure below is provided for this purpose. Its sizes * and alignment requirements are guaranteed to match those of the genuine * structure, no matter which architecture is being used, and no matter how the * values in FreeRTOSConfig.h are set. Its contents are somewhat obfuscated in * the hope users will recognise that it would be unwise to make direct use of * the structure members. *//* ... */typedefstructxSTATIC_TIMER{void*pvDummy1;StaticListItem_txDummy2;TickType_txDummy3;void*pvDummy5;TaskFunction_tpvDummy6;#if(configUSE_TRACE_FACILITY==1)UBaseType_tuxDummy7;#endifuint8_tucDummy8;...}StaticTimer_t;/* * In line with software engineering best practice, especially when supplying a * library that is likely to change in future versions, FreeRTOS implements a * strict data hiding policy. This means the stream buffer structure used * internally by FreeRTOS is not accessible to application code. However, if * the application writer wants to statically allocate the memory required to * create a stream buffer then the size of the stream buffer object needs to be * known. The StaticStreamBuffer_t structure below is provided for this * purpose. Its size and alignment requirements are guaranteed to match those * of the genuine structure, no matter which architecture is being used, and * no matter how the values in FreeRTOSConfig.h are set. Its contents are * somewhat obfuscated in the hope users will recognise that it would be unwise * to make direct use of the structure members. *//* ... */typedefstructxSTATIC_STREAM_BUFFER{size_tuxDummy1[4];void*pvDummy2[3];uint8_tucDummy3;#if(configUSE_TRACE_FACILITY==1)UBaseType_tuxDummy4;#endif#if(configUSE_SB_COMPLETED_CALLBACK==1)void*pvDummy5[2];#endifUBaseType_tuxDummy6;...}StaticStreamBuffer_t;/* Message buffers are built on stream buffers. */typedefStaticStreamBuffer_tStaticMessageBuffer_t;/* *INDENT-OFF* */#ifdef__cplusplus}extern "C" { ... }#endif/* *INDENT-ON* *//* ... */#endif/* INC_FREERTOS_H */
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.