2 * FreeRTOS Kernel V11.2.0
3 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
5 * SPDX-License-Identifier: MIT
7 * Permission is hereby granted, free of charge, to any person obtaining a copy of
8 * this software and associated documentation files (the "Software"), to deal in
9 * the Software without restriction, including without limitation the rights to
10 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
11 * the Software, and to permit persons to whom the Software is furnished to do so,
12 * subject to the following conditions:
14 * The above copyright notice and this permission notice shall be included in all
15 * copies or substantial portions of the Software.
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
19 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
20 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
21 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 * https://www.FreeRTOS.org
25 * https://github.com/FreeRTOS
29 #ifndef INC_FREERTOS_H
30 #define INC_FREERTOS_H
33 * Include the generic headers required for the FreeRTOS port being used.
38 * If stdint.h cannot be located then:
39 * + If using GCC ensure the -nostdint options is *not* being used.
40 * + Ensure the project's include path includes the directory in which your
41 * compiler stores stdint.h.
42 * + Set any compiler options necessary for it to support C99, as technically
43 * stdint.h is only mandatory with C99 (FreeRTOS does not require C99 in any
45 * + The FreeRTOS download includes a simple stdint.h definition that can be
46 * used in cases where none is provided by the compiler. The files only
47 * contains the typedefs required to build FreeRTOS. Read the instructions
48 * in FreeRTOS/source/stdint.readme for more information.
50 #include <stdint.h> /* READ COMMENT ABOVE. */
52 /* Acceptable values for configTICK_TYPE_WIDTH_IN_BITS. */
53 #define TICK_TYPE_WIDTH_16_BITS 0
54 #define TICK_TYPE_WIDTH_32_BITS 1
55 #define TICK_TYPE_WIDTH_64_BITS 2
57 /* Application specific configuration options. */
58 #include "FreeRTOSConfig.h"
60 #if !defined( configUSE_16_BIT_TICKS ) && !defined( configTICK_TYPE_WIDTH_IN_BITS )
61 #error Missing definition: One of configUSE_16_BIT_TICKS and configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h. See the Configuration section of the FreeRTOS API documentation for details.
64 #if defined( configUSE_16_BIT_TICKS ) && defined( configTICK_TYPE_WIDTH_IN_BITS )
65 #error Only one of configUSE_16_BIT_TICKS and configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h. See the Configuration section of the FreeRTOS API documentation for details.
68 /* Define configTICK_TYPE_WIDTH_IN_BITS according to the
69 * value of configUSE_16_BIT_TICKS for backward compatibility. */
70 #ifndef configTICK_TYPE_WIDTH_IN_BITS
71 #if ( configUSE_16_BIT_TICKS == 1 )
72 #define configTICK_TYPE_WIDTH_IN_BITS TICK_TYPE_WIDTH_16_BITS
74 #define configTICK_TYPE_WIDTH_IN_BITS TICK_TYPE_WIDTH_32_BITS
78 /* Set configUSE_MPU_WRAPPERS_V1 to 1 to use MPU wrappers v1. */
79 #ifndef configUSE_MPU_WRAPPERS_V1
80 #define configUSE_MPU_WRAPPERS_V1 0
83 /* Set configENABLE_ACCESS_CONTROL_LIST to 1 to enable access control list support. */
84 #ifndef configENABLE_ACCESS_CONTROL_LIST
85 #define configENABLE_ACCESS_CONTROL_LIST 0
88 /* Set default value of configNUMBER_OF_CORES to 1 to use single core FreeRTOS. */
89 #ifndef configNUMBER_OF_CORES
90 #define configNUMBER_OF_CORES 1
93 #ifndef configUSE_MALLOC_FAILED_HOOK
94 #define configUSE_MALLOC_FAILED_HOOK 0
98 #define configASSERT( x )
99 #define configASSERT_DEFINED 0
101 #define configASSERT_DEFINED 1
104 /* Basic FreeRTOS definitions. */
105 #include "projdefs.h"
107 /* Definitions specific to the port being used. */
108 #include "portable.h"
110 /* Must be defaulted before configUSE_NEWLIB_REENTRANT is used below. */
111 #ifndef configUSE_NEWLIB_REENTRANT
112 #define configUSE_NEWLIB_REENTRANT 0
115 /* Required if struct _reent is used. */
116 #if ( configUSE_NEWLIB_REENTRANT == 1 )
118 #include "newlib-freertos.h"
120 #endif /* if ( configUSE_NEWLIB_REENTRANT == 1 ) */
122 /* Must be defaulted before configUSE_PICOLIBC_TLS is used below. */
123 #ifndef configUSE_PICOLIBC_TLS
124 #define configUSE_PICOLIBC_TLS 0
127 #if ( configUSE_PICOLIBC_TLS == 1 )
129 #include "picolibc-freertos.h"
131 #endif /* if ( configUSE_PICOLIBC_TLS == 1 ) */
139 #ifndef configUSE_C_RUNTIME_TLS_SUPPORT
140 #define configUSE_C_RUNTIME_TLS_SUPPORT 0
143 #if ( configUSE_C_RUNTIME_TLS_SUPPORT == 1 )
145 #ifndef configTLS_BLOCK_TYPE
146 #error Missing definition: configTLS_BLOCK_TYPE must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1.
149 #ifndef configINIT_TLS_BLOCK
150 #error Missing definition: configINIT_TLS_BLOCK must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1.
153 #ifndef configSET_TLS_BLOCK
154 #error Missing definition: configSET_TLS_BLOCK must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1.
157 #ifndef configDEINIT_TLS_BLOCK
158 #error Missing definition: configDEINIT_TLS_BLOCK must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1.
160 #endif /* if ( configUSE_C_RUNTIME_TLS_SUPPORT == 1 ) */
163 * Check all the required application specific macros have been defined.
164 * These macros are application specific and (as downloaded) are defined
165 * within FreeRTOSConfig.h.
168 #ifndef configMINIMAL_STACK_SIZE
169 #error Missing definition: configMINIMAL_STACK_SIZE must be defined in FreeRTOSConfig.h. configMINIMAL_STACK_SIZE defines the size (in words) of the stack allocated to the idle task. Refer to the demo project provided for your port for a suitable value.
172 #ifndef configMAX_PRIORITIES
173 #error Missing definition: configMAX_PRIORITIES must be defined in FreeRTOSConfig.h. See the Configuration section of the FreeRTOS API documentation for details.
176 #if configMAX_PRIORITIES < 1
177 #error configMAX_PRIORITIES must be defined to be greater than or equal to 1.
180 #ifndef configUSE_PREEMPTION
181 #error Missing definition: configUSE_PREEMPTION must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
184 #ifndef configUSE_IDLE_HOOK
185 #error Missing definition: configUSE_IDLE_HOOK must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
188 #if ( configNUMBER_OF_CORES > 1 )
189 #ifndef configUSE_PASSIVE_IDLE_HOOK
190 #error Missing definition: configUSE_PASSIVE_IDLE_HOOK must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
194 #ifndef configUSE_TICK_HOOK
195 #error Missing definition: configUSE_TICK_HOOK must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
198 #if ( ( configTICK_TYPE_WIDTH_IN_BITS != TICK_TYPE_WIDTH_16_BITS ) && \
199 ( configTICK_TYPE_WIDTH_IN_BITS != TICK_TYPE_WIDTH_32_BITS ) && \
200 ( configTICK_TYPE_WIDTH_IN_BITS != TICK_TYPE_WIDTH_64_BITS ) )
201 #error Macro configTICK_TYPE_WIDTH_IN_BITS is defined to incorrect value. See the Configuration section of the FreeRTOS API documentation for details.
204 #ifndef configUSE_CO_ROUTINES
205 #define configUSE_CO_ROUTINES 0
208 #ifndef INCLUDE_vTaskPrioritySet
209 #define INCLUDE_vTaskPrioritySet 0
212 #ifndef INCLUDE_uxTaskPriorityGet
213 #define INCLUDE_uxTaskPriorityGet 0
216 #ifndef INCLUDE_vTaskDelete
217 #define INCLUDE_vTaskDelete 0
220 #ifndef INCLUDE_vTaskSuspend
221 #define INCLUDE_vTaskSuspend 0
224 #ifdef INCLUDE_xTaskDelayUntil
225 #ifdef INCLUDE_vTaskDelayUntil
227 /* INCLUDE_vTaskDelayUntil was replaced by INCLUDE_xTaskDelayUntil. Backward
228 * compatibility is maintained if only one or the other is defined, but
229 * there is a conflict if both are defined. */
230 #error INCLUDE_vTaskDelayUntil and INCLUDE_xTaskDelayUntil are both defined. INCLUDE_vTaskDelayUntil is no longer required and should be removed
234 #ifndef INCLUDE_xTaskDelayUntil
235 #ifdef INCLUDE_vTaskDelayUntil
237 /* If INCLUDE_vTaskDelayUntil is set but INCLUDE_xTaskDelayUntil is not then
238 * the project's FreeRTOSConfig.h probably pre-dates the introduction of
239 * xTaskDelayUntil and setting INCLUDE_xTaskDelayUntil to whatever
240 * INCLUDE_vTaskDelayUntil is set to will ensure backward compatibility.
242 #define INCLUDE_xTaskDelayUntil INCLUDE_vTaskDelayUntil
246 #ifndef INCLUDE_xTaskDelayUntil
247 #define INCLUDE_xTaskDelayUntil 0
250 #ifndef INCLUDE_vTaskDelay
251 #define INCLUDE_vTaskDelay 0
254 #ifndef INCLUDE_xTaskGetIdleTaskHandle
255 #define INCLUDE_xTaskGetIdleTaskHandle 0
258 #ifndef INCLUDE_xTaskAbortDelay
259 #define INCLUDE_xTaskAbortDelay 0
262 #ifndef INCLUDE_xQueueGetMutexHolder
263 #define INCLUDE_xQueueGetMutexHolder 0
266 #ifndef INCLUDE_xSemaphoreGetMutexHolder
267 #define INCLUDE_xSemaphoreGetMutexHolder INCLUDE_xQueueGetMutexHolder
270 #ifndef INCLUDE_xTaskGetHandle
271 #define INCLUDE_xTaskGetHandle 0
274 #ifndef INCLUDE_uxTaskGetStackHighWaterMark
275 #define INCLUDE_uxTaskGetStackHighWaterMark 0
278 #ifndef INCLUDE_uxTaskGetStackHighWaterMark2
279 #define INCLUDE_uxTaskGetStackHighWaterMark2 0
282 #ifndef INCLUDE_eTaskGetState
283 #define INCLUDE_eTaskGetState 0
286 #ifndef INCLUDE_xTaskResumeFromISR
287 #define INCLUDE_xTaskResumeFromISR 1
290 #ifndef INCLUDE_xTimerPendFunctionCall
291 #define INCLUDE_xTimerPendFunctionCall 0
294 #ifndef INCLUDE_xTaskGetSchedulerState
295 #define INCLUDE_xTaskGetSchedulerState 0
298 #ifndef INCLUDE_xTaskGetCurrentTaskHandle
299 #define INCLUDE_xTaskGetCurrentTaskHandle 1
302 #if configUSE_CO_ROUTINES != 0
303 #ifndef configMAX_CO_ROUTINE_PRIORITIES
304 #error configMAX_CO_ROUTINE_PRIORITIES must be greater than or equal to 1.
308 #ifndef configUSE_APPLICATION_TASK_TAG
309 #define configUSE_APPLICATION_TASK_TAG 0
312 #ifndef configNUM_THREAD_LOCAL_STORAGE_POINTERS
313 #define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
316 #ifndef configUSE_RECURSIVE_MUTEXES
317 #define configUSE_RECURSIVE_MUTEXES 0
320 #ifndef configUSE_MUTEXES
321 #define configUSE_MUTEXES 0
324 #ifndef configUSE_TIMERS
325 #define configUSE_TIMERS 0
328 #ifndef configUSE_EVENT_GROUPS
329 #define configUSE_EVENT_GROUPS 1
332 #ifndef configUSE_STREAM_BUFFERS
333 #define configUSE_STREAM_BUFFERS 1
336 #ifndef configUSE_DAEMON_TASK_STARTUP_HOOK
337 #define configUSE_DAEMON_TASK_STARTUP_HOOK 0
340 #if ( configUSE_DAEMON_TASK_STARTUP_HOOK != 0 )
341 #if ( configUSE_TIMERS == 0 )
342 #error configUSE_DAEMON_TASK_STARTUP_HOOK is set, but the daemon task is not created because configUSE_TIMERS is 0.
346 #ifndef configUSE_COUNTING_SEMAPHORES
347 #define configUSE_COUNTING_SEMAPHORES 0
350 #ifndef configUSE_TASK_PREEMPTION_DISABLE
351 #define configUSE_TASK_PREEMPTION_DISABLE 0
354 #ifndef configUSE_ALTERNATIVE_API
355 #define configUSE_ALTERNATIVE_API 0
358 #ifndef portCRITICAL_NESTING_IN_TCB
359 #define portCRITICAL_NESTING_IN_TCB 0
362 #ifndef configMAX_TASK_NAME_LEN
363 #define configMAX_TASK_NAME_LEN 16
366 #ifndef configIDLE_SHOULD_YIELD
367 #define configIDLE_SHOULD_YIELD 1
370 #if configMAX_TASK_NAME_LEN < 1
371 #error configMAX_TASK_NAME_LEN must be set to a minimum of 1 in FreeRTOSConfig.h
374 /* configPRECONDITION should be defined as configASSERT.
375 * The CBMC proofs need a way to track assumptions and assertions.
376 * A configPRECONDITION statement should express an implicit invariant or
377 * assumption made. A configASSERT statement should express an invariant that must
378 * hold explicit before calling the code. */
379 #ifndef configPRECONDITION
380 #define configPRECONDITION( X ) configASSERT( X )
381 #define configPRECONDITION_DEFINED 0
383 #define configPRECONDITION_DEFINED 1
386 #ifndef configCHECK_HANDLER_INSTALLATION
387 #define configCHECK_HANDLER_INSTALLATION 1
390 /* The application has explicitly defined configCHECK_HANDLER_INSTALLATION
391 * to 1. The checks requires configASSERT() to be defined. */
392 #if ( ( configCHECK_HANDLER_INSTALLATION == 1 ) && ( configASSERT_DEFINED == 0 ) )
393 #error You must define configASSERT() when configCHECK_HANDLER_INSTALLATION is 1.
397 #ifndef portMEMORY_BARRIER
398 #define portMEMORY_BARRIER()
401 #ifndef portSOFTWARE_BARRIER
402 #define portSOFTWARE_BARRIER()
405 #ifndef configRUN_MULTIPLE_PRIORITIES
406 #define configRUN_MULTIPLE_PRIORITIES 0
409 #ifndef portGET_CORE_ID
411 #if ( configNUMBER_OF_CORES == 1 )
412 #define portGET_CORE_ID() 0
414 #error configNUMBER_OF_CORES is set to more than 1 then portGET_CORE_ID must also be defined.
415 #endif /* configNUMBER_OF_CORES */
417 #endif /* portGET_CORE_ID */
419 #ifndef portYIELD_CORE
421 #if ( configNUMBER_OF_CORES == 1 )
422 #define portYIELD_CORE( x ) portYIELD()
424 #error configNUMBER_OF_CORES is set to more than 1 then portYIELD_CORE must also be defined.
425 #endif /* configNUMBER_OF_CORES */
427 #endif /* portYIELD_CORE */
429 #ifndef portSET_INTERRUPT_MASK
431 #if ( configNUMBER_OF_CORES > 1 )
432 #error portSET_INTERRUPT_MASK is required in SMP
435 #endif /* portSET_INTERRUPT_MASK */
437 #ifndef portCLEAR_INTERRUPT_MASK
439 #if ( configNUMBER_OF_CORES > 1 )
440 #error portCLEAR_INTERRUPT_MASK is required in SMP
443 #endif /* portCLEAR_INTERRUPT_MASK */
445 #ifndef portRELEASE_TASK_LOCK
447 #if ( configNUMBER_OF_CORES == 1 )
448 #define portRELEASE_TASK_LOCK( xCoreID )
450 #error portRELEASE_TASK_LOCK is required in SMP
453 #endif /* portRELEASE_TASK_LOCK */
455 #ifndef portGET_TASK_LOCK
457 #if ( configNUMBER_OF_CORES == 1 )
458 #define portGET_TASK_LOCK( xCoreID )
460 #error portGET_TASK_LOCK is required in SMP
463 #endif /* portGET_TASK_LOCK */
465 #ifndef portRELEASE_ISR_LOCK
467 #if ( configNUMBER_OF_CORES == 1 )
468 #define portRELEASE_ISR_LOCK( xCoreID )
470 #error portRELEASE_ISR_LOCK is required in SMP
473 #endif /* portRELEASE_ISR_LOCK */
475 #ifndef portGET_ISR_LOCK
477 #if ( configNUMBER_OF_CORES == 1 )
478 #define portGET_ISR_LOCK( xCoreID )
480 #error portGET_ISR_LOCK is required in SMP
483 #endif /* portGET_ISR_LOCK */
485 #ifndef portENTER_CRITICAL_FROM_ISR
487 #if ( configNUMBER_OF_CORES > 1 )
488 #error portENTER_CRITICAL_FROM_ISR is required in SMP
493 #ifndef portEXIT_CRITICAL_FROM_ISR
495 #if ( configNUMBER_OF_CORES > 1 )
496 #error portEXIT_CRITICAL_FROM_ISR is required in SMP
501 #ifndef configUSE_CORE_AFFINITY
502 #define configUSE_CORE_AFFINITY 0
503 #endif /* configUSE_CORE_AFFINITY */
505 #if ( ( configNUMBER_OF_CORES > 1 ) && ( configUSE_CORE_AFFINITY == 1 ) )
506 #ifndef configTASK_DEFAULT_CORE_AFFINITY
507 #define configTASK_DEFAULT_CORE_AFFINITY tskNO_AFFINITY
511 #ifndef configUSE_PASSIVE_IDLE_HOOK
512 #define configUSE_PASSIVE_IDLE_HOOK 0
513 #endif /* configUSE_PASSIVE_IDLE_HOOK */
515 /* The timers module relies on xTaskGetSchedulerState(). */
516 #if configUSE_TIMERS == 1
518 #ifndef configTIMER_TASK_PRIORITY
519 #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_PRIORITY must also be defined.
520 #endif /* configTIMER_TASK_PRIORITY */
522 #ifndef configTIMER_QUEUE_LENGTH
523 #error If configUSE_TIMERS is set to 1 then configTIMER_QUEUE_LENGTH must also be defined.
524 #endif /* configTIMER_QUEUE_LENGTH */
526 #ifndef configTIMER_TASK_STACK_DEPTH
527 #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_STACK_DEPTH must also be defined.
528 #endif /* configTIMER_TASK_STACK_DEPTH */
530 #ifndef portTIMER_CALLBACK_ATTRIBUTE
531 #define portTIMER_CALLBACK_ATTRIBUTE
532 #endif /* portTIMER_CALLBACK_ATTRIBUTE */
534 #endif /* configUSE_TIMERS */
536 #ifndef portHAS_NESTED_INTERRUPTS
537 #if defined( portSET_INTERRUPT_MASK_FROM_ISR ) && defined( portCLEAR_INTERRUPT_MASK_FROM_ISR )
538 #define portHAS_NESTED_INTERRUPTS 1
540 #define portHAS_NESTED_INTERRUPTS 0
544 #ifndef portSET_INTERRUPT_MASK_FROM_ISR
545 #if ( portHAS_NESTED_INTERRUPTS == 1 )
546 #error portSET_INTERRUPT_MASK_FROM_ISR must be defined for ports that support nested interrupts (i.e. portHAS_NESTED_INTERRUPTS is set to 1)
548 #define portSET_INTERRUPT_MASK_FROM_ISR() 0
551 #if ( portHAS_NESTED_INTERRUPTS == 0 )
552 #error portSET_INTERRUPT_MASK_FROM_ISR must not be defined for ports that do not support nested interrupts (i.e. portHAS_NESTED_INTERRUPTS is set to 0)
556 #ifndef portCLEAR_INTERRUPT_MASK_FROM_ISR
557 #if ( portHAS_NESTED_INTERRUPTS == 1 )
558 #error portCLEAR_INTERRUPT_MASK_FROM_ISR must be defined for ports that support nested interrupts (i.e. portHAS_NESTED_INTERRUPTS is set to 1)
560 #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue ) ( void ) ( uxSavedStatusValue )
563 #if ( portHAS_NESTED_INTERRUPTS == 0 )
564 #error portCLEAR_INTERRUPT_MASK_FROM_ISR must not be defined for ports that do not support nested interrupts (i.e. portHAS_NESTED_INTERRUPTS is set to 0)
568 #ifndef portCLEAN_UP_TCB
569 #define portCLEAN_UP_TCB( pxTCB ) ( void ) ( pxTCB )
572 #ifndef portPRE_TASK_DELETE_HOOK
573 #define portPRE_TASK_DELETE_HOOK( pvTaskToDelete, pxYieldPending )
576 #ifndef portSETUP_TCB
577 #define portSETUP_TCB( pxTCB ) ( void ) ( pxTCB )
580 #ifndef portTASK_SWITCH_HOOK
581 #define portTASK_SWITCH_HOOK( pxTCB ) ( void ) ( pxTCB )
584 #ifndef configQUEUE_REGISTRY_SIZE
585 #define configQUEUE_REGISTRY_SIZE 0U
588 #if ( configQUEUE_REGISTRY_SIZE < 1 )
589 #define vQueueAddToRegistry( xQueue, pcName )
590 #define vQueueUnregisterQueue( xQueue )
591 #define pcQueueGetName( xQueue )
594 #ifndef configUSE_MINI_LIST_ITEM
595 #define configUSE_MINI_LIST_ITEM 1
598 #ifndef portPOINTER_SIZE_TYPE
599 #define portPOINTER_SIZE_TYPE uint32_t
602 /* Remove any unused trace macros. */
605 /* Used to perform any necessary initialisation - for example, open a file
606 * into which trace is to be written. */
612 /* Use to close a trace, for example close a file into which trace has been
617 #ifndef traceTASK_SWITCHED_IN
619 /* Called after a task has been selected to run. pxCurrentTCB holds a pointer
620 * to the task control block of the selected task. */
621 #define traceTASK_SWITCHED_IN()
624 #ifndef traceSTARTING_SCHEDULER
626 /* Called after all idle tasks and timer task (if enabled) have been created
627 * successfully, just before the scheduler is started. */
628 #define traceSTARTING_SCHEDULER( xIdleTaskHandles )
631 #ifndef traceINCREASE_TICK_COUNT
633 /* Called before stepping the tick count after waking from tickless idle
635 #define traceINCREASE_TICK_COUNT( x )
638 #ifndef traceLOW_POWER_IDLE_BEGIN
639 /* Called immediately before entering tickless idle. */
640 #define traceLOW_POWER_IDLE_BEGIN()
643 #ifndef traceLOW_POWER_IDLE_END
644 /* Called when returning to the Idle task after a tickless idle. */
645 #define traceLOW_POWER_IDLE_END()
648 #ifndef traceTASK_SWITCHED_OUT
650 /* Called before a task has been selected to run. pxCurrentTCB holds a pointer
651 * to the task control block of the task being switched out. */
652 #define traceTASK_SWITCHED_OUT()
655 #ifndef traceTASK_PRIORITY_INHERIT
657 /* Called when a task attempts to take a mutex that is already held by a
658 * lower priority task. pxTCBOfMutexHolder is a pointer to the TCB of the task
659 * that holds the mutex. uxInheritedPriority is the priority the mutex holder
660 * will inherit (the priority of the task that is attempting to obtain the
662 #define traceTASK_PRIORITY_INHERIT( pxTCBOfMutexHolder, uxInheritedPriority )
665 #ifndef traceTASK_PRIORITY_DISINHERIT
667 /* Called when a task releases a mutex, the holding of which had resulted in
668 * the task inheriting the priority of a higher priority task.
669 * pxTCBOfMutexHolder is a pointer to the TCB of the task that is releasing the
670 * mutex. uxOriginalPriority is the task's configured (base) priority. */
671 #define traceTASK_PRIORITY_DISINHERIT( pxTCBOfMutexHolder, uxOriginalPriority )
674 #ifndef traceBLOCKING_ON_QUEUE_RECEIVE
676 /* Task is about to block because it cannot read from a
677 * queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore
678 * upon which the read was attempted. pxCurrentTCB points to the TCB of the
679 * task that attempted the read. */
680 #define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue )
683 #ifndef traceBLOCKING_ON_QUEUE_PEEK
685 /* Task is about to block because it cannot read from a
686 * queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore
687 * upon which the read was attempted. pxCurrentTCB points to the TCB of the
688 * task that attempted the read. */
689 #define traceBLOCKING_ON_QUEUE_PEEK( pxQueue )
692 #ifndef traceBLOCKING_ON_QUEUE_SEND
694 /* Task is about to block because it cannot write to a
695 * queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore
696 * upon which the write was attempted. pxCurrentTCB points to the TCB of the
697 * task that attempted the write. */
698 #define traceBLOCKING_ON_QUEUE_SEND( pxQueue )
701 #ifndef configCHECK_FOR_STACK_OVERFLOW
702 #define configCHECK_FOR_STACK_OVERFLOW 0
705 #ifndef configRECORD_STACK_HIGH_ADDRESS
706 #define configRECORD_STACK_HIGH_ADDRESS 0
709 #ifndef configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H
710 #define configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H 0
713 /* The following event macros are embedded in the kernel API calls. */
715 #ifndef traceMOVED_TASK_TO_READY_STATE
716 #define traceMOVED_TASK_TO_READY_STATE( pxTCB )
719 #ifndef tracePOST_MOVED_TASK_TO_READY_STATE
720 #define tracePOST_MOVED_TASK_TO_READY_STATE( pxTCB )
723 #ifndef traceMOVED_TASK_TO_DELAYED_LIST
724 #define traceMOVED_TASK_TO_DELAYED_LIST()
727 #ifndef traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST
728 #define traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST()
731 #ifndef traceQUEUE_CREATE
732 #define traceQUEUE_CREATE( pxNewQueue )
735 #ifndef traceQUEUE_CREATE_FAILED
736 #define traceQUEUE_CREATE_FAILED( ucQueueType )
739 #ifndef traceCREATE_MUTEX
740 #define traceCREATE_MUTEX( pxNewQueue )
743 #ifndef traceCREATE_MUTEX_FAILED
744 #define traceCREATE_MUTEX_FAILED()
747 #ifndef traceGIVE_MUTEX_RECURSIVE
748 #define traceGIVE_MUTEX_RECURSIVE( pxMutex )
751 #ifndef traceGIVE_MUTEX_RECURSIVE_FAILED
752 #define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex )
755 #ifndef traceTAKE_MUTEX_RECURSIVE
756 #define traceTAKE_MUTEX_RECURSIVE( pxMutex )
759 #ifndef traceTAKE_MUTEX_RECURSIVE_FAILED
760 #define traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex )
763 #ifndef traceCREATE_COUNTING_SEMAPHORE
764 #define traceCREATE_COUNTING_SEMAPHORE()
767 #ifndef traceCREATE_COUNTING_SEMAPHORE_FAILED
768 #define traceCREATE_COUNTING_SEMAPHORE_FAILED()
771 #ifndef traceQUEUE_SET_SEND
772 #define traceQUEUE_SET_SEND traceQUEUE_SEND
775 #ifndef traceQUEUE_SEND
776 #define traceQUEUE_SEND( pxQueue )
779 #ifndef traceQUEUE_SEND_FAILED
780 #define traceQUEUE_SEND_FAILED( pxQueue )
783 #ifndef traceQUEUE_RECEIVE
784 #define traceQUEUE_RECEIVE( pxQueue )
787 #ifndef traceQUEUE_PEEK
788 #define traceQUEUE_PEEK( pxQueue )
791 #ifndef traceQUEUE_PEEK_FAILED
792 #define traceQUEUE_PEEK_FAILED( pxQueue )
795 #ifndef traceQUEUE_PEEK_FROM_ISR
796 #define traceQUEUE_PEEK_FROM_ISR( pxQueue )
799 #ifndef traceQUEUE_RECEIVE_FAILED
800 #define traceQUEUE_RECEIVE_FAILED( pxQueue )
803 #ifndef traceQUEUE_SEND_FROM_ISR
804 #define traceQUEUE_SEND_FROM_ISR( pxQueue )
807 #ifndef traceQUEUE_SEND_FROM_ISR_FAILED
808 #define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue )
811 #ifndef traceQUEUE_RECEIVE_FROM_ISR
812 #define traceQUEUE_RECEIVE_FROM_ISR( pxQueue )
815 #ifndef traceQUEUE_RECEIVE_FROM_ISR_FAILED
816 #define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue )
819 #ifndef traceQUEUE_PEEK_FROM_ISR_FAILED
820 #define traceQUEUE_PEEK_FROM_ISR_FAILED( pxQueue )
823 #ifndef traceQUEUE_DELETE
824 #define traceQUEUE_DELETE( pxQueue )
827 #ifndef traceTASK_CREATE
828 #define traceTASK_CREATE( pxNewTCB )
831 #ifndef traceTASK_CREATE_FAILED
832 #define traceTASK_CREATE_FAILED()
835 #ifndef traceTASK_DELETE
836 #define traceTASK_DELETE( pxTaskToDelete )
839 #ifndef traceTASK_DELAY_UNTIL
840 #define traceTASK_DELAY_UNTIL( x )
843 #ifndef traceTASK_DELAY
844 #define traceTASK_DELAY()
847 #ifndef traceTASK_PRIORITY_SET
848 #define traceTASK_PRIORITY_SET( pxTask, uxNewPriority )
851 #ifndef traceTASK_SUSPEND
852 #define traceTASK_SUSPEND( pxTaskToSuspend )
855 #ifndef traceTASK_RESUME
856 #define traceTASK_RESUME( pxTaskToResume )
859 #ifndef traceTASK_RESUME_FROM_ISR
860 #define traceTASK_RESUME_FROM_ISR( pxTaskToResume )
863 #ifndef traceTASK_INCREMENT_TICK
864 #define traceTASK_INCREMENT_TICK( xTickCount )
867 #ifndef traceTIMER_CREATE
868 #define traceTIMER_CREATE( pxNewTimer )
871 #ifndef traceTIMER_CREATE_FAILED
872 #define traceTIMER_CREATE_FAILED()
875 #ifndef traceTIMER_COMMAND_SEND
876 #define traceTIMER_COMMAND_SEND( xTimer, xMessageID, xMessageValueValue, xReturn )
879 #ifndef traceTIMER_EXPIRED
880 #define traceTIMER_EXPIRED( pxTimer )
883 #ifndef traceTIMER_COMMAND_RECEIVED
884 #define traceTIMER_COMMAND_RECEIVED( pxTimer, xMessageID, xMessageValue )
888 #define traceMALLOC( pvAddress, uiSize )
892 #define traceFREE( pvAddress, uiSize )
895 #ifndef traceEVENT_GROUP_CREATE
896 #define traceEVENT_GROUP_CREATE( xEventGroup )
899 #ifndef traceEVENT_GROUP_CREATE_FAILED
900 #define traceEVENT_GROUP_CREATE_FAILED()
903 #ifndef traceEVENT_GROUP_SYNC_BLOCK
904 #define traceEVENT_GROUP_SYNC_BLOCK( xEventGroup, uxBitsToSet, uxBitsToWaitFor )
907 #ifndef traceEVENT_GROUP_SYNC_END
908 #define traceEVENT_GROUP_SYNC_END( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) ( xTimeoutOccurred )
911 #ifndef traceEVENT_GROUP_WAIT_BITS_BLOCK
912 #define traceEVENT_GROUP_WAIT_BITS_BLOCK( xEventGroup, uxBitsToWaitFor )
915 #ifndef traceEVENT_GROUP_WAIT_BITS_END
916 #define traceEVENT_GROUP_WAIT_BITS_END( xEventGroup, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) ( xTimeoutOccurred )
919 #ifndef traceEVENT_GROUP_CLEAR_BITS
920 #define traceEVENT_GROUP_CLEAR_BITS( xEventGroup, uxBitsToClear )
923 #ifndef traceEVENT_GROUP_CLEAR_BITS_FROM_ISR
924 #define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR( xEventGroup, uxBitsToClear )
927 #ifndef traceEVENT_GROUP_SET_BITS
928 #define traceEVENT_GROUP_SET_BITS( xEventGroup, uxBitsToSet )
931 #ifndef traceEVENT_GROUP_SET_BITS_FROM_ISR
932 #define traceEVENT_GROUP_SET_BITS_FROM_ISR( xEventGroup, uxBitsToSet )
935 #ifndef traceEVENT_GROUP_DELETE
936 #define traceEVENT_GROUP_DELETE( xEventGroup )
939 #ifndef tracePEND_FUNC_CALL
940 #define tracePEND_FUNC_CALL( xFunctionToPend, pvParameter1, ulParameter2, ret )
943 #ifndef tracePEND_FUNC_CALL_FROM_ISR
944 #define tracePEND_FUNC_CALL_FROM_ISR( xFunctionToPend, pvParameter1, ulParameter2, ret )
947 #ifndef traceQUEUE_REGISTRY_ADD
948 #define traceQUEUE_REGISTRY_ADD( xQueue, pcQueueName )
951 #ifndef traceTASK_NOTIFY_TAKE_BLOCK
952 #define traceTASK_NOTIFY_TAKE_BLOCK( uxIndexToWait )
955 #ifndef traceTASK_NOTIFY_TAKE
956 #define traceTASK_NOTIFY_TAKE( uxIndexToWait )
959 #ifndef traceTASK_NOTIFY_WAIT_BLOCK
960 #define traceTASK_NOTIFY_WAIT_BLOCK( uxIndexToWait )
963 #ifndef traceTASK_NOTIFY_WAIT
964 #define traceTASK_NOTIFY_WAIT( uxIndexToWait )
967 #ifndef traceTASK_NOTIFY
968 #define traceTASK_NOTIFY( uxIndexToNotify )
971 #ifndef traceTASK_NOTIFY_FROM_ISR
972 #define traceTASK_NOTIFY_FROM_ISR( uxIndexToNotify )
975 #ifndef traceTASK_NOTIFY_GIVE_FROM_ISR
976 #define traceTASK_NOTIFY_GIVE_FROM_ISR( uxIndexToNotify )
979 #ifndef traceISR_EXIT_TO_SCHEDULER
980 #define traceISR_EXIT_TO_SCHEDULER()
983 #ifndef traceISR_EXIT
984 #define traceISR_EXIT()
987 #ifndef traceISR_ENTER
988 #define traceISR_ENTER()
991 #ifndef traceSTREAM_BUFFER_CREATE_FAILED
992 #define traceSTREAM_BUFFER_CREATE_FAILED( xStreamBufferType )
995 #ifndef traceSTREAM_BUFFER_CREATE_STATIC_FAILED
996 #define traceSTREAM_BUFFER_CREATE_STATIC_FAILED( xReturn, xStreamBufferType )
999 #ifndef traceSTREAM_BUFFER_CREATE
1000 #define traceSTREAM_BUFFER_CREATE( pxStreamBuffer, xStreamBufferType )
1003 #ifndef traceSTREAM_BUFFER_DELETE
1004 #define traceSTREAM_BUFFER_DELETE( xStreamBuffer )
1007 #ifndef traceSTREAM_BUFFER_RESET
1008 #define traceSTREAM_BUFFER_RESET( xStreamBuffer )
1011 #ifndef traceSTREAM_BUFFER_RESET_FROM_ISR
1012 #define traceSTREAM_BUFFER_RESET_FROM_ISR( xStreamBuffer )
1015 #ifndef traceBLOCKING_ON_STREAM_BUFFER_SEND
1016 #define traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer )
1019 #ifndef traceSTREAM_BUFFER_SEND
1020 #define traceSTREAM_BUFFER_SEND( xStreamBuffer, xBytesSent )
1023 #ifndef traceSTREAM_BUFFER_SEND_FAILED
1024 #define traceSTREAM_BUFFER_SEND_FAILED( xStreamBuffer )
1027 #ifndef traceSTREAM_BUFFER_SEND_FROM_ISR
1028 #define traceSTREAM_BUFFER_SEND_FROM_ISR( xStreamBuffer, xBytesSent )
1031 #ifndef traceBLOCKING_ON_STREAM_BUFFER_RECEIVE
1032 #define traceBLOCKING_ON_STREAM_BUFFER_RECEIVE( xStreamBuffer )
1035 #ifndef traceSTREAM_BUFFER_RECEIVE
1036 #define traceSTREAM_BUFFER_RECEIVE( xStreamBuffer, xReceivedLength )
1039 #ifndef traceSTREAM_BUFFER_RECEIVE_FAILED
1040 #define traceSTREAM_BUFFER_RECEIVE_FAILED( xStreamBuffer )
1043 #ifndef traceSTREAM_BUFFER_RECEIVE_FROM_ISR
1044 #define traceSTREAM_BUFFER_RECEIVE_FROM_ISR( xStreamBuffer, xReceivedLength )
1047 #ifndef traceENTER_xEventGroupCreateStatic
1048 #define traceENTER_xEventGroupCreateStatic( pxEventGroupBuffer )
1051 #ifndef traceRETURN_xEventGroupCreateStatic
1052 #define traceRETURN_xEventGroupCreateStatic( pxEventBits )
1055 #ifndef traceENTER_xEventGroupCreate
1056 #define traceENTER_xEventGroupCreate()
1059 #ifndef traceRETURN_xEventGroupCreate
1060 #define traceRETURN_xEventGroupCreate( pxEventBits )
1063 #ifndef traceENTER_xEventGroupSync
1064 #define traceENTER_xEventGroupSync( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTicksToWait )
1067 #ifndef traceRETURN_xEventGroupSync
1068 #define traceRETURN_xEventGroupSync( uxReturn )
1071 #ifndef traceENTER_xEventGroupWaitBits
1072 #define traceENTER_xEventGroupWaitBits( xEventGroup, uxBitsToWaitFor, xClearOnExit, xWaitForAllBits, xTicksToWait )
1075 #ifndef traceRETURN_xEventGroupWaitBits
1076 #define traceRETURN_xEventGroupWaitBits( uxReturn )
1079 #ifndef traceENTER_xEventGroupClearBits
1080 #define traceENTER_xEventGroupClearBits( xEventGroup, uxBitsToClear )
1083 #ifndef traceRETURN_xEventGroupClearBits
1084 #define traceRETURN_xEventGroupClearBits( uxReturn )
1087 #ifndef traceENTER_xEventGroupClearBitsFromISR
1088 #define traceENTER_xEventGroupClearBitsFromISR( xEventGroup, uxBitsToClear )
1091 #ifndef traceRETURN_xEventGroupClearBitsFromISR
1092 #define traceRETURN_xEventGroupClearBitsFromISR( xReturn )
1095 #ifndef traceENTER_xEventGroupGetBitsFromISR
1096 #define traceENTER_xEventGroupGetBitsFromISR( xEventGroup )
1099 #ifndef traceRETURN_xEventGroupGetBitsFromISR
1100 #define traceRETURN_xEventGroupGetBitsFromISR( uxReturn )
1103 #ifndef traceENTER_xEventGroupSetBits
1104 #define traceENTER_xEventGroupSetBits( xEventGroup, uxBitsToSet )
1107 #ifndef traceRETURN_xEventGroupSetBits
1108 #define traceRETURN_xEventGroupSetBits( uxEventBits )
1111 #ifndef traceENTER_vEventGroupDelete
1112 #define traceENTER_vEventGroupDelete( xEventGroup )
1115 #ifndef traceRETURN_vEventGroupDelete
1116 #define traceRETURN_vEventGroupDelete()
1119 #ifndef traceENTER_xEventGroupGetStaticBuffer
1120 #define traceENTER_xEventGroupGetStaticBuffer( xEventGroup, ppxEventGroupBuffer )
1123 #ifndef traceRETURN_xEventGroupGetStaticBuffer
1124 #define traceRETURN_xEventGroupGetStaticBuffer( xReturn )
1127 #ifndef traceENTER_vEventGroupSetBitsCallback
1128 #define traceENTER_vEventGroupSetBitsCallback( pvEventGroup, ulBitsToSet )
1131 #ifndef traceRETURN_vEventGroupSetBitsCallback
1132 #define traceRETURN_vEventGroupSetBitsCallback()
1135 #ifndef traceENTER_vEventGroupClearBitsCallback
1136 #define traceENTER_vEventGroupClearBitsCallback( pvEventGroup, ulBitsToClear )
1139 #ifndef traceRETURN_vEventGroupClearBitsCallback
1140 #define traceRETURN_vEventGroupClearBitsCallback()
1143 #ifndef traceENTER_xEventGroupSetBitsFromISR
1144 #define traceENTER_xEventGroupSetBitsFromISR( xEventGroup, uxBitsToSet, pxHigherPriorityTaskWoken )
1147 #ifndef traceRETURN_xEventGroupSetBitsFromISR
1148 #define traceRETURN_xEventGroupSetBitsFromISR( xReturn )
1151 #ifndef traceENTER_uxEventGroupGetNumber
1152 #define traceENTER_uxEventGroupGetNumber( xEventGroup )
1155 #ifndef traceRETURN_uxEventGroupGetNumber
1156 #define traceRETURN_uxEventGroupGetNumber( xReturn )
1159 #ifndef traceENTER_vEventGroupSetNumber
1160 #define traceENTER_vEventGroupSetNumber( xEventGroup, uxEventGroupNumber )
1163 #ifndef traceRETURN_vEventGroupSetNumber
1164 #define traceRETURN_vEventGroupSetNumber()
1167 #ifndef traceENTER_xQueueGenericReset
1168 #define traceENTER_xQueueGenericReset( xQueue, xNewQueue )
1171 #ifndef traceRETURN_xQueueGenericReset
1172 #define traceRETURN_xQueueGenericReset( xReturn )
1175 #ifndef traceENTER_xQueueGenericCreateStatic
1176 #define traceENTER_xQueueGenericCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxStaticQueue, ucQueueType )
1179 #ifndef traceRETURN_xQueueGenericCreateStatic
1180 #define traceRETURN_xQueueGenericCreateStatic( pxNewQueue )
1183 #ifndef traceENTER_xQueueGenericGetStaticBuffers
1184 #define traceENTER_xQueueGenericGetStaticBuffers( xQueue, ppucQueueStorage, ppxStaticQueue )
1187 #ifndef traceRETURN_xQueueGenericGetStaticBuffers
1188 #define traceRETURN_xQueueGenericGetStaticBuffers( xReturn )
1191 #ifndef traceENTER_xQueueGenericCreate
1192 #define traceENTER_xQueueGenericCreate( uxQueueLength, uxItemSize, ucQueueType )
1195 #ifndef traceRETURN_xQueueGenericCreate
1196 #define traceRETURN_xQueueGenericCreate( pxNewQueue )
1199 #ifndef traceENTER_xQueueCreateMutex
1200 #define traceENTER_xQueueCreateMutex( ucQueueType )
1203 #ifndef traceRETURN_xQueueCreateMutex
1204 #define traceRETURN_xQueueCreateMutex( xNewQueue )
1207 #ifndef traceENTER_xQueueCreateMutexStatic
1208 #define traceENTER_xQueueCreateMutexStatic( ucQueueType, pxStaticQueue )
1211 #ifndef traceRETURN_xQueueCreateMutexStatic
1212 #define traceRETURN_xQueueCreateMutexStatic( xNewQueue )
1215 #ifndef traceENTER_xQueueGetMutexHolder
1216 #define traceENTER_xQueueGetMutexHolder( xSemaphore )
1219 #ifndef traceRETURN_xQueueGetMutexHolder
1220 #define traceRETURN_xQueueGetMutexHolder( pxReturn )
1223 #ifndef traceENTER_xQueueGetMutexHolderFromISR
1224 #define traceENTER_xQueueGetMutexHolderFromISR( xSemaphore )
1227 #ifndef traceRETURN_xQueueGetMutexHolderFromISR
1228 #define traceRETURN_xQueueGetMutexHolderFromISR( pxReturn )
1231 #ifndef traceENTER_xQueueGiveMutexRecursive
1232 #define traceENTER_xQueueGiveMutexRecursive( xMutex )
1235 #ifndef traceRETURN_xQueueGiveMutexRecursive
1236 #define traceRETURN_xQueueGiveMutexRecursive( xReturn )
1239 #ifndef traceENTER_xQueueTakeMutexRecursive
1240 #define traceENTER_xQueueTakeMutexRecursive( xMutex, xTicksToWait )
1243 #ifndef traceRETURN_xQueueTakeMutexRecursive
1244 #define traceRETURN_xQueueTakeMutexRecursive( xReturn )
1247 #ifndef traceENTER_xQueueCreateCountingSemaphoreStatic
1248 #define traceENTER_xQueueCreateCountingSemaphoreStatic( uxMaxCount, uxInitialCount, pxStaticQueue )
1251 #ifndef traceRETURN_xQueueCreateCountingSemaphoreStatic
1252 #define traceRETURN_xQueueCreateCountingSemaphoreStatic( xHandle )
1255 #ifndef traceENTER_xQueueCreateCountingSemaphore
1256 #define traceENTER_xQueueCreateCountingSemaphore( uxMaxCount, uxInitialCount )
1259 #ifndef traceRETURN_xQueueCreateCountingSemaphore
1260 #define traceRETURN_xQueueCreateCountingSemaphore( xHandle )
1263 #ifndef traceENTER_xQueueGenericSend
1264 #define traceENTER_xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, xCopyPosition )
1267 #ifndef traceRETURN_xQueueGenericSend
1268 #define traceRETURN_xQueueGenericSend( xReturn )
1271 #ifndef traceENTER_xQueueGenericSendFromISR
1272 #define traceENTER_xQueueGenericSendFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken, xCopyPosition )
1275 #ifndef traceRETURN_xQueueGenericSendFromISR
1276 #define traceRETURN_xQueueGenericSendFromISR( xReturn )
1279 #ifndef traceENTER_xQueueGiveFromISR
1280 #define traceENTER_xQueueGiveFromISR( xQueue, pxHigherPriorityTaskWoken )
1283 #ifndef traceRETURN_xQueueGiveFromISR
1284 #define traceRETURN_xQueueGiveFromISR( xReturn )
1287 #ifndef traceENTER_xQueueReceive
1288 #define traceENTER_xQueueReceive( xQueue, pvBuffer, xTicksToWait )
1291 #ifndef traceRETURN_xQueueReceive
1292 #define traceRETURN_xQueueReceive( xReturn )
1295 #ifndef traceENTER_xQueueSemaphoreTake
1296 #define traceENTER_xQueueSemaphoreTake( xQueue, xTicksToWait )
1299 #ifndef traceRETURN_xQueueSemaphoreTake
1300 #define traceRETURN_xQueueSemaphoreTake( xReturn )
1303 #ifndef traceENTER_xQueuePeek
1304 #define traceENTER_xQueuePeek( xQueue, pvBuffer, xTicksToWait )
1307 #ifndef traceRETURN_xQueuePeek
1308 #define traceRETURN_xQueuePeek( xReturn )
1311 #ifndef traceENTER_xQueueReceiveFromISR
1312 #define traceENTER_xQueueReceiveFromISR( xQueue, pvBuffer, pxHigherPriorityTaskWoken )
1315 #ifndef traceRETURN_xQueueReceiveFromISR
1316 #define traceRETURN_xQueueReceiveFromISR( xReturn )
1319 #ifndef traceENTER_xQueuePeekFromISR
1320 #define traceENTER_xQueuePeekFromISR( xQueue, pvBuffer )
1323 #ifndef traceRETURN_xQueuePeekFromISR
1324 #define traceRETURN_xQueuePeekFromISR( xReturn )
1327 #ifndef traceENTER_uxQueueMessagesWaiting
1328 #define traceENTER_uxQueueMessagesWaiting( xQueue )
1331 #ifndef traceRETURN_uxQueueMessagesWaiting
1332 #define traceRETURN_uxQueueMessagesWaiting( uxReturn )
1335 #ifndef traceENTER_uxQueueSpacesAvailable
1336 #define traceENTER_uxQueueSpacesAvailable( xQueue )
1339 #ifndef traceRETURN_uxQueueSpacesAvailable
1340 #define traceRETURN_uxQueueSpacesAvailable( uxReturn )
1343 #ifndef traceENTER_uxQueueMessagesWaitingFromISR
1344 #define traceENTER_uxQueueMessagesWaitingFromISR( xQueue )
1347 #ifndef traceRETURN_uxQueueMessagesWaitingFromISR
1348 #define traceRETURN_uxQueueMessagesWaitingFromISR( uxReturn )
1351 #ifndef traceENTER_vQueueDelete
1352 #define traceENTER_vQueueDelete( xQueue )
1355 #ifndef traceRETURN_vQueueDelete
1356 #define traceRETURN_vQueueDelete()
1359 #ifndef traceENTER_uxQueueGetQueueNumber
1360 #define traceENTER_uxQueueGetQueueNumber( xQueue )
1363 #ifndef traceRETURN_uxQueueGetQueueNumber
1364 #define traceRETURN_uxQueueGetQueueNumber( uxQueueNumber )
1367 #ifndef traceENTER_vQueueSetQueueNumber
1368 #define traceENTER_vQueueSetQueueNumber( xQueue, uxQueueNumber )
1371 #ifndef traceRETURN_vQueueSetQueueNumber
1372 #define traceRETURN_vQueueSetQueueNumber()
1375 #ifndef traceENTER_ucQueueGetQueueType
1376 #define traceENTER_ucQueueGetQueueType( xQueue )
1379 #ifndef traceRETURN_ucQueueGetQueueType
1380 #define traceRETURN_ucQueueGetQueueType( ucQueueType )
1383 #ifndef traceENTER_uxQueueGetQueueItemSize
1384 #define traceENTER_uxQueueGetQueueItemSize( xQueue )
1387 #ifndef traceRETURN_uxQueueGetQueueItemSize
1388 #define traceRETURN_uxQueueGetQueueItemSize( uxItemSize )
1391 #ifndef traceENTER_uxQueueGetQueueLength
1392 #define traceENTER_uxQueueGetQueueLength( xQueue )
1395 #ifndef traceRETURN_uxQueueGetQueueLength
1396 #define traceRETURN_uxQueueGetQueueLength( uxLength )
1399 #ifndef traceENTER_xQueueIsQueueEmptyFromISR
1400 #define traceENTER_xQueueIsQueueEmptyFromISR( xQueue )
1403 #ifndef traceRETURN_xQueueIsQueueEmptyFromISR
1404 #define traceRETURN_xQueueIsQueueEmptyFromISR( xReturn )
1407 #ifndef traceENTER_xQueueIsQueueFullFromISR
1408 #define traceENTER_xQueueIsQueueFullFromISR( xQueue )
1411 #ifndef traceRETURN_xQueueIsQueueFullFromISR
1412 #define traceRETURN_xQueueIsQueueFullFromISR( xReturn )
1415 #ifndef traceENTER_xQueueCRSend
1416 #define traceENTER_xQueueCRSend( xQueue, pvItemToQueue, xTicksToWait )
1419 #ifndef traceRETURN_xQueueCRSend
1420 #define traceRETURN_xQueueCRSend( xReturn )
1423 #ifndef traceENTER_xQueueCRReceive
1424 #define traceENTER_xQueueCRReceive( xQueue, pvBuffer, xTicksToWait )
1427 #ifndef traceRETURN_xQueueCRReceive
1428 #define traceRETURN_xQueueCRReceive( xReturn )
1431 #ifndef traceENTER_xQueueCRSendFromISR
1432 #define traceENTER_xQueueCRSendFromISR( xQueue, pvItemToQueue, xCoRoutinePreviouslyWoken )
1435 #ifndef traceRETURN_xQueueCRSendFromISR
1436 #define traceRETURN_xQueueCRSendFromISR( xCoRoutinePreviouslyWoken )
1439 #ifndef traceENTER_xQueueCRReceiveFromISR
1440 #define traceENTER_xQueueCRReceiveFromISR( xQueue, pvBuffer, pxCoRoutineWoken )
1443 #ifndef traceRETURN_xQueueCRReceiveFromISR
1444 #define traceRETURN_xQueueCRReceiveFromISR( xReturn )
1447 #ifndef traceENTER_vQueueAddToRegistry
1448 #define traceENTER_vQueueAddToRegistry( xQueue, pcQueueName )
1451 #ifndef traceRETURN_vQueueAddToRegistry
1452 #define traceRETURN_vQueueAddToRegistry()
1455 #ifndef traceENTER_pcQueueGetName
1456 #define traceENTER_pcQueueGetName( xQueue )
1459 #ifndef traceRETURN_pcQueueGetName
1460 #define traceRETURN_pcQueueGetName( pcReturn )
1463 #ifndef traceENTER_vQueueUnregisterQueue
1464 #define traceENTER_vQueueUnregisterQueue( xQueue )
1467 #ifndef traceRETURN_vQueueUnregisterQueue
1468 #define traceRETURN_vQueueUnregisterQueue()
1471 #ifndef traceENTER_vQueueWaitForMessageRestricted
1472 #define traceENTER_vQueueWaitForMessageRestricted( xQueue, xTicksToWait, xWaitIndefinitely )
1475 #ifndef traceRETURN_vQueueWaitForMessageRestricted
1476 #define traceRETURN_vQueueWaitForMessageRestricted()
1479 #ifndef traceENTER_xQueueCreateSet
1480 #define traceENTER_xQueueCreateSet( uxEventQueueLength )
1483 #ifndef traceRETURN_xQueueCreateSet
1484 #define traceRETURN_xQueueCreateSet( pxQueue )
1487 #ifndef traceENTER_xQueueCreateSetStatic
1488 #define traceENTER_xQueueCreateSetStatic( uxEventQueueLength )
1491 #ifndef traceRETURN_xQueueCreateSetStatic
1492 #define traceRETURN_xQueueCreateSetStatic( pxQueue )
1495 #ifndef traceENTER_xQueueAddToSet
1496 #define traceENTER_xQueueAddToSet( xQueueOrSemaphore, xQueueSet )
1499 #ifndef traceRETURN_xQueueAddToSet
1500 #define traceRETURN_xQueueAddToSet( xReturn )
1503 #ifndef traceENTER_xQueueRemoveFromSet
1504 #define traceENTER_xQueueRemoveFromSet( xQueueOrSemaphore, xQueueSet )
1507 #ifndef traceRETURN_xQueueRemoveFromSet
1508 #define traceRETURN_xQueueRemoveFromSet( xReturn )
1511 #ifndef traceENTER_xQueueSelectFromSet
1512 #define traceENTER_xQueueSelectFromSet( xQueueSet, xTicksToWait )
1515 #ifndef traceRETURN_xQueueSelectFromSet
1516 #define traceRETURN_xQueueSelectFromSet( xReturn )
1519 #ifndef traceENTER_xQueueSelectFromSetFromISR
1520 #define traceENTER_xQueueSelectFromSetFromISR( xQueueSet )
1523 #ifndef traceRETURN_xQueueSelectFromSetFromISR
1524 #define traceRETURN_xQueueSelectFromSetFromISR( xReturn )
1527 #ifndef traceENTER_xTimerCreateTimerTask
1528 #define traceENTER_xTimerCreateTimerTask()
1531 #ifndef traceRETURN_xTimerCreateTimerTask
1532 #define traceRETURN_xTimerCreateTimerTask( xReturn )
1535 #ifndef traceENTER_xTimerCreate
1536 #define traceENTER_xTimerCreate( pcTimerName, xTimerPeriodInTicks, xAutoReload, pvTimerID, pxCallbackFunction )
1539 #ifndef traceRETURN_xTimerCreate
1540 #define traceRETURN_xTimerCreate( pxNewTimer )
1543 #ifndef traceENTER_xTimerCreateStatic
1544 #define traceENTER_xTimerCreateStatic( pcTimerName, xTimerPeriodInTicks, xAutoReload, pvTimerID, pxCallbackFunction, pxTimerBuffer )
1547 #ifndef traceRETURN_xTimerCreateStatic
1548 #define traceRETURN_xTimerCreateStatic( pxNewTimer )
1551 #ifndef traceENTER_xTimerGenericCommandFromTask
1552 #define traceENTER_xTimerGenericCommandFromTask( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait )
1555 #ifndef traceRETURN_xTimerGenericCommandFromTask
1556 #define traceRETURN_xTimerGenericCommandFromTask( xReturn )
1559 #ifndef traceENTER_xTimerGenericCommandFromISR
1560 #define traceENTER_xTimerGenericCommandFromISR( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait )
1563 #ifndef traceRETURN_xTimerGenericCommandFromISR
1564 #define traceRETURN_xTimerGenericCommandFromISR( xReturn )
1567 #ifndef traceENTER_xTimerGetTimerDaemonTaskHandle
1568 #define traceENTER_xTimerGetTimerDaemonTaskHandle()
1571 #ifndef traceRETURN_xTimerGetTimerDaemonTaskHandle
1572 #define traceRETURN_xTimerGetTimerDaemonTaskHandle( xTimerTaskHandle )
1575 #ifndef traceENTER_xTimerGetPeriod
1576 #define traceENTER_xTimerGetPeriod( xTimer )
1579 #ifndef traceRETURN_xTimerGetPeriod
1580 #define traceRETURN_xTimerGetPeriod( xTimerPeriodInTicks )
1583 #ifndef traceENTER_vTimerSetReloadMode
1584 #define traceENTER_vTimerSetReloadMode( xTimer, xAutoReload )
1587 #ifndef traceRETURN_vTimerSetReloadMode
1588 #define traceRETURN_vTimerSetReloadMode()
1591 #ifndef traceENTER_xTimerGetReloadMode
1592 #define traceENTER_xTimerGetReloadMode( xTimer )
1595 #ifndef traceRETURN_xTimerGetReloadMode
1596 #define traceRETURN_xTimerGetReloadMode( xReturn )
1599 #ifndef traceENTER_uxTimerGetReloadMode
1600 #define traceENTER_uxTimerGetReloadMode( xTimer )
1603 #ifndef traceRETURN_uxTimerGetReloadMode
1604 #define traceRETURN_uxTimerGetReloadMode( uxReturn )
1607 #ifndef traceENTER_xTimerGetExpiryTime
1608 #define traceENTER_xTimerGetExpiryTime( xTimer )
1611 #ifndef traceRETURN_xTimerGetExpiryTime
1612 #define traceRETURN_xTimerGetExpiryTime( xReturn )
1615 #ifndef traceENTER_xTimerGetStaticBuffer
1616 #define traceENTER_xTimerGetStaticBuffer( xTimer, ppxTimerBuffer )
1619 #ifndef traceRETURN_xTimerGetStaticBuffer
1620 #define traceRETURN_xTimerGetStaticBuffer( xReturn )
1623 #ifndef traceENTER_pcTimerGetName
1624 #define traceENTER_pcTimerGetName( xTimer )
1627 #ifndef traceRETURN_pcTimerGetName
1628 #define traceRETURN_pcTimerGetName( pcTimerName )
1631 #ifndef traceENTER_xTimerIsTimerActive
1632 #define traceENTER_xTimerIsTimerActive( xTimer )
1635 #ifndef traceRETURN_xTimerIsTimerActive
1636 #define traceRETURN_xTimerIsTimerActive( xReturn )
1639 #ifndef traceENTER_pvTimerGetTimerID
1640 #define traceENTER_pvTimerGetTimerID( xTimer )
1643 #ifndef traceRETURN_pvTimerGetTimerID
1644 #define traceRETURN_pvTimerGetTimerID( pvReturn )
1647 #ifndef traceENTER_vTimerSetTimerID
1648 #define traceENTER_vTimerSetTimerID( xTimer, pvNewID )
1651 #ifndef traceRETURN_vTimerSetTimerID
1652 #define traceRETURN_vTimerSetTimerID()
1655 #ifndef traceENTER_xTimerPendFunctionCallFromISR
1656 #define traceENTER_xTimerPendFunctionCallFromISR( xFunctionToPend, pvParameter1, ulParameter2, pxHigherPriorityTaskWoken )
1659 #ifndef traceRETURN_xTimerPendFunctionCallFromISR
1660 #define traceRETURN_xTimerPendFunctionCallFromISR( xReturn )
1663 #ifndef traceENTER_xTimerPendFunctionCall
1664 #define traceENTER_xTimerPendFunctionCall( xFunctionToPend, pvParameter1, ulParameter2, xTicksToWait )
1667 #ifndef traceRETURN_xTimerPendFunctionCall
1668 #define traceRETURN_xTimerPendFunctionCall( xReturn )
1671 #ifndef traceENTER_uxTimerGetTimerNumber
1672 #define traceENTER_uxTimerGetTimerNumber( xTimer )
1675 #ifndef traceRETURN_uxTimerGetTimerNumber
1676 #define traceRETURN_uxTimerGetTimerNumber( uxTimerNumber )
1679 #ifndef traceENTER_vTimerSetTimerNumber
1680 #define traceENTER_vTimerSetTimerNumber( xTimer, uxTimerNumber )
1683 #ifndef traceRETURN_vTimerSetTimerNumber
1684 #define traceRETURN_vTimerSetTimerNumber()
1687 #ifndef traceENTER_xTaskCreateStatic
1688 #define traceENTER_xTaskCreateStatic( pxTaskCode, pcName, uxStackDepth, pvParameters, uxPriority, puxStackBuffer, pxTaskBuffer )
1691 #ifndef traceRETURN_xTaskCreateStatic
1692 #define traceRETURN_xTaskCreateStatic( xReturn )
1695 #ifndef traceENTER_xTaskCreateStaticAffinitySet
1696 #define traceENTER_xTaskCreateStaticAffinitySet( pxTaskCode, pcName, uxStackDepth, pvParameters, uxPriority, puxStackBuffer, pxTaskBuffer, uxCoreAffinityMask )
1699 #ifndef traceRETURN_xTaskCreateStaticAffinitySet
1700 #define traceRETURN_xTaskCreateStaticAffinitySet( xReturn )
1703 #ifndef traceENTER_xTaskCreateRestrictedStatic
1704 #define traceENTER_xTaskCreateRestrictedStatic( pxTaskDefinition, pxCreatedTask )
1707 #ifndef traceRETURN_xTaskCreateRestrictedStatic
1708 #define traceRETURN_xTaskCreateRestrictedStatic( xReturn )
1711 #ifndef traceENTER_xTaskCreateRestrictedStaticAffinitySet
1712 #define traceENTER_xTaskCreateRestrictedStaticAffinitySet( pxTaskDefinition, uxCoreAffinityMask, pxCreatedTask )
1715 #ifndef traceRETURN_xTaskCreateRestrictedStaticAffinitySet
1716 #define traceRETURN_xTaskCreateRestrictedStaticAffinitySet( xReturn )
1719 #ifndef traceENTER_xTaskCreateRestricted
1720 #define traceENTER_xTaskCreateRestricted( pxTaskDefinition, pxCreatedTask )
1723 #ifndef traceRETURN_xTaskCreateRestricted
1724 #define traceRETURN_xTaskCreateRestricted( xReturn )
1727 #ifndef traceENTER_xTaskCreateRestrictedAffinitySet
1728 #define traceENTER_xTaskCreateRestrictedAffinitySet( pxTaskDefinition, uxCoreAffinityMask, pxCreatedTask )
1731 #ifndef traceRETURN_xTaskCreateRestrictedAffinitySet
1732 #define traceRETURN_xTaskCreateRestrictedAffinitySet( xReturn )
1735 #ifndef traceENTER_xTaskCreate
1736 #define traceENTER_xTaskCreate( pxTaskCode, pcName, uxStackDepth, pvParameters, uxPriority, pxCreatedTask )
1739 #ifndef traceRETURN_xTaskCreate
1740 #define traceRETURN_xTaskCreate( xReturn )
1743 #ifndef traceENTER_xTaskCreateAffinitySet
1744 #define traceENTER_xTaskCreateAffinitySet( pxTaskCode, pcName, uxStackDepth, pvParameters, uxPriority, uxCoreAffinityMask, pxCreatedTask )
1747 #ifndef traceRETURN_xTaskCreateAffinitySet
1748 #define traceRETURN_xTaskCreateAffinitySet( xReturn )
1751 #ifndef traceENTER_vTaskDelete
1752 #define traceENTER_vTaskDelete( xTaskToDelete )
1755 #ifndef traceRETURN_vTaskDelete
1756 #define traceRETURN_vTaskDelete()
1759 #ifndef traceENTER_xTaskDelayUntil
1760 #define traceENTER_xTaskDelayUntil( pxPreviousWakeTime, xTimeIncrement )
1763 #ifndef traceRETURN_xTaskDelayUntil
1764 #define traceRETURN_xTaskDelayUntil( xShouldDelay )
1767 #ifndef traceENTER_vTaskDelay
1768 #define traceENTER_vTaskDelay( xTicksToDelay )
1771 #ifndef traceRETURN_vTaskDelay
1772 #define traceRETURN_vTaskDelay()
1775 #ifndef traceENTER_eTaskGetState
1776 #define traceENTER_eTaskGetState( xTask )
1779 #ifndef traceRETURN_eTaskGetState
1780 #define traceRETURN_eTaskGetState( eReturn )
1783 #ifndef traceENTER_uxTaskPriorityGet
1784 #define traceENTER_uxTaskPriorityGet( xTask )
1787 #ifndef traceRETURN_uxTaskPriorityGet
1788 #define traceRETURN_uxTaskPriorityGet( uxReturn )
1791 #ifndef traceENTER_uxTaskPriorityGetFromISR
1792 #define traceENTER_uxTaskPriorityGetFromISR( xTask )
1795 #ifndef traceRETURN_uxTaskPriorityGetFromISR
1796 #define traceRETURN_uxTaskPriorityGetFromISR( uxReturn )
1799 #ifndef traceENTER_uxTaskBasePriorityGet
1800 #define traceENTER_uxTaskBasePriorityGet( xTask )
1803 #ifndef traceRETURN_uxTaskBasePriorityGet
1804 #define traceRETURN_uxTaskBasePriorityGet( uxReturn )
1807 #ifndef traceENTER_uxTaskBasePriorityGetFromISR
1808 #define traceENTER_uxTaskBasePriorityGetFromISR( xTask )
1811 #ifndef traceRETURN_uxTaskBasePriorityGetFromISR
1812 #define traceRETURN_uxTaskBasePriorityGetFromISR( uxReturn )
1815 #ifndef traceENTER_vTaskPrioritySet
1816 #define traceENTER_vTaskPrioritySet( xTask, uxNewPriority )
1819 #ifndef traceRETURN_vTaskPrioritySet
1820 #define traceRETURN_vTaskPrioritySet()
1823 #ifndef traceENTER_vTaskCoreAffinitySet
1824 #define traceENTER_vTaskCoreAffinitySet( xTask, uxCoreAffinityMask )
1827 #ifndef traceRETURN_vTaskCoreAffinitySet
1828 #define traceRETURN_vTaskCoreAffinitySet()
1831 #ifndef traceENTER_vTaskCoreAffinityGet
1832 #define traceENTER_vTaskCoreAffinityGet( xTask )
1835 #ifndef traceRETURN_vTaskCoreAffinityGet
1836 #define traceRETURN_vTaskCoreAffinityGet( uxCoreAffinityMask )
1839 #ifndef traceENTER_vTaskPreemptionDisable
1840 #define traceENTER_vTaskPreemptionDisable( xTask )
1843 #ifndef traceRETURN_vTaskPreemptionDisable
1844 #define traceRETURN_vTaskPreemptionDisable()
1847 #ifndef traceENTER_vTaskPreemptionEnable
1848 #define traceENTER_vTaskPreemptionEnable( xTask )
1851 #ifndef traceRETURN_vTaskPreemptionEnable
1852 #define traceRETURN_vTaskPreemptionEnable()
1855 #ifndef traceENTER_vTaskSuspend
1856 #define traceENTER_vTaskSuspend( xTaskToSuspend )
1859 #ifndef traceRETURN_vTaskSuspend
1860 #define traceRETURN_vTaskSuspend()
1863 #ifndef traceENTER_vTaskResume
1864 #define traceENTER_vTaskResume( xTaskToResume )
1867 #ifndef traceRETURN_vTaskResume
1868 #define traceRETURN_vTaskResume()
1871 #ifndef traceENTER_xTaskResumeFromISR
1872 #define traceENTER_xTaskResumeFromISR( xTaskToResume )
1875 #ifndef traceRETURN_xTaskResumeFromISR
1876 #define traceRETURN_xTaskResumeFromISR( xYieldRequired )
1879 #ifndef traceENTER_vTaskStartScheduler
1880 #define traceENTER_vTaskStartScheduler()
1883 #ifndef traceRETURN_vTaskStartScheduler
1884 #define traceRETURN_vTaskStartScheduler()
1887 #ifndef traceENTER_vTaskEndScheduler
1888 #define traceENTER_vTaskEndScheduler()
1891 #ifndef traceRETURN_vTaskEndScheduler
1892 #define traceRETURN_vTaskEndScheduler()
1895 #ifndef traceENTER_vTaskSuspendAll
1896 #define traceENTER_vTaskSuspendAll()
1899 #ifndef traceRETURN_vTaskSuspendAll
1900 #define traceRETURN_vTaskSuspendAll()
1903 #ifndef traceENTER_xTaskResumeAll
1904 #define traceENTER_xTaskResumeAll()
1907 #ifndef traceRETURN_xTaskResumeAll
1908 #define traceRETURN_xTaskResumeAll( xAlreadyYielded )
1911 #ifndef traceENTER_xTaskGetTickCount
1912 #define traceENTER_xTaskGetTickCount()
1915 #ifndef traceRETURN_xTaskGetTickCount
1916 #define traceRETURN_xTaskGetTickCount( xTicks )
1919 #ifndef traceENTER_xTaskGetTickCountFromISR
1920 #define traceENTER_xTaskGetTickCountFromISR()
1923 #ifndef traceRETURN_xTaskGetTickCountFromISR
1924 #define traceRETURN_xTaskGetTickCountFromISR( xReturn )
1927 #ifndef traceENTER_uxTaskGetNumberOfTasks
1928 #define traceENTER_uxTaskGetNumberOfTasks()
1931 #ifndef traceRETURN_uxTaskGetNumberOfTasks
1932 #define traceRETURN_uxTaskGetNumberOfTasks( uxCurrentNumberOfTasks )
1935 #ifndef traceENTER_pcTaskGetName
1936 #define traceENTER_pcTaskGetName( xTaskToQuery )
1939 #ifndef traceRETURN_pcTaskGetName
1940 #define traceRETURN_pcTaskGetName( pcTaskName )
1943 #ifndef traceENTER_xTaskGetHandle
1944 #define traceENTER_xTaskGetHandle( pcNameToQuery )
1947 #ifndef traceRETURN_xTaskGetHandle
1948 #define traceRETURN_xTaskGetHandle( pxTCB )
1951 #ifndef traceENTER_xTaskGetStaticBuffers
1952 #define traceENTER_xTaskGetStaticBuffers( xTask, ppuxStackBuffer, ppxTaskBuffer )
1955 #ifndef traceRETURN_xTaskGetStaticBuffers
1956 #define traceRETURN_xTaskGetStaticBuffers( xReturn )
1959 #ifndef traceENTER_uxTaskGetSystemState
1960 #define traceENTER_uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, pulTotalRunTime )
1963 #ifndef traceRETURN_uxTaskGetSystemState
1964 #define traceRETURN_uxTaskGetSystemState( uxTask )
1967 #if ( configNUMBER_OF_CORES == 1 )
1968 #ifndef traceENTER_xTaskGetIdleTaskHandle
1969 #define traceENTER_xTaskGetIdleTaskHandle()
1973 #if ( configNUMBER_OF_CORES == 1 )
1974 #ifndef traceRETURN_xTaskGetIdleTaskHandle
1975 #define traceRETURN_xTaskGetIdleTaskHandle( xIdleTaskHandle )
1979 #ifndef traceENTER_xTaskGetIdleTaskHandleForCore
1980 #define traceENTER_xTaskGetIdleTaskHandleForCore( xCoreID )
1983 #ifndef traceRETURN_xTaskGetIdleTaskHandleForCore
1984 #define traceRETURN_xTaskGetIdleTaskHandleForCore( xIdleTaskHandle )
1987 #ifndef traceENTER_vTaskStepTick
1988 #define traceENTER_vTaskStepTick( xTicksToJump )
1991 #ifndef traceRETURN_vTaskStepTick
1992 #define traceRETURN_vTaskStepTick()
1995 #ifndef traceENTER_xTaskCatchUpTicks
1996 #define traceENTER_xTaskCatchUpTicks( xTicksToCatchUp )
1999 #ifndef traceRETURN_xTaskCatchUpTicks
2000 #define traceRETURN_xTaskCatchUpTicks( xYieldOccurred )
2003 #ifndef traceENTER_xTaskAbortDelay
2004 #define traceENTER_xTaskAbortDelay( xTask )
2007 #ifndef traceRETURN_xTaskAbortDelay
2008 #define traceRETURN_xTaskAbortDelay( xReturn )
2011 #ifndef traceENTER_xTaskIncrementTick
2012 #define traceENTER_xTaskIncrementTick()
2015 #ifndef traceRETURN_xTaskIncrementTick
2016 #define traceRETURN_xTaskIncrementTick( xSwitchRequired )
2019 #ifndef traceENTER_vTaskSetApplicationTaskTag
2020 #define traceENTER_vTaskSetApplicationTaskTag( xTask, pxHookFunction )
2023 #ifndef traceRETURN_vTaskSetApplicationTaskTag
2024 #define traceRETURN_vTaskSetApplicationTaskTag()
2027 #ifndef traceENTER_xTaskGetApplicationTaskTag
2028 #define traceENTER_xTaskGetApplicationTaskTag( xTask )
2031 #ifndef traceRETURN_xTaskGetApplicationTaskTag
2032 #define traceRETURN_xTaskGetApplicationTaskTag( xReturn )
2035 #ifndef traceENTER_xTaskGetApplicationTaskTagFromISR
2036 #define traceENTER_xTaskGetApplicationTaskTagFromISR( xTask )
2039 #ifndef traceRETURN_xTaskGetApplicationTaskTagFromISR
2040 #define traceRETURN_xTaskGetApplicationTaskTagFromISR( xReturn )
2043 #ifndef traceENTER_xTaskCallApplicationTaskHook
2044 #define traceENTER_xTaskCallApplicationTaskHook( xTask, pvParameter )
2047 #ifndef traceRETURN_xTaskCallApplicationTaskHook
2048 #define traceRETURN_xTaskCallApplicationTaskHook( xReturn )
2051 #ifndef traceENTER_vTaskSwitchContext
2052 #define traceENTER_vTaskSwitchContext()
2055 #ifndef traceRETURN_vTaskSwitchContext
2056 #define traceRETURN_vTaskSwitchContext()
2059 #ifndef traceENTER_vTaskPlaceOnEventList
2060 #define traceENTER_vTaskPlaceOnEventList( pxEventList, xTicksToWait )
2063 #ifndef traceRETURN_vTaskPlaceOnEventList
2064 #define traceRETURN_vTaskPlaceOnEventList()
2067 #ifndef traceENTER_vTaskPlaceOnUnorderedEventList
2068 #define traceENTER_vTaskPlaceOnUnorderedEventList( pxEventList, xItemValue, xTicksToWait )
2071 #ifndef traceRETURN_vTaskPlaceOnUnorderedEventList
2072 #define traceRETURN_vTaskPlaceOnUnorderedEventList()
2075 #ifndef traceENTER_vTaskPlaceOnEventListRestricted
2076 #define traceENTER_vTaskPlaceOnEventListRestricted( pxEventList, xTicksToWait, xWaitIndefinitely )
2079 #ifndef traceRETURN_vTaskPlaceOnEventListRestricted
2080 #define traceRETURN_vTaskPlaceOnEventListRestricted()
2083 #ifndef traceENTER_xTaskRemoveFromEventList
2084 #define traceENTER_xTaskRemoveFromEventList( pxEventList )
2087 #ifndef traceRETURN_xTaskRemoveFromEventList
2088 #define traceRETURN_xTaskRemoveFromEventList( xReturn )
2091 #ifndef traceENTER_vTaskRemoveFromUnorderedEventList
2092 #define traceENTER_vTaskRemoveFromUnorderedEventList( pxEventListItem, xItemValue )
2095 #ifndef traceRETURN_vTaskRemoveFromUnorderedEventList
2096 #define traceRETURN_vTaskRemoveFromUnorderedEventList()
2099 #ifndef traceENTER_vTaskSetTimeOutState
2100 #define traceENTER_vTaskSetTimeOutState( pxTimeOut )
2103 #ifndef traceRETURN_vTaskSetTimeOutState
2104 #define traceRETURN_vTaskSetTimeOutState()
2107 #ifndef traceENTER_vTaskInternalSetTimeOutState
2108 #define traceENTER_vTaskInternalSetTimeOutState( pxTimeOut )
2111 #ifndef traceRETURN_vTaskInternalSetTimeOutState
2112 #define traceRETURN_vTaskInternalSetTimeOutState()
2115 #ifndef traceENTER_xTaskCheckForTimeOut
2116 #define traceENTER_xTaskCheckForTimeOut( pxTimeOut, pxTicksToWait )
2119 #ifndef traceRETURN_xTaskCheckForTimeOut
2120 #define traceRETURN_xTaskCheckForTimeOut( xReturn )
2123 #ifndef traceENTER_vTaskMissedYield
2124 #define traceENTER_vTaskMissedYield()
2127 #ifndef traceRETURN_vTaskMissedYield
2128 #define traceRETURN_vTaskMissedYield()
2131 #ifndef traceENTER_uxTaskGetTaskNumber
2132 #define traceENTER_uxTaskGetTaskNumber( xTask )
2135 #ifndef traceRETURN_uxTaskGetTaskNumber
2136 #define traceRETURN_uxTaskGetTaskNumber( uxReturn )
2139 #ifndef traceENTER_vTaskSetTaskNumber
2140 #define traceENTER_vTaskSetTaskNumber( xTask, uxHandle )
2143 #ifndef traceRETURN_vTaskSetTaskNumber
2144 #define traceRETURN_vTaskSetTaskNumber()
2147 #ifndef traceENTER_eTaskConfirmSleepModeStatus
2148 #define traceENTER_eTaskConfirmSleepModeStatus()
2151 #ifndef traceRETURN_eTaskConfirmSleepModeStatus
2152 #define traceRETURN_eTaskConfirmSleepModeStatus( eReturn )
2155 #ifndef traceENTER_vTaskSetThreadLocalStoragePointer
2156 #define traceENTER_vTaskSetThreadLocalStoragePointer( xTaskToSet, xIndex, pvValue )
2159 #ifndef traceRETURN_vTaskSetThreadLocalStoragePointer
2160 #define traceRETURN_vTaskSetThreadLocalStoragePointer()
2163 #ifndef traceENTER_pvTaskGetThreadLocalStoragePointer
2164 #define traceENTER_pvTaskGetThreadLocalStoragePointer( xTaskToQuery, xIndex )
2167 #ifndef traceRETURN_pvTaskGetThreadLocalStoragePointer
2168 #define traceRETURN_pvTaskGetThreadLocalStoragePointer( pvReturn )
2171 #ifndef traceENTER_vTaskAllocateMPURegions
2172 #define traceENTER_vTaskAllocateMPURegions( xTaskToModify, pxRegions )
2175 #ifndef traceRETURN_vTaskAllocateMPURegions
2176 #define traceRETURN_vTaskAllocateMPURegions()
2179 #ifndef traceENTER_vTaskGetInfo
2180 #define traceENTER_vTaskGetInfo( xTask, pxTaskStatus, xGetFreeStackSpace, eState )
2183 #ifndef traceRETURN_vTaskGetInfo
2184 #define traceRETURN_vTaskGetInfo()
2187 #ifndef traceENTER_uxTaskGetStackHighWaterMark2
2188 #define traceENTER_uxTaskGetStackHighWaterMark2( xTask )
2191 #ifndef traceRETURN_uxTaskGetStackHighWaterMark2
2192 #define traceRETURN_uxTaskGetStackHighWaterMark2( uxReturn )
2195 #ifndef traceENTER_uxTaskGetStackHighWaterMark
2196 #define traceENTER_uxTaskGetStackHighWaterMark( xTask )
2199 #ifndef traceRETURN_uxTaskGetStackHighWaterMark
2200 #define traceRETURN_uxTaskGetStackHighWaterMark( uxReturn )
2203 #ifndef traceENTER_xTaskGetCurrentTaskHandle
2204 #define traceENTER_xTaskGetCurrentTaskHandle()
2207 #ifndef traceRETURN_xTaskGetCurrentTaskHandle
2208 #define traceRETURN_xTaskGetCurrentTaskHandle( xReturn )
2211 #ifndef traceENTER_xTaskGetCurrentTaskHandleForCore
2212 #define traceENTER_xTaskGetCurrentTaskHandleForCore( xCoreID )
2215 #ifndef traceRETURN_xTaskGetCurrentTaskHandleForCore
2216 #define traceRETURN_xTaskGetCurrentTaskHandleForCore( xReturn )
2219 #ifndef traceENTER_xTaskGetSchedulerState
2220 #define traceENTER_xTaskGetSchedulerState()
2223 #ifndef traceRETURN_xTaskGetSchedulerState
2224 #define traceRETURN_xTaskGetSchedulerState( xReturn )
2227 #ifndef traceENTER_xTaskPriorityInherit
2228 #define traceENTER_xTaskPriorityInherit( pxMutexHolder )
2231 #ifndef traceRETURN_xTaskPriorityInherit
2232 #define traceRETURN_xTaskPriorityInherit( xReturn )
2235 #ifndef traceENTER_xTaskPriorityDisinherit
2236 #define traceENTER_xTaskPriorityDisinherit( pxMutexHolder )
2239 #ifndef traceRETURN_xTaskPriorityDisinherit
2240 #define traceRETURN_xTaskPriorityDisinherit( xReturn )
2243 #ifndef traceENTER_vTaskPriorityDisinheritAfterTimeout
2244 #define traceENTER_vTaskPriorityDisinheritAfterTimeout( pxMutexHolder, uxHighestPriorityWaitingTask )
2247 #ifndef traceRETURN_vTaskPriorityDisinheritAfterTimeout
2248 #define traceRETURN_vTaskPriorityDisinheritAfterTimeout()
2251 #ifndef traceENTER_vTaskYieldWithinAPI
2252 #define traceENTER_vTaskYieldWithinAPI()
2255 #ifndef traceRETURN_vTaskYieldWithinAPI
2256 #define traceRETURN_vTaskYieldWithinAPI()
2259 #ifndef traceENTER_vTaskEnterCritical
2260 #define traceENTER_vTaskEnterCritical()
2263 #ifndef traceRETURN_vTaskEnterCritical
2264 #define traceRETURN_vTaskEnterCritical()
2267 #ifndef traceENTER_vTaskEnterCriticalFromISR
2268 #define traceENTER_vTaskEnterCriticalFromISR()
2271 #ifndef traceRETURN_vTaskEnterCriticalFromISR
2272 #define traceRETURN_vTaskEnterCriticalFromISR( uxSavedInterruptStatus )
2275 #ifndef traceENTER_vTaskExitCritical
2276 #define traceENTER_vTaskExitCritical()
2279 #ifndef traceRETURN_vTaskExitCritical
2280 #define traceRETURN_vTaskExitCritical()
2283 #ifndef traceENTER_vTaskExitCriticalFromISR
2284 #define traceENTER_vTaskExitCriticalFromISR( uxSavedInterruptStatus )
2287 #ifndef traceRETURN_vTaskExitCriticalFromISR
2288 #define traceRETURN_vTaskExitCriticalFromISR()
2291 #ifndef traceENTER_vTaskListTasks
2292 #define traceENTER_vTaskListTasks( pcWriteBuffer, uxBufferLength )
2295 #ifndef traceRETURN_vTaskListTasks
2296 #define traceRETURN_vTaskListTasks()
2299 #ifndef traceENTER_vTaskGetRunTimeStatistics
2300 #define traceENTER_vTaskGetRunTimeStatistics( pcWriteBuffer, uxBufferLength )
2303 #ifndef traceRETURN_vTaskGetRunTimeStatistics
2304 #define traceRETURN_vTaskGetRunTimeStatistics()
2307 #ifndef traceENTER_uxTaskResetEventItemValue
2308 #define traceENTER_uxTaskResetEventItemValue()
2311 #ifndef traceRETURN_uxTaskResetEventItemValue
2312 #define traceRETURN_uxTaskResetEventItemValue( uxReturn )
2315 #ifndef traceENTER_pvTaskIncrementMutexHeldCount
2316 #define traceENTER_pvTaskIncrementMutexHeldCount()
2319 #ifndef traceRETURN_pvTaskIncrementMutexHeldCount
2320 #define traceRETURN_pvTaskIncrementMutexHeldCount( pxTCB )
2323 #ifndef traceENTER_ulTaskGenericNotifyTake
2324 #define traceENTER_ulTaskGenericNotifyTake( uxIndexToWaitOn, xClearCountOnExit, xTicksToWait )
2327 #ifndef traceRETURN_ulTaskGenericNotifyTake
2328 #define traceRETURN_ulTaskGenericNotifyTake( ulReturn )
2331 #ifndef traceENTER_xTaskGenericNotifyWait
2332 #define traceENTER_xTaskGenericNotifyWait( uxIndexToWaitOn, ulBitsToClearOnEntry, ulBitsToClearOnExit, pulNotificationValue, xTicksToWait )
2335 #ifndef traceRETURN_xTaskGenericNotifyWait
2336 #define traceRETURN_xTaskGenericNotifyWait( xReturn )
2339 #ifndef traceENTER_xTaskGenericNotify
2340 #define traceENTER_xTaskGenericNotify( xTaskToNotify, uxIndexToNotify, ulValue, eAction, pulPreviousNotificationValue )
2343 #ifndef traceRETURN_xTaskGenericNotify
2344 #define traceRETURN_xTaskGenericNotify( xReturn )
2347 #ifndef traceENTER_xTaskGenericNotifyFromISR
2348 #define traceENTER_xTaskGenericNotifyFromISR( xTaskToNotify, uxIndexToNotify, ulValue, eAction, pulPreviousNotificationValue, pxHigherPriorityTaskWoken )
2351 #ifndef traceRETURN_xTaskGenericNotifyFromISR
2352 #define traceRETURN_xTaskGenericNotifyFromISR( xReturn )
2355 #ifndef traceENTER_vTaskGenericNotifyGiveFromISR
2356 #define traceENTER_vTaskGenericNotifyGiveFromISR( xTaskToNotify, uxIndexToNotify, pxHigherPriorityTaskWoken )
2359 #ifndef traceRETURN_vTaskGenericNotifyGiveFromISR
2360 #define traceRETURN_vTaskGenericNotifyGiveFromISR()
2363 #ifndef traceENTER_xTaskGenericNotifyStateClear
2364 #define traceENTER_xTaskGenericNotifyStateClear( xTask, uxIndexToClear )
2367 #ifndef traceRETURN_xTaskGenericNotifyStateClear
2368 #define traceRETURN_xTaskGenericNotifyStateClear( xReturn )
2371 #ifndef traceENTER_ulTaskGenericNotifyValueClear
2372 #define traceENTER_ulTaskGenericNotifyValueClear( xTask, uxIndexToClear, ulBitsToClear )
2375 #ifndef traceRETURN_ulTaskGenericNotifyValueClear
2376 #define traceRETURN_ulTaskGenericNotifyValueClear( ulReturn )
2379 #ifndef traceENTER_ulTaskGetRunTimeCounter
2380 #define traceENTER_ulTaskGetRunTimeCounter( xTask )
2383 #ifndef traceRETURN_ulTaskGetRunTimeCounter
2384 #define traceRETURN_ulTaskGetRunTimeCounter( ulRunTimeCounter )
2387 #ifndef traceENTER_ulTaskGetRunTimePercent
2388 #define traceENTER_ulTaskGetRunTimePercent( xTask )
2391 #ifndef traceRETURN_ulTaskGetRunTimePercent
2392 #define traceRETURN_ulTaskGetRunTimePercent( ulReturn )
2395 #ifndef traceENTER_ulTaskGetIdleRunTimeCounter
2396 #define traceENTER_ulTaskGetIdleRunTimeCounter()
2399 #ifndef traceRETURN_ulTaskGetIdleRunTimeCounter
2400 #define traceRETURN_ulTaskGetIdleRunTimeCounter( ulReturn )
2403 #ifndef traceENTER_ulTaskGetIdleRunTimePercent
2404 #define traceENTER_ulTaskGetIdleRunTimePercent()
2407 #ifndef traceRETURN_ulTaskGetIdleRunTimePercent
2408 #define traceRETURN_ulTaskGetIdleRunTimePercent( ulReturn )
2411 #ifndef traceENTER_xTaskGetMPUSettings
2412 #define traceENTER_xTaskGetMPUSettings( xTask )
2415 #ifndef traceRETURN_xTaskGetMPUSettings
2416 #define traceRETURN_xTaskGetMPUSettings( xMPUSettings )
2419 #ifndef traceENTER_xStreamBufferGenericCreate
2420 #define traceENTER_xStreamBufferGenericCreate( xBufferSizeBytes, xTriggerLevelBytes, xStreamBufferType, pxSendCompletedCallback, pxReceiveCompletedCallback )
2423 #ifndef traceRETURN_xStreamBufferGenericCreate
2424 #define traceRETURN_xStreamBufferGenericCreate( pvAllocatedMemory )
2427 #ifndef traceENTER_xStreamBufferGenericCreateStatic
2428 #define traceENTER_xStreamBufferGenericCreateStatic( xBufferSizeBytes, xTriggerLevelBytes, xStreamBufferType, pucStreamBufferStorageArea, pxStaticStreamBuffer, pxSendCompletedCallback, pxReceiveCompletedCallback )
2431 #ifndef traceRETURN_xStreamBufferGenericCreateStatic
2432 #define traceRETURN_xStreamBufferGenericCreateStatic( xReturn )
2435 #ifndef traceENTER_xStreamBufferGetStaticBuffers
2436 #define traceENTER_xStreamBufferGetStaticBuffers( xStreamBuffer, ppucStreamBufferStorageArea, ppxStaticStreamBuffer )
2439 #ifndef traceRETURN_xStreamBufferGetStaticBuffers
2440 #define traceRETURN_xStreamBufferGetStaticBuffers( xReturn )
2443 #ifndef traceENTER_vStreamBufferDelete
2444 #define traceENTER_vStreamBufferDelete( xStreamBuffer )
2447 #ifndef traceRETURN_vStreamBufferDelete
2448 #define traceRETURN_vStreamBufferDelete()
2451 #ifndef traceENTER_xStreamBufferReset
2452 #define traceENTER_xStreamBufferReset( xStreamBuffer )
2455 #ifndef traceRETURN_xStreamBufferReset
2456 #define traceRETURN_xStreamBufferReset( xReturn )
2459 #ifndef traceENTER_xStreamBufferResetFromISR
2460 #define traceENTER_xStreamBufferResetFromISR( xStreamBuffer )
2463 #ifndef traceRETURN_xStreamBufferResetFromISR
2464 #define traceRETURN_xStreamBufferResetFromISR( xReturn )
2467 #ifndef traceENTER_xStreamBufferSetTriggerLevel
2468 #define traceENTER_xStreamBufferSetTriggerLevel( xStreamBuffer, xTriggerLevel )
2471 #ifndef traceRETURN_xStreamBufferSetTriggerLevel
2472 #define traceRETURN_xStreamBufferSetTriggerLevel( xReturn )
2475 #ifndef traceENTER_xStreamBufferSpacesAvailable
2476 #define traceENTER_xStreamBufferSpacesAvailable( xStreamBuffer )
2479 #ifndef traceRETURN_xStreamBufferSpacesAvailable
2480 #define traceRETURN_xStreamBufferSpacesAvailable( xSpace )
2483 #ifndef traceENTER_xStreamBufferBytesAvailable
2484 #define traceENTER_xStreamBufferBytesAvailable( xStreamBuffer )
2487 #ifndef traceRETURN_xStreamBufferBytesAvailable
2488 #define traceRETURN_xStreamBufferBytesAvailable( xReturn )
2491 #ifndef traceENTER_xStreamBufferSend
2492 #define traceENTER_xStreamBufferSend( xStreamBuffer, pvTxData, xDataLengthBytes, xTicksToWait )
2495 #ifndef traceRETURN_xStreamBufferSend
2496 #define traceRETURN_xStreamBufferSend( xReturn )
2499 #ifndef traceENTER_xStreamBufferSendFromISR
2500 #define traceENTER_xStreamBufferSendFromISR( xStreamBuffer, pvTxData, xDataLengthBytes, pxHigherPriorityTaskWoken )
2503 #ifndef traceRETURN_xStreamBufferSendFromISR
2504 #define traceRETURN_xStreamBufferSendFromISR( xReturn )
2507 #ifndef traceENTER_xStreamBufferReceive
2508 #define traceENTER_xStreamBufferReceive( xStreamBuffer, pvRxData, xBufferLengthBytes, xTicksToWait )
2511 #ifndef traceRETURN_xStreamBufferReceive
2512 #define traceRETURN_xStreamBufferReceive( xReceivedLength )
2515 #ifndef traceENTER_xStreamBufferNextMessageLengthBytes
2516 #define traceENTER_xStreamBufferNextMessageLengthBytes( xStreamBuffer )
2519 #ifndef traceRETURN_xStreamBufferNextMessageLengthBytes
2520 #define traceRETURN_xStreamBufferNextMessageLengthBytes( xReturn )
2523 #ifndef traceENTER_xStreamBufferReceiveFromISR
2524 #define traceENTER_xStreamBufferReceiveFromISR( xStreamBuffer, pvRxData, xBufferLengthBytes, pxHigherPriorityTaskWoken )
2527 #ifndef traceRETURN_xStreamBufferReceiveFromISR
2528 #define traceRETURN_xStreamBufferReceiveFromISR( xReceivedLength )
2531 #ifndef traceENTER_xStreamBufferIsEmpty
2532 #define traceENTER_xStreamBufferIsEmpty( xStreamBuffer )
2535 #ifndef traceRETURN_xStreamBufferIsEmpty
2536 #define traceRETURN_xStreamBufferIsEmpty( xReturn )
2539 #ifndef traceENTER_xStreamBufferIsFull
2540 #define traceENTER_xStreamBufferIsFull( xStreamBuffer )
2543 #ifndef traceRETURN_xStreamBufferIsFull
2544 #define traceRETURN_xStreamBufferIsFull( xReturn )
2547 #ifndef traceENTER_xStreamBufferSendCompletedFromISR
2548 #define traceENTER_xStreamBufferSendCompletedFromISR( xStreamBuffer, pxHigherPriorityTaskWoken )
2551 #ifndef traceRETURN_xStreamBufferSendCompletedFromISR
2552 #define traceRETURN_xStreamBufferSendCompletedFromISR( xReturn )
2555 #ifndef traceENTER_xStreamBufferReceiveCompletedFromISR
2556 #define traceENTER_xStreamBufferReceiveCompletedFromISR( xStreamBuffer, pxHigherPriorityTaskWoken )
2559 #ifndef traceRETURN_xStreamBufferReceiveCompletedFromISR
2560 #define traceRETURN_xStreamBufferReceiveCompletedFromISR( xReturn )
2563 #ifndef traceENTER_uxStreamBufferGetStreamBufferNotificationIndex
2564 #define traceENTER_uxStreamBufferGetStreamBufferNotificationIndex( xStreamBuffer )
2567 #ifndef traceRETURN_uxStreamBufferGetStreamBufferNotificationIndex
2568 #define traceRETURN_uxStreamBufferGetStreamBufferNotificationIndex( uxNotificationIndex )
2571 #ifndef traceENTER_vStreamBufferSetStreamBufferNotificationIndex
2572 #define traceENTER_vStreamBufferSetStreamBufferNotificationIndex( xStreamBuffer, uxNotificationIndex )
2575 #ifndef traceRETURN_vStreamBufferSetStreamBufferNotificationIndex
2576 #define traceRETURN_vStreamBufferSetStreamBufferNotificationIndex()
2579 #ifndef traceENTER_uxStreamBufferGetStreamBufferNumber
2580 #define traceENTER_uxStreamBufferGetStreamBufferNumber( xStreamBuffer )
2583 #ifndef traceRETURN_uxStreamBufferGetStreamBufferNumber
2584 #define traceRETURN_uxStreamBufferGetStreamBufferNumber( uxStreamBufferNumber )
2587 #ifndef traceENTER_vStreamBufferSetStreamBufferNumber
2588 #define traceENTER_vStreamBufferSetStreamBufferNumber( xStreamBuffer, uxStreamBufferNumber )
2591 #ifndef traceRETURN_vStreamBufferSetStreamBufferNumber
2592 #define traceRETURN_vStreamBufferSetStreamBufferNumber()
2595 #ifndef traceENTER_ucStreamBufferGetStreamBufferType
2596 #define traceENTER_ucStreamBufferGetStreamBufferType( xStreamBuffer )
2599 #ifndef traceRETURN_ucStreamBufferGetStreamBufferType
2600 #define traceRETURN_ucStreamBufferGetStreamBufferType( ucStreamBufferType )
2603 #ifndef traceENTER_vListInitialise
2604 #define traceENTER_vListInitialise( pxList )
2607 #ifndef traceRETURN_vListInitialise
2608 #define traceRETURN_vListInitialise()
2611 #ifndef traceENTER_vListInitialiseItem
2612 #define traceENTER_vListInitialiseItem( pxItem )
2615 #ifndef traceRETURN_vListInitialiseItem
2616 #define traceRETURN_vListInitialiseItem()
2619 #ifndef traceENTER_vListInsertEnd
2620 #define traceENTER_vListInsertEnd( pxList, pxNewListItem )
2623 #ifndef traceRETURN_vListInsertEnd
2624 #define traceRETURN_vListInsertEnd()
2627 #ifndef traceENTER_vListInsert
2628 #define traceENTER_vListInsert( pxList, pxNewListItem )
2631 #ifndef traceRETURN_vListInsert
2632 #define traceRETURN_vListInsert()
2635 #ifndef traceENTER_uxListRemove
2636 #define traceENTER_uxListRemove( pxItemToRemove )
2639 #ifndef traceRETURN_uxListRemove
2640 #define traceRETURN_uxListRemove( uxNumberOfItems )
2643 #ifndef traceENTER_xCoRoutineCreate
2644 #define traceENTER_xCoRoutineCreate( pxCoRoutineCode, uxPriority, uxIndex )
2647 #ifndef traceRETURN_xCoRoutineCreate
2648 #define traceRETURN_xCoRoutineCreate( xReturn )
2651 #ifndef traceENTER_vCoRoutineAddToDelayedList
2652 #define traceENTER_vCoRoutineAddToDelayedList( xTicksToDelay, pxEventList )
2655 #ifndef traceRETURN_vCoRoutineAddToDelayedList
2656 #define traceRETURN_vCoRoutineAddToDelayedList()
2659 #ifndef traceENTER_vCoRoutineSchedule
2660 #define traceENTER_vCoRoutineSchedule()
2663 #ifndef traceRETURN_vCoRoutineSchedule
2664 #define traceRETURN_vCoRoutineSchedule()
2667 #ifndef traceENTER_xCoRoutineRemoveFromEventList
2668 #define traceENTER_xCoRoutineRemoveFromEventList( pxEventList )
2671 #ifndef traceRETURN_xCoRoutineRemoveFromEventList
2672 #define traceRETURN_xCoRoutineRemoveFromEventList( xReturn )
2675 #ifndef configGENERATE_RUN_TIME_STATS
2676 #define configGENERATE_RUN_TIME_STATS 0
2679 #if ( configGENERATE_RUN_TIME_STATS == 1 )
2681 #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
2682 #error If configGENERATE_RUN_TIME_STATS is defined then portCONFIGURE_TIMER_FOR_RUN_TIME_STATS must also be defined. portCONFIGURE_TIMER_FOR_RUN_TIME_STATS should call a port layer function to setup a peripheral timer/counter that can then be used as the run time counter time base.
2683 #endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */
2685 #ifndef portGET_RUN_TIME_COUNTER_VALUE
2686 #ifndef portALT_GET_RUN_TIME_COUNTER_VALUE
2687 #error If configGENERATE_RUN_TIME_STATS is defined then either portGET_RUN_TIME_COUNTER_VALUE or portALT_GET_RUN_TIME_COUNTER_VALUE must also be defined. See the examples provided and the FreeRTOS web site for more information.
2688 #endif /* portALT_GET_RUN_TIME_COUNTER_VALUE */
2689 #endif /* portGET_RUN_TIME_COUNTER_VALUE */
2691 #endif /* configGENERATE_RUN_TIME_STATS */
2693 #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
2694 #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()
2697 #ifndef portPRIVILEGE_BIT
2698 #define portPRIVILEGE_BIT ( ( UBaseType_t ) 0x00 )
2701 #ifndef portYIELD_WITHIN_API
2702 #define portYIELD_WITHIN_API portYIELD
2705 #ifndef portSUPPRESS_TICKS_AND_SLEEP
2706 #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )
2709 #ifndef configEXPECTED_IDLE_TIME_BEFORE_SLEEP
2710 #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2
2713 #if configEXPECTED_IDLE_TIME_BEFORE_SLEEP < 2
2714 #error configEXPECTED_IDLE_TIME_BEFORE_SLEEP must not be less than 2
2717 #ifndef configUSE_TICKLESS_IDLE
2718 #define configUSE_TICKLESS_IDLE 0
2721 #ifndef configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING
2722 #define configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING( x )
2725 #ifndef configPRE_SLEEP_PROCESSING
2726 #define configPRE_SLEEP_PROCESSING( x )
2729 #ifndef configPOST_SLEEP_PROCESSING
2730 #define configPOST_SLEEP_PROCESSING( x )
2733 #ifndef configUSE_QUEUE_SETS
2734 #define configUSE_QUEUE_SETS 0
2737 #ifndef portTASK_USES_FLOATING_POINT
2738 #define portTASK_USES_FLOATING_POINT()
2741 #ifndef portALLOCATE_SECURE_CONTEXT
2742 #define portALLOCATE_SECURE_CONTEXT( ulSecureStackSize )
2745 #ifndef portDONT_DISCARD
2746 #define portDONT_DISCARD
2749 #ifndef configUSE_TIME_SLICING
2750 #define configUSE_TIME_SLICING 1
2753 #ifndef configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS
2754 #define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0
2757 #ifndef configUSE_STATS_FORMATTING_FUNCTIONS
2758 #define configUSE_STATS_FORMATTING_FUNCTIONS 0
2761 #ifndef portASSERT_IF_INTERRUPT_PRIORITY_INVALID
2762 #define portASSERT_IF_INTERRUPT_PRIORITY_INVALID()
2765 #ifndef configUSE_TRACE_FACILITY
2766 #define configUSE_TRACE_FACILITY 0
2769 #ifndef mtCOVERAGE_TEST_MARKER
2770 #define mtCOVERAGE_TEST_MARKER()
2773 #ifndef mtCOVERAGE_TEST_DELAY
2774 #define mtCOVERAGE_TEST_DELAY()
2777 #ifndef portASSERT_IF_IN_ISR
2778 #define portASSERT_IF_IN_ISR()
2781 #ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION
2782 #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
2785 #ifndef configAPPLICATION_ALLOCATED_HEAP
2786 #define configAPPLICATION_ALLOCATED_HEAP 0
2789 #ifndef configENABLE_HEAP_PROTECTOR
2790 #define configENABLE_HEAP_PROTECTOR 0
2793 #ifndef configUSE_TASK_NOTIFICATIONS
2794 #define configUSE_TASK_NOTIFICATIONS 1
2797 #ifndef configTASK_NOTIFICATION_ARRAY_ENTRIES
2798 #define configTASK_NOTIFICATION_ARRAY_ENTRIES 1
2801 #if configTASK_NOTIFICATION_ARRAY_ENTRIES < 1
2802 #error configTASK_NOTIFICATION_ARRAY_ENTRIES must be at least 1
2805 #ifndef configUSE_POSIX_ERRNO
2806 #define configUSE_POSIX_ERRNO 0
2809 #ifndef configUSE_SB_COMPLETED_CALLBACK
2811 /* By default per-instance callbacks are not enabled for stream buffer or message buffer. */
2812 #define configUSE_SB_COMPLETED_CALLBACK 0
2815 #ifndef portTICK_TYPE_IS_ATOMIC
2816 #define portTICK_TYPE_IS_ATOMIC 0
2819 #ifndef configSUPPORT_STATIC_ALLOCATION
2820 /* Defaults to 0 for backward compatibility. */
2821 #define configSUPPORT_STATIC_ALLOCATION 0
2824 #ifndef configKERNEL_PROVIDED_STATIC_MEMORY
2825 #define configKERNEL_PROVIDED_STATIC_MEMORY 0
2828 #ifndef configSUPPORT_DYNAMIC_ALLOCATION
2829 /* Defaults to 1 for backward compatibility. */
2830 #define configSUPPORT_DYNAMIC_ALLOCATION 1
2833 #if ( ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION != 1 ) )
2834 #error configUSE_STATS_FORMATTING_FUNCTIONS cannot be used without dynamic allocation, but configSUPPORT_DYNAMIC_ALLOCATION is not set to 1.
2837 #if ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 )
2838 #if ( ( configUSE_TRACE_FACILITY != 1 ) && ( configGENERATE_RUN_TIME_STATS != 1 ) )
2839 #error configUSE_STATS_FORMATTING_FUNCTIONS is 1 but the functions it enables are not used because neither configUSE_TRACE_FACILITY or configGENERATE_RUN_TIME_STATS are 1. Set configUSE_STATS_FORMATTING_FUNCTIONS to 0 in FreeRTOSConfig.h.
2843 #ifndef configSTATS_BUFFER_MAX_LENGTH
2844 #define configSTATS_BUFFER_MAX_LENGTH 0xFFFF
2847 #ifndef configSTACK_DEPTH_TYPE
2849 /* Defaults to StackType_t for backward compatibility, but can be overridden
2850 * in FreeRTOSConfig.h if StackType_t is too restrictive. */
2851 #define configSTACK_DEPTH_TYPE StackType_t
2854 #ifndef configRUN_TIME_COUNTER_TYPE
2856 /* Defaults to uint32_t for backward compatibility, but can be overridden in
2857 * FreeRTOSConfig.h if uint32_t is too restrictive. */
2859 #define configRUN_TIME_COUNTER_TYPE uint32_t
2862 #ifndef configMESSAGE_BUFFER_LENGTH_TYPE
2864 /* Defaults to size_t for backward compatibility, but can be overridden
2865 * in FreeRTOSConfig.h if lengths will always be less than the number of bytes
2867 #define configMESSAGE_BUFFER_LENGTH_TYPE size_t
2870 /* Sanity check the configuration. */
2871 #if ( ( configSUPPORT_STATIC_ALLOCATION == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 0 ) )
2872 #error configSUPPORT_STATIC_ALLOCATION and configSUPPORT_DYNAMIC_ALLOCATION cannot both be 0, but can both be 1.
2875 #if ( ( configUSE_RECURSIVE_MUTEXES == 1 ) && ( configUSE_MUTEXES != 1 ) )
2876 #error configUSE_MUTEXES must be set to 1 to use recursive mutexes
2879 #if ( ( configRUN_MULTIPLE_PRIORITIES == 0 ) && ( configUSE_TASK_PREEMPTION_DISABLE != 0 ) )
2880 #error configRUN_MULTIPLE_PRIORITIES must be set to 1 to use task preemption disable
2883 #if ( ( configUSE_PREEMPTION == 0 ) && ( configUSE_TASK_PREEMPTION_DISABLE != 0 ) )
2884 #error configUSE_PREEMPTION must be set to 1 to use task preemption disable
2887 #if ( ( configNUMBER_OF_CORES == 1 ) && ( configUSE_TASK_PREEMPTION_DISABLE != 0 ) )
2888 #error configUSE_TASK_PREEMPTION_DISABLE is not supported in single core FreeRTOS
2891 #if ( ( configNUMBER_OF_CORES == 1 ) && ( configUSE_CORE_AFFINITY != 0 ) )
2892 #error configUSE_CORE_AFFINITY is not supported in single core FreeRTOS
2895 #if ( ( configNUMBER_OF_CORES > 1 ) && ( configUSE_PORT_OPTIMISED_TASK_SELECTION != 0 ) )
2896 #error configUSE_PORT_OPTIMISED_TASK_SELECTION is not supported in SMP FreeRTOS
2899 #ifndef configINITIAL_TICK_COUNT
2900 #define configINITIAL_TICK_COUNT 0
2903 #if ( portTICK_TYPE_IS_ATOMIC == 0 )
2905 /* Either variables of tick type cannot be read atomically, or
2906 * portTICK_TYPE_IS_ATOMIC was not set - map the critical sections used when
2907 * the tick count is returned to the standard critical section macros. */
2908 #define portTICK_TYPE_ENTER_CRITICAL() portENTER_CRITICAL()
2909 #define portTICK_TYPE_EXIT_CRITICAL() portEXIT_CRITICAL()
2910 #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() portSET_INTERRUPT_MASK_FROM_ISR()
2911 #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) portCLEAR_INTERRUPT_MASK_FROM_ISR( ( x ) )
2914 /* The tick type can be read atomically, so critical sections used when the
2915 * tick count is returned can be defined away. */
2916 #define portTICK_TYPE_ENTER_CRITICAL()
2917 #define portTICK_TYPE_EXIT_CRITICAL()
2918 #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() 0
2919 #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) ( void ) ( x )
2920 #endif /* if ( portTICK_TYPE_IS_ATOMIC == 0 ) */
2922 /* Definitions to allow backward compatibility with FreeRTOS versions prior to
2924 #ifndef configENABLE_BACKWARD_COMPATIBILITY
2925 #define configENABLE_BACKWARD_COMPATIBILITY 1
2928 #ifndef configPRINTF
2930 /* configPRINTF() was not defined, so define it away to nothing. To use
2931 * configPRINTF() then define it as follows (where MyPrintFunction() is
2932 * provided by the application writer):
2934 * void MyPrintFunction(const char *pcFormat, ... );
2935 #define configPRINTF( X ) MyPrintFunction X
2937 * Then call like a standard printf() function, but placing brackets around
2938 * all parameters so they are passed as a single parameter. For example:
2939 * configPRINTF( ("Value = %d", MyVariable) ); */
2940 #define configPRINTF( X )
2945 /* The application writer has not provided their own MAX macro, so define
2946 * the following generic implementation. */
2947 #define configMAX( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
2952 /* The application writer has not provided their own MIN macro, so define
2953 * the following generic implementation. */
2954 #define configMIN( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )
2957 #if configENABLE_BACKWARD_COMPATIBILITY == 1
2958 #define eTaskStateGet eTaskGetState
2959 #define portTickType TickType_t
2960 #define xTaskHandle TaskHandle_t
2961 #define xQueueHandle QueueHandle_t
2962 #define xSemaphoreHandle SemaphoreHandle_t
2963 #define xQueueSetHandle QueueSetHandle_t
2964 #define xQueueSetMemberHandle QueueSetMemberHandle_t
2965 #define xTimeOutType TimeOut_t
2966 #define xMemoryRegion MemoryRegion_t
2967 #define xTaskParameters TaskParameters_t
2968 #define xTaskStatusType TaskStatus_t
2969 #define xTimerHandle TimerHandle_t
2970 #define xCoRoutineHandle CoRoutineHandle_t
2971 #define pdTASK_HOOK_CODE TaskHookFunction_t
2972 #define portTICK_RATE_MS portTICK_PERIOD_MS
2973 #define pcTaskGetTaskName pcTaskGetName
2974 #define pcTimerGetTimerName pcTimerGetName
2975 #define pcQueueGetQueueName pcQueueGetName
2976 #define vTaskGetTaskInfo vTaskGetInfo
2977 #define xTaskGetIdleRunTimeCounter ulTaskGetIdleRunTimeCounter
2979 /* Backward compatibility within the scheduler code only - these definitions
2980 * are not really required but are included for completeness. */
2981 #define tmrTIMER_CALLBACK TimerCallbackFunction_t
2982 #define pdTASK_CODE TaskFunction_t
2983 #define xListItem ListItem_t
2984 #define xList List_t
2986 /* For libraries that break the list data hiding, and access list structure
2987 * members directly (which is not supposed to be done). */
2988 #define pxContainer pvContainer
2989 #endif /* configENABLE_BACKWARD_COMPATIBILITY */
2991 #if ( configUSE_ALTERNATIVE_API != 0 )
2992 #error The alternative API was deprecated some time ago, and was removed in FreeRTOS V9.0 0
2995 /* Set configUSE_TASK_FPU_SUPPORT to 0 to omit floating point support even
2996 * if floating point hardware is otherwise supported by the FreeRTOS port in use.
2997 * This constant is not supported by all FreeRTOS ports that include floating
2999 #ifndef configUSE_TASK_FPU_SUPPORT
3000 #define configUSE_TASK_FPU_SUPPORT 1
3003 /* Set configENABLE_MPU to 1 to enable MPU support and 0 to disable it. This is
3004 * currently used in ARMv8M ports. */
3005 #ifndef configENABLE_MPU
3006 #define configENABLE_MPU 0
3009 /* Set configENABLE_FPU to 1 to enable FPU support and 0 to disable it. This is
3010 * currently used in ARMv8M ports. */
3011 #ifndef configENABLE_FPU
3012 #define configENABLE_FPU 1
3015 /* Set configENABLE_MVE to 1 to enable MVE support and 0 to disable it. This is
3016 * currently used in ARMv8M ports. */
3017 #ifndef configENABLE_MVE
3018 #define configENABLE_MVE 0
3021 /* Set configENABLE_TRUSTZONE to 1 enable TrustZone support and 0 to disable it.
3022 * This is currently used in ARMv8M ports. */
3023 #ifndef configENABLE_TRUSTZONE
3024 #define configENABLE_TRUSTZONE 1
3027 /* Set configRUN_FREERTOS_SECURE_ONLY to 1 to run the FreeRTOS ARMv8M port on
3028 * the Secure Side only. */
3029 #ifndef configRUN_FREERTOS_SECURE_ONLY
3030 #define configRUN_FREERTOS_SECURE_ONLY 0
3033 #ifndef configRUN_ADDITIONAL_TESTS
3034 #define configRUN_ADDITIONAL_TESTS 0
3037 /* The following config allows infinite loop control. For example, control the
3038 * infinite loop in idle task function when performing unit tests. */
3039 #ifndef configCONTROL_INFINITE_LOOP
3040 #define configCONTROL_INFINITE_LOOP()
3043 /* Set configENABLE_PAC and/or configENABLE_BTI to 1 to enable PAC and/or BTI
3044 * support and 0 to disable them. These are currently used in ARMv8.1-M ports. */
3045 #ifndef configENABLE_PAC
3046 #define configENABLE_PAC 0
3049 #ifndef configENABLE_BTI
3050 #define configENABLE_BTI 0
3053 /* Sometimes the FreeRTOSConfig.h settings only allow a task to be created using
3054 * dynamically allocated RAM, in which case when any task is deleted it is known
3055 * that both the task's stack and TCB need to be freed. Sometimes the
3056 * FreeRTOSConfig.h settings only allow a task to be created using statically
3057 * allocated RAM, in which case when any task is deleted it is known that neither
3058 * the task's stack or TCB should be freed. Sometimes the FreeRTOSConfig.h
3059 * settings allow a task to be created using either statically or dynamically
3060 * allocated RAM, in which case a member of the TCB is used to record whether the
3061 * stack and/or TCB were allocated statically or dynamically, so when a task is
3062 * deleted the RAM that was allocated dynamically is freed again and no attempt is
3063 * made to free the RAM that was allocated statically.
3064 * tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is only true if it is possible for a
3065 * task to be created using either statically or dynamically allocated RAM. Note
3066 * that if portUSING_MPU_WRAPPERS is 1 then a protected task can be created with
3067 * a statically allocated stack and a dynamically allocated TCB.
3069 * The following table lists various combinations of portUSING_MPU_WRAPPERS,
3070 * configSUPPORT_DYNAMIC_ALLOCATION and configSUPPORT_STATIC_ALLOCATION and
3071 * when it is possible to have both static and dynamic allocation:
3072 * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
3073 * | MPU | Dynamic | Static | Available Functions | Possible Allocations | Both Dynamic and | Need Free |
3074 * | | | | | | Static Possible | |
3075 * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
3076 * | 0 | 0 | 1 | xTaskCreateStatic | TCB - Static, Stack - Static | No | No |
3077 * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
3078 * | 0 | 1 | 0 | xTaskCreate | TCB - Dynamic, Stack - Dynamic | No | Yes |
3079 * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
3080 * | 0 | 1 | 1 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes |
3081 * | | | | xTaskCreateStatic | 2. TCB - Static, Stack - Static | | |
3082 * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
3083 * | 1 | 0 | 1 | xTaskCreateStatic, | TCB - Static, Stack - Static | No | No |
3084 * | | | | xTaskCreateRestrictedStatic | | | |
3085 * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
3086 * | 1 | 1 | 0 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes |
3087 * | | | | xTaskCreateRestricted | 2. TCB - Dynamic, Stack - Static | | |
3088 * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
3089 * | 1 | 1 | 1 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes |
3090 * | | | | xTaskCreateStatic, | 2. TCB - Dynamic, Stack - Static | | |
3091 * | | | | xTaskCreateRestricted, | 3. TCB - Static, Stack - Static | | |
3092 * | | | | xTaskCreateRestrictedStatic | | | |
3093 * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
3095 #define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE \
3096 ( ( ( portUSING_MPU_WRAPPERS == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) || \
3097 ( ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) )
3100 * In line with software engineering best practice, FreeRTOS implements a strict
3101 * data hiding policy, so the real structures used by FreeRTOS to maintain the
3102 * state of tasks, queues, semaphores, etc. are not accessible to the application
3103 * code. However, if the application writer wants to statically allocate such
3104 * an object then the size of the object needs to be known. Dummy structures
3105 * that are guaranteed to have the same size and alignment requirements of the
3106 * real objects are used for this purpose. The dummy list and list item
3107 * structures below are used for inclusion in such a dummy structure.
3109 struct xSTATIC_LIST_ITEM
3111 #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
3115 void * pvDummy3[ 4 ];
3116 #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
3120 typedef struct xSTATIC_LIST_ITEM StaticListItem_t;
3122 #if ( configUSE_MINI_LIST_ITEM == 1 )
3123 /* See the comments above the struct xSTATIC_LIST_ITEM definition. */
3124 struct xSTATIC_MINI_LIST_ITEM
3126 #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
3130 void * pvDummy3[ 2 ];
3132 typedef struct xSTATIC_MINI_LIST_ITEM StaticMiniListItem_t;
3133 #else /* if ( configUSE_MINI_LIST_ITEM == 1 ) */
3134 typedef struct xSTATIC_LIST_ITEM StaticMiniListItem_t;
3135 #endif /* if ( configUSE_MINI_LIST_ITEM == 1 ) */
3137 /* See the comments above the struct xSTATIC_LIST_ITEM definition. */
3138 typedef struct xSTATIC_LIST
3140 #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
3143 UBaseType_t uxDummy2;
3145 StaticMiniListItem_t xDummy4;
3146 #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
3152 * In line with software engineering best practice, especially when supplying a
3153 * library that is likely to change in future versions, FreeRTOS implements a
3154 * strict data hiding policy. This means the Task structure used internally by
3155 * FreeRTOS is not accessible to application code. However, if the application
3156 * writer wants to statically allocate the memory required to create a task then
3157 * the size of the task object needs to be known. The StaticTask_t structure
3158 * below is provided for this purpose. Its sizes and alignment requirements are
3159 * guaranteed to match those of the genuine structure, no matter which
3160 * architecture is being used, and no matter how the values in FreeRTOSConfig.h
3161 * are set. Its contents are somewhat obfuscated in the hope users will
3162 * recognise that it would be unwise to make direct use of the structure members.
3164 typedef struct xSTATIC_TCB
3167 #if ( portUSING_MPU_WRAPPERS == 1 )
3168 xMPU_SETTINGS xDummy2;
3170 #if ( configUSE_CORE_AFFINITY == 1 ) && ( configNUMBER_OF_CORES > 1 )
3171 UBaseType_t uxDummy26;
3173 StaticListItem_t xDummy3[ 2 ];
3174 UBaseType_t uxDummy5;
3176 #if ( configNUMBER_OF_CORES > 1 )
3177 BaseType_t xDummy23;
3178 UBaseType_t uxDummy24;
3180 uint8_t ucDummy7[ configMAX_TASK_NAME_LEN ];
3181 #if ( configUSE_TASK_PREEMPTION_DISABLE == 1 )
3182 BaseType_t xDummy25;
3184 #if ( ( portSTACK_GROWTH > 0 ) || ( configRECORD_STACK_HIGH_ADDRESS == 1 ) )
3187 #if ( portCRITICAL_NESTING_IN_TCB == 1 )
3188 UBaseType_t uxDummy9;
3190 #if ( configUSE_TRACE_FACILITY == 1 )
3191 UBaseType_t uxDummy10[ 2 ];
3193 #if ( configUSE_MUTEXES == 1 )
3194 UBaseType_t uxDummy12[ 2 ];
3196 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
3199 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 )
3200 void * pvDummy15[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ];
3202 #if ( configGENERATE_RUN_TIME_STATS == 1 )
3203 configRUN_TIME_COUNTER_TYPE ulDummy16;
3205 #if ( configUSE_C_RUNTIME_TLS_SUPPORT == 1 )
3206 configTLS_BLOCK_TYPE xDummy17;
3208 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
3209 uint32_t ulDummy18[ configTASK_NOTIFICATION_ARRAY_ENTRIES ];
3210 uint8_t ucDummy19[ configTASK_NOTIFICATION_ARRAY_ENTRIES ];
3212 #if ( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 )
3216 #if ( INCLUDE_xTaskAbortDelay == 1 )
3219 #if ( configUSE_POSIX_ERRNO == 1 )
3225 * In line with software engineering best practice, especially when supplying a
3226 * library that is likely to change in future versions, FreeRTOS implements a
3227 * strict data hiding policy. This means the Queue structure used internally by
3228 * FreeRTOS is not accessible to application code. However, if the application
3229 * writer wants to statically allocate the memory required to create a queue
3230 * then the size of the queue object needs to be known. The StaticQueue_t
3231 * structure below is provided for this purpose. Its sizes and alignment
3232 * requirements are guaranteed to match those of the genuine structure, no
3233 * matter which architecture is being used, and no matter how the values in
3234 * FreeRTOSConfig.h are set. Its contents are somewhat obfuscated in the hope
3235 * users will recognise that it would be unwise to make direct use of the
3236 * structure members.
3238 typedef struct xSTATIC_QUEUE
3240 void * pvDummy1[ 3 ];
3245 UBaseType_t uxDummy2;
3248 StaticList_t xDummy3[ 2 ];
3249 UBaseType_t uxDummy4[ 3 ];
3250 uint8_t ucDummy5[ 2 ];
3252 #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
3256 #if ( configUSE_QUEUE_SETS == 1 )
3260 #if ( configUSE_TRACE_FACILITY == 1 )
3261 UBaseType_t uxDummy8;
3265 typedef StaticQueue_t StaticSemaphore_t;
3268 * In line with software engineering best practice, especially when supplying a
3269 * library that is likely to change in future versions, FreeRTOS implements a
3270 * strict data hiding policy. This means the event group structure used
3271 * internally by FreeRTOS is not accessible to application code. However, if
3272 * the application writer wants to statically allocate the memory required to
3273 * create an event group then the size of the event group object needs to be
3274 * know. The StaticEventGroup_t structure below is provided for this purpose.
3275 * Its sizes and alignment requirements are guaranteed to match those of the
3276 * genuine structure, no matter which architecture is being used, and no matter
3277 * how the values in FreeRTOSConfig.h are set. Its contents are somewhat
3278 * obfuscated in the hope users will recognise that it would be unwise to make
3279 * direct use of the structure members.
3281 typedef struct xSTATIC_EVENT_GROUP
3284 StaticList_t xDummy2;
3286 #if ( configUSE_TRACE_FACILITY == 1 )
3287 UBaseType_t uxDummy3;
3290 #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
3293 } StaticEventGroup_t;
3296 * In line with software engineering best practice, especially when supplying a
3297 * library that is likely to change in future versions, FreeRTOS implements a
3298 * strict data hiding policy. This means the software timer structure used
3299 * internally by FreeRTOS is not accessible to application code. However, if
3300 * the application writer wants to statically allocate the memory required to
3301 * create a software timer then the size of the queue object needs to be known.
3302 * The StaticTimer_t structure below is provided for this purpose. Its sizes
3303 * and alignment requirements are guaranteed to match those of the genuine
3304 * structure, no matter which architecture is being used, and no matter how the
3305 * values in FreeRTOSConfig.h are set. Its contents are somewhat obfuscated in
3306 * the hope users will recognise that it would be unwise to make direct use of
3307 * the structure members.
3309 typedef struct xSTATIC_TIMER
3312 StaticListItem_t xDummy2;
3315 TaskFunction_t pvDummy6;
3316 #if ( configUSE_TRACE_FACILITY == 1 )
3317 UBaseType_t uxDummy7;
3323 * In line with software engineering best practice, especially when supplying a
3324 * library that is likely to change in future versions, FreeRTOS implements a
3325 * strict data hiding policy. This means the stream buffer structure used
3326 * internally by FreeRTOS is not accessible to application code. However, if
3327 * the application writer wants to statically allocate the memory required to
3328 * create a stream buffer then the size of the stream buffer object needs to be
3329 * known. The StaticStreamBuffer_t structure below is provided for this
3330 * purpose. Its size and alignment requirements are guaranteed to match those
3331 * of the genuine structure, no matter which architecture is being used, and
3332 * no matter how the values in FreeRTOSConfig.h are set. Its contents are
3333 * somewhat obfuscated in the hope users will recognise that it would be unwise
3334 * to make direct use of the structure members.
3336 typedef struct xSTATIC_STREAM_BUFFER
3338 size_t uxDummy1[ 4 ];
3339 void * pvDummy2[ 3 ];
3341 #if ( configUSE_TRACE_FACILITY == 1 )
3342 UBaseType_t uxDummy4;
3344 #if ( configUSE_SB_COMPLETED_CALLBACK == 1 )
3345 void * pvDummy5[ 2 ];
3347 UBaseType_t uxDummy6;
3348 } StaticStreamBuffer_t;
3350 /* Message buffers are built on stream buffers. */
3351 typedef StaticStreamBuffer_t StaticMessageBuffer_t;
3359 #endif /* INC_FREERTOS_H */