1 /* 2 * FreeRTOS Kernel V11.0.1 3 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 * 5 * SPDX-License-Identifier: MIT 6 * 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: 13 * 14 * The above copyright notice and this permission notice shall be included in all 15 * copies or substantial portions of the Software. 16 * 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. 23 * 24 * https://www.FreeRTOS.org 25 * https://github.com/FreeRTOS 26 * 27 */ 28 29 #ifndef INC_FREERTOS_H 30 #define INC_FREERTOS_H 31 32 /* 33 * Include the generic headers required for the FreeRTOS port being used. 34 */ 35 #include <stddef.h> 36 37 /* 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 44 * other way). 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. 49 */ 50 #include <stdint.h> /* READ COMMENT ABOVE. */ 51 52 /* *INDENT-OFF* */ 53 #ifdef __cplusplus 54 extern "C" { 55 #endif 56 /* *INDENT-ON* */ 57 58 /* Acceptable values for configTICK_TYPE_WIDTH_IN_BITS. */ 59 #define TICK_TYPE_WIDTH_16_BITS 0 60 #define TICK_TYPE_WIDTH_32_BITS 1 61 #define TICK_TYPE_WIDTH_64_BITS 2 62 63 /* Application specific configuration options. */ 64 #include "FreeRTOSConfig.h" 65 66 #if !defined( configUSE_16_BIT_TICKS ) && !defined( configTICK_TYPE_WIDTH_IN_BITS ) 67 #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. 68 #endif 69 70 #if defined( configUSE_16_BIT_TICKS ) && defined( configTICK_TYPE_WIDTH_IN_BITS ) 71 #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. 72 #endif 73 74 /* Define configTICK_TYPE_WIDTH_IN_BITS according to the 75 * value of configUSE_16_BIT_TICKS for backward compatibility. */ 76 #ifndef configTICK_TYPE_WIDTH_IN_BITS 77 #if ( configUSE_16_BIT_TICKS == 1 ) 78 #define configTICK_TYPE_WIDTH_IN_BITS TICK_TYPE_WIDTH_16_BITS 79 #else 80 #define configTICK_TYPE_WIDTH_IN_BITS TICK_TYPE_WIDTH_32_BITS 81 #endif 82 #endif 83 84 /* Set configUSE_MPU_WRAPPERS_V1 to 1 to use MPU wrappers v1. */ 85 #ifndef configUSE_MPU_WRAPPERS_V1 86 #define configUSE_MPU_WRAPPERS_V1 0 87 #endif 88 89 /* Set configENABLE_ACCESS_CONTROL_LIST to 1 to enable access control list support. */ 90 #ifndef configENABLE_ACCESS_CONTROL_LIST 91 #define configENABLE_ACCESS_CONTROL_LIST 0 92 #endif 93 94 /* Set default value of configNUMBER_OF_CORES to 1 to use single core FreeRTOS. */ 95 #ifndef configNUMBER_OF_CORES 96 #define configNUMBER_OF_CORES 1 97 #endif 98 99 /* Basic FreeRTOS definitions. */ 100 #include "projdefs.h" 101 102 /* Definitions specific to the port being used. */ 103 #include "portable.h" 104 105 /* Must be defaulted before configUSE_NEWLIB_REENTRANT is used below. */ 106 #ifndef configUSE_NEWLIB_REENTRANT 107 #define configUSE_NEWLIB_REENTRANT 0 108 #endif 109 110 /* Required if struct _reent is used. */ 111 #if ( configUSE_NEWLIB_REENTRANT == 1 ) 112 113 #include "newlib-freertos.h" 114 115 #endif /* if ( configUSE_NEWLIB_REENTRANT == 1 ) */ 116 117 /* Must be defaulted before configUSE_PICOLIBC_TLS is used below. */ 118 #ifndef configUSE_PICOLIBC_TLS 119 #define configUSE_PICOLIBC_TLS 0 120 #endif 121 122 #if ( configUSE_PICOLIBC_TLS == 1 ) 123 124 #include "picolibc-freertos.h" 125 126 #endif /* if ( configUSE_PICOLIBC_TLS == 1 ) */ 127 128 #ifndef configUSE_C_RUNTIME_TLS_SUPPORT 129 #define configUSE_C_RUNTIME_TLS_SUPPORT 0 130 #endif 131 132 #if ( configUSE_C_RUNTIME_TLS_SUPPORT == 1 ) 133 134 #ifndef configTLS_BLOCK_TYPE 135 #error Missing definition: configTLS_BLOCK_TYPE must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1. 136 #endif 137 138 #ifndef configINIT_TLS_BLOCK 139 #error Missing definition: configINIT_TLS_BLOCK must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1. 140 #endif 141 142 #ifndef configSET_TLS_BLOCK 143 #error Missing definition: configSET_TLS_BLOCK must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1. 144 #endif 145 146 #ifndef configDEINIT_TLS_BLOCK 147 #error Missing definition: configDEINIT_TLS_BLOCK must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1. 148 #endif 149 #endif /* if ( configUSE_C_RUNTIME_TLS_SUPPORT == 1 ) */ 150 151 /* 152 * Check all the required application specific macros have been defined. 153 * These macros are application specific and (as downloaded) are defined 154 * within FreeRTOSConfig.h. 155 */ 156 157 #ifndef configMINIMAL_STACK_SIZE 158 #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. 159 #endif 160 161 #ifndef configMAX_PRIORITIES 162 #error Missing definition: configMAX_PRIORITIES must be defined in FreeRTOSConfig.h. See the Configuration section of the FreeRTOS API documentation for details. 163 #endif 164 165 #if configMAX_PRIORITIES < 1 166 #error configMAX_PRIORITIES must be defined to be greater than or equal to 1. 167 #endif 168 169 #ifndef configUSE_PREEMPTION 170 #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. 171 #endif 172 173 #ifndef configUSE_IDLE_HOOK 174 #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. 175 #endif 176 177 #if ( configNUMBER_OF_CORES > 1 ) 178 #ifndef configUSE_PASSIVE_IDLE_HOOK 179 #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. 180 #endif 181 #endif 182 183 #ifndef configUSE_TICK_HOOK 184 #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. 185 #endif 186 187 #if ( ( configTICK_TYPE_WIDTH_IN_BITS != TICK_TYPE_WIDTH_16_BITS ) && \ 188 ( configTICK_TYPE_WIDTH_IN_BITS != TICK_TYPE_WIDTH_32_BITS ) && \ 189 ( configTICK_TYPE_WIDTH_IN_BITS != TICK_TYPE_WIDTH_64_BITS ) ) 190 #error Macro configTICK_TYPE_WIDTH_IN_BITS is defined to incorrect value. See the Configuration section of the FreeRTOS API documentation for details. 191 #endif 192 193 #ifndef configUSE_CO_ROUTINES 194 #define configUSE_CO_ROUTINES 0 195 #endif 196 197 #ifndef INCLUDE_vTaskPrioritySet 198 #define INCLUDE_vTaskPrioritySet 0 199 #endif 200 201 #ifndef INCLUDE_uxTaskPriorityGet 202 #define INCLUDE_uxTaskPriorityGet 0 203 #endif 204 205 #ifndef INCLUDE_vTaskDelete 206 #define INCLUDE_vTaskDelete 0 207 #endif 208 209 #ifndef INCLUDE_vTaskSuspend 210 #define INCLUDE_vTaskSuspend 0 211 #endif 212 213 #ifdef INCLUDE_xTaskDelayUntil 214 #ifdef INCLUDE_vTaskDelayUntil 215 216 /* INCLUDE_vTaskDelayUntil was replaced by INCLUDE_xTaskDelayUntil. Backward 217 * compatibility is maintained if only one or the other is defined, but 218 * there is a conflict if both are defined. */ 219 #error INCLUDE_vTaskDelayUntil and INCLUDE_xTaskDelayUntil are both defined. INCLUDE_vTaskDelayUntil is no longer required and should be removed 220 #endif 221 #endif 222 223 #ifndef INCLUDE_xTaskDelayUntil 224 #ifdef INCLUDE_vTaskDelayUntil 225 226 /* If INCLUDE_vTaskDelayUntil is set but INCLUDE_xTaskDelayUntil is not then 227 * the project's FreeRTOSConfig.h probably pre-dates the introduction of 228 * xTaskDelayUntil and setting INCLUDE_xTaskDelayUntil to whatever 229 * INCLUDE_vTaskDelayUntil is set to will ensure backward compatibility. 230 */ 231 #define INCLUDE_xTaskDelayUntil INCLUDE_vTaskDelayUntil 232 #endif 233 #endif 234 235 #ifndef INCLUDE_xTaskDelayUntil 236 #define INCLUDE_xTaskDelayUntil 0 237 #endif 238 239 #ifndef INCLUDE_vTaskDelay 240 #define INCLUDE_vTaskDelay 0 241 #endif 242 243 #ifndef INCLUDE_xTaskGetIdleTaskHandle 244 #define INCLUDE_xTaskGetIdleTaskHandle 0 245 #endif 246 247 #ifndef INCLUDE_xTaskAbortDelay 248 #define INCLUDE_xTaskAbortDelay 0 249 #endif 250 251 #ifndef INCLUDE_xQueueGetMutexHolder 252 #define INCLUDE_xQueueGetMutexHolder 0 253 #endif 254 255 #ifndef INCLUDE_xSemaphoreGetMutexHolder 256 #define INCLUDE_xSemaphoreGetMutexHolder INCLUDE_xQueueGetMutexHolder 257 #endif 258 259 #ifndef INCLUDE_xTaskGetHandle 260 #define INCLUDE_xTaskGetHandle 0 261 #endif 262 263 #ifndef INCLUDE_uxTaskGetStackHighWaterMark 264 #define INCLUDE_uxTaskGetStackHighWaterMark 0 265 #endif 266 267 #ifndef INCLUDE_uxTaskGetStackHighWaterMark2 268 #define INCLUDE_uxTaskGetStackHighWaterMark2 0 269 #endif 270 271 #ifndef INCLUDE_eTaskGetState 272 #define INCLUDE_eTaskGetState 0 273 #endif 274 275 #ifndef INCLUDE_xTaskResumeFromISR 276 #define INCLUDE_xTaskResumeFromISR 1 277 #endif 278 279 #ifndef INCLUDE_xTimerPendFunctionCall 280 #define INCLUDE_xTimerPendFunctionCall 0 281 #endif 282 283 #ifndef INCLUDE_xTaskGetSchedulerState 284 #define INCLUDE_xTaskGetSchedulerState 0 285 #endif 286 287 #ifndef INCLUDE_xTaskGetCurrentTaskHandle 288 #define INCLUDE_xTaskGetCurrentTaskHandle 1 289 #endif 290 291 #if configUSE_CO_ROUTINES != 0 292 #ifndef configMAX_CO_ROUTINE_PRIORITIES 293 #error configMAX_CO_ROUTINE_PRIORITIES must be greater than or equal to 1. 294 #endif 295 #endif 296 297 #ifndef configUSE_DAEMON_TASK_STARTUP_HOOK 298 #define configUSE_DAEMON_TASK_STARTUP_HOOK 0 299 #endif 300 301 #ifndef configUSE_APPLICATION_TASK_TAG 302 #define configUSE_APPLICATION_TASK_TAG 0 303 #endif 304 305 #ifndef configNUM_THREAD_LOCAL_STORAGE_POINTERS 306 #define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0 307 #endif 308 309 #ifndef configUSE_RECURSIVE_MUTEXES 310 #define configUSE_RECURSIVE_MUTEXES 0 311 #endif 312 313 #ifndef configUSE_MUTEXES 314 #define configUSE_MUTEXES 0 315 #endif 316 317 #ifndef configUSE_TIMERS 318 #define configUSE_TIMERS 0 319 #endif 320 321 #ifndef configUSE_COUNTING_SEMAPHORES 322 #define configUSE_COUNTING_SEMAPHORES 0 323 #endif 324 325 #ifndef configUSE_TASK_PREEMPTION_DISABLE 326 #define configUSE_TASK_PREEMPTION_DISABLE 0 327 #endif 328 329 #ifndef configUSE_ALTERNATIVE_API 330 #define configUSE_ALTERNATIVE_API 0 331 #endif 332 333 #ifndef portCRITICAL_NESTING_IN_TCB 334 #define portCRITICAL_NESTING_IN_TCB 0 335 #endif 336 337 #ifndef configMAX_TASK_NAME_LEN 338 #define configMAX_TASK_NAME_LEN 16 339 #endif 340 341 #ifndef configIDLE_SHOULD_YIELD 342 #define configIDLE_SHOULD_YIELD 1 343 #endif 344 345 #if configMAX_TASK_NAME_LEN < 1 346 #error configMAX_TASK_NAME_LEN must be set to a minimum of 1 in FreeRTOSConfig.h 347 #endif 348 349 #ifndef configASSERT 350 #define configASSERT( x ) 351 #define configASSERT_DEFINED 0 352 #else 353 #define configASSERT_DEFINED 1 354 #endif 355 356 /* configPRECONDITION should be defined as configASSERT. 357 * The CBMC proofs need a way to track assumptions and assertions. 358 * A configPRECONDITION statement should express an implicit invariant or 359 * assumption made. A configASSERT statement should express an invariant that must 360 * hold explicit before calling the code. */ 361 #ifndef configPRECONDITION 362 #define configPRECONDITION( X ) configASSERT( X ) 363 #define configPRECONDITION_DEFINED 0 364 #else 365 #define configPRECONDITION_DEFINED 1 366 #endif 367 368 #ifndef configCHECK_HANDLER_INSTALLATION 369 #define configCHECK_HANDLER_INSTALLATION 1 370 #else 371 372 /* The application has explicitly defined configCHECK_HANDLER_INSTALLATION 373 * to 1. The checks requires configASSERT() to be defined. */ 374 #if ( ( configCHECK_HANDLER_INSTALLATION == 1 ) && ( configASSERT_DEFINED == 0 ) ) 375 #error You must define configASSERT() when configCHECK_HANDLER_INSTALLATION is 1. 376 #endif 377 #endif 378 379 #ifndef portMEMORY_BARRIER 380 #define portMEMORY_BARRIER() 381 #endif 382 383 #ifndef portSOFTWARE_BARRIER 384 #define portSOFTWARE_BARRIER() 385 #endif 386 387 #ifndef configRUN_MULTIPLE_PRIORITIES 388 #define configRUN_MULTIPLE_PRIORITIES 0 389 #endif 390 391 #ifndef portGET_CORE_ID 392 393 #if ( configNUMBER_OF_CORES == 1 ) 394 #define portGET_CORE_ID() 0 395 #else 396 #error configNUMBER_OF_CORES is set to more than 1 then portGET_CORE_ID must also be defined. 397 #endif /* configNUMBER_OF_CORES */ 398 399 #endif /* portGET_CORE_ID */ 400 401 #ifndef portYIELD_CORE 402 403 #if ( configNUMBER_OF_CORES == 1 ) 404 #define portYIELD_CORE( x ) portYIELD() 405 #else 406 #error configNUMBER_OF_CORES is set to more than 1 then portYIELD_CORE must also be defined. 407 #endif /* configNUMBER_OF_CORES */ 408 409 #endif /* portYIELD_CORE */ 410 411 #ifndef portSET_INTERRUPT_MASK 412 413 #if ( configNUMBER_OF_CORES > 1 ) 414 #error portSET_INTERRUPT_MASK is required in SMP 415 #endif 416 417 #endif /* portSET_INTERRUPT_MASK */ 418 419 #ifndef portCLEAR_INTERRUPT_MASK 420 421 #if ( configNUMBER_OF_CORES > 1 ) 422 #error portCLEAR_INTERRUPT_MASK is required in SMP 423 #endif 424 425 #endif /* portCLEAR_INTERRUPT_MASK */ 426 427 #ifndef portRELEASE_TASK_LOCK 428 429 #if ( configNUMBER_OF_CORES == 1 ) 430 #define portRELEASE_TASK_LOCK() 431 #else 432 #error portRELEASE_TASK_LOCK is required in SMP 433 #endif 434 435 #endif /* portRELEASE_TASK_LOCK */ 436 437 #ifndef portGET_TASK_LOCK 438 439 #if ( configNUMBER_OF_CORES == 1 ) 440 #define portGET_TASK_LOCK() 441 #else 442 #error portGET_TASK_LOCK is required in SMP 443 #endif 444 445 #endif /* portGET_TASK_LOCK */ 446 447 #ifndef portRELEASE_ISR_LOCK 448 449 #if ( configNUMBER_OF_CORES == 1 ) 450 #define portRELEASE_ISR_LOCK() 451 #else 452 #error portRELEASE_ISR_LOCK is required in SMP 453 #endif 454 455 #endif /* portRELEASE_ISR_LOCK */ 456 457 #ifndef portGET_ISR_LOCK 458 459 #if ( configNUMBER_OF_CORES == 1 ) 460 #define portGET_ISR_LOCK() 461 #else 462 #error portGET_ISR_LOCK is required in SMP 463 #endif 464 465 #endif /* portGET_ISR_LOCK */ 466 467 #ifndef portENTER_CRITICAL_FROM_ISR 468 469 #if ( configNUMBER_OF_CORES > 1 ) 470 #error portENTER_CRITICAL_FROM_ISR is required in SMP 471 #endif 472 473 #endif 474 475 #ifndef portEXIT_CRITICAL_FROM_ISR 476 477 #if ( configNUMBER_OF_CORES > 1 ) 478 #error portEXIT_CRITICAL_FROM_ISR is required in SMP 479 #endif 480 481 #endif 482 483 #ifndef configUSE_CORE_AFFINITY 484 #define configUSE_CORE_AFFINITY 0 485 #endif /* configUSE_CORE_AFFINITY */ 486 487 #ifndef configUSE_PASSIVE_IDLE_HOOK 488 #define configUSE_PASSIVE_IDLE_HOOK 0 489 #endif /* configUSE_PASSIVE_IDLE_HOOK */ 490 491 /* The timers module relies on xTaskGetSchedulerState(). */ 492 #if configUSE_TIMERS == 1 493 494 #ifndef configTIMER_TASK_PRIORITY 495 #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_PRIORITY must also be defined. 496 #endif /* configTIMER_TASK_PRIORITY */ 497 498 #ifndef configTIMER_QUEUE_LENGTH 499 #error If configUSE_TIMERS is set to 1 then configTIMER_QUEUE_LENGTH must also be defined. 500 #endif /* configTIMER_QUEUE_LENGTH */ 501 502 #ifndef configTIMER_TASK_STACK_DEPTH 503 #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_STACK_DEPTH must also be defined. 504 #endif /* configTIMER_TASK_STACK_DEPTH */ 505 506 #ifndef portTIMER_CALLBACK_ATTRIBUTE 507 #define portTIMER_CALLBACK_ATTRIBUTE 508 #endif /* portTIMER_CALLBACK_ATTRIBUTE */ 509 510 #endif /* configUSE_TIMERS */ 511 512 #ifndef portSET_INTERRUPT_MASK_FROM_ISR 513 #define portSET_INTERRUPT_MASK_FROM_ISR() 0 514 #endif 515 516 #ifndef portCLEAR_INTERRUPT_MASK_FROM_ISR 517 #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue ) ( void ) ( uxSavedStatusValue ) 518 #endif 519 520 #ifndef portCLEAN_UP_TCB 521 #define portCLEAN_UP_TCB( pxTCB ) ( void ) ( pxTCB ) 522 #endif 523 524 #ifndef portPRE_TASK_DELETE_HOOK 525 #define portPRE_TASK_DELETE_HOOK( pvTaskToDelete, pxYieldPending ) 526 #endif 527 528 #ifndef portSETUP_TCB 529 #define portSETUP_TCB( pxTCB ) ( void ) ( pxTCB ) 530 #endif 531 532 #ifndef portTASK_SWITCH_HOOK 533 #define portTASK_SWITCH_HOOK( pxTCB ) ( void ) ( pxTCB ) 534 #endif 535 536 #ifndef configQUEUE_REGISTRY_SIZE 537 #define configQUEUE_REGISTRY_SIZE 0U 538 #endif 539 540 #if ( configQUEUE_REGISTRY_SIZE < 1 ) 541 #define vQueueAddToRegistry( xQueue, pcName ) 542 #define vQueueUnregisterQueue( xQueue ) 543 #define pcQueueGetName( xQueue ) 544 #endif 545 546 #ifndef configUSE_MINI_LIST_ITEM 547 #define configUSE_MINI_LIST_ITEM 1 548 #endif 549 550 #ifndef portPOINTER_SIZE_TYPE 551 #define portPOINTER_SIZE_TYPE uint32_t 552 #endif 553 554 /* Remove any unused trace macros. */ 555 #ifndef traceSTART 556 557 /* Used to perform any necessary initialisation - for example, open a file 558 * into which trace is to be written. */ 559 #define traceSTART() 560 #endif 561 562 #ifndef traceEND 563 564 /* Use to close a trace, for example close a file into which trace has been 565 * written. */ 566 #define traceEND() 567 #endif 568 569 #ifndef traceTASK_SWITCHED_IN 570 571 /* Called after a task has been selected to run. pxCurrentTCB holds a pointer 572 * to the task control block of the selected task. */ 573 #define traceTASK_SWITCHED_IN() 574 #endif 575 576 #ifndef traceINCREASE_TICK_COUNT 577 578 /* Called before stepping the tick count after waking from tickless idle 579 * sleep. */ 580 #define traceINCREASE_TICK_COUNT( x ) 581 #endif 582 583 #ifndef traceLOW_POWER_IDLE_BEGIN 584 /* Called immediately before entering tickless idle. */ 585 #define traceLOW_POWER_IDLE_BEGIN() 586 #endif 587 588 #ifndef traceLOW_POWER_IDLE_END 589 /* Called when returning to the Idle task after a tickless idle. */ 590 #define traceLOW_POWER_IDLE_END() 591 #endif 592 593 #ifndef traceTASK_SWITCHED_OUT 594 595 /* Called before a task has been selected to run. pxCurrentTCB holds a pointer 596 * to the task control block of the task being switched out. */ 597 #define traceTASK_SWITCHED_OUT() 598 #endif 599 600 #ifndef traceTASK_PRIORITY_INHERIT 601 602 /* Called when a task attempts to take a mutex that is already held by a 603 * lower priority task. pxTCBOfMutexHolder is a pointer to the TCB of the task 604 * that holds the mutex. uxInheritedPriority is the priority the mutex holder 605 * will inherit (the priority of the task that is attempting to obtain the 606 * muted. */ 607 #define traceTASK_PRIORITY_INHERIT( pxTCBOfMutexHolder, uxInheritedPriority ) 608 #endif 609 610 #ifndef traceTASK_PRIORITY_DISINHERIT 611 612 /* Called when a task releases a mutex, the holding of which had resulted in 613 * the task inheriting the priority of a higher priority task. 614 * pxTCBOfMutexHolder is a pointer to the TCB of the task that is releasing the 615 * mutex. uxOriginalPriority is the task's configured (base) priority. */ 616 #define traceTASK_PRIORITY_DISINHERIT( pxTCBOfMutexHolder, uxOriginalPriority ) 617 #endif 618 619 #ifndef traceBLOCKING_ON_QUEUE_RECEIVE 620 621 /* Task is about to block because it cannot read from a 622 * queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore 623 * upon which the read was attempted. pxCurrentTCB points to the TCB of the 624 * task that attempted the read. */ 625 #define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ) 626 #endif 627 628 #ifndef traceBLOCKING_ON_QUEUE_PEEK 629 630 /* Task is about to block because it cannot read from a 631 * queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore 632 * upon which the read was attempted. pxCurrentTCB points to the TCB of the 633 * task that attempted the read. */ 634 #define traceBLOCKING_ON_QUEUE_PEEK( pxQueue ) 635 #endif 636 637 #ifndef traceBLOCKING_ON_QUEUE_SEND 638 639 /* Task is about to block because it cannot write to a 640 * queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore 641 * upon which the write was attempted. pxCurrentTCB points to the TCB of the 642 * task that attempted the write. */ 643 #define traceBLOCKING_ON_QUEUE_SEND( pxQueue ) 644 #endif 645 646 #ifndef configCHECK_FOR_STACK_OVERFLOW 647 #define configCHECK_FOR_STACK_OVERFLOW 0 648 #endif 649 650 #ifndef configRECORD_STACK_HIGH_ADDRESS 651 #define configRECORD_STACK_HIGH_ADDRESS 0 652 #endif 653 654 #ifndef configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H 655 #define configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H 0 656 #endif 657 658 /* The following event macros are embedded in the kernel API calls. */ 659 660 #ifndef traceMOVED_TASK_TO_READY_STATE 661 #define traceMOVED_TASK_TO_READY_STATE( pxTCB ) 662 #endif 663 664 #ifndef tracePOST_MOVED_TASK_TO_READY_STATE 665 #define tracePOST_MOVED_TASK_TO_READY_STATE( pxTCB ) 666 #endif 667 668 #ifndef traceMOVED_TASK_TO_DELAYED_LIST 669 #define traceMOVED_TASK_TO_DELAYED_LIST() 670 #endif 671 672 #ifndef traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST 673 #define traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST() 674 #endif 675 676 #ifndef traceQUEUE_CREATE 677 #define traceQUEUE_CREATE( pxNewQueue ) 678 #endif 679 680 #ifndef traceQUEUE_CREATE_FAILED 681 #define traceQUEUE_CREATE_FAILED( ucQueueType ) 682 #endif 683 684 #ifndef traceCREATE_MUTEX 685 #define traceCREATE_MUTEX( pxNewQueue ) 686 #endif 687 688 #ifndef traceCREATE_MUTEX_FAILED 689 #define traceCREATE_MUTEX_FAILED() 690 #endif 691 692 #ifndef traceGIVE_MUTEX_RECURSIVE 693 #define traceGIVE_MUTEX_RECURSIVE( pxMutex ) 694 #endif 695 696 #ifndef traceGIVE_MUTEX_RECURSIVE_FAILED 697 #define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ) 698 #endif 699 700 #ifndef traceTAKE_MUTEX_RECURSIVE 701 #define traceTAKE_MUTEX_RECURSIVE( pxMutex ) 702 #endif 703 704 #ifndef traceTAKE_MUTEX_RECURSIVE_FAILED 705 #define traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex ) 706 #endif 707 708 #ifndef traceCREATE_COUNTING_SEMAPHORE 709 #define traceCREATE_COUNTING_SEMAPHORE() 710 #endif 711 712 #ifndef traceCREATE_COUNTING_SEMAPHORE_FAILED 713 #define traceCREATE_COUNTING_SEMAPHORE_FAILED() 714 #endif 715 716 #ifndef traceQUEUE_SET_SEND 717 #define traceQUEUE_SET_SEND traceQUEUE_SEND 718 #endif 719 720 #ifndef traceQUEUE_SEND 721 #define traceQUEUE_SEND( pxQueue ) 722 #endif 723 724 #ifndef traceQUEUE_SEND_FAILED 725 #define traceQUEUE_SEND_FAILED( pxQueue ) 726 #endif 727 728 #ifndef traceQUEUE_RECEIVE 729 #define traceQUEUE_RECEIVE( pxQueue ) 730 #endif 731 732 #ifndef traceQUEUE_PEEK 733 #define traceQUEUE_PEEK( pxQueue ) 734 #endif 735 736 #ifndef traceQUEUE_PEEK_FAILED 737 #define traceQUEUE_PEEK_FAILED( pxQueue ) 738 #endif 739 740 #ifndef traceQUEUE_PEEK_FROM_ISR 741 #define traceQUEUE_PEEK_FROM_ISR( pxQueue ) 742 #endif 743 744 #ifndef traceQUEUE_RECEIVE_FAILED 745 #define traceQUEUE_RECEIVE_FAILED( pxQueue ) 746 #endif 747 748 #ifndef traceQUEUE_SEND_FROM_ISR 749 #define traceQUEUE_SEND_FROM_ISR( pxQueue ) 750 #endif 751 752 #ifndef traceQUEUE_SEND_FROM_ISR_FAILED 753 #define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) 754 #endif 755 756 #ifndef traceQUEUE_RECEIVE_FROM_ISR 757 #define traceQUEUE_RECEIVE_FROM_ISR( pxQueue ) 758 #endif 759 760 #ifndef traceQUEUE_RECEIVE_FROM_ISR_FAILED 761 #define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ) 762 #endif 763 764 #ifndef traceQUEUE_PEEK_FROM_ISR_FAILED 765 #define traceQUEUE_PEEK_FROM_ISR_FAILED( pxQueue ) 766 #endif 767 768 #ifndef traceQUEUE_DELETE 769 #define traceQUEUE_DELETE( pxQueue ) 770 #endif 771 772 #ifndef traceTASK_CREATE 773 #define traceTASK_CREATE( pxNewTCB ) 774 #endif 775 776 #ifndef traceTASK_CREATE_FAILED 777 #define traceTASK_CREATE_FAILED() 778 #endif 779 780 #ifndef traceTASK_DELETE 781 #define traceTASK_DELETE( pxTaskToDelete ) 782 #endif 783 784 #ifndef traceTASK_DELAY_UNTIL 785 #define traceTASK_DELAY_UNTIL( x ) 786 #endif 787 788 #ifndef traceTASK_DELAY 789 #define traceTASK_DELAY() 790 #endif 791 792 #ifndef traceTASK_PRIORITY_SET 793 #define traceTASK_PRIORITY_SET( pxTask, uxNewPriority ) 794 #endif 795 796 #ifndef traceTASK_SUSPEND 797 #define traceTASK_SUSPEND( pxTaskToSuspend ) 798 #endif 799 800 #ifndef traceTASK_RESUME 801 #define traceTASK_RESUME( pxTaskToResume ) 802 #endif 803 804 #ifndef traceTASK_RESUME_FROM_ISR 805 #define traceTASK_RESUME_FROM_ISR( pxTaskToResume ) 806 #endif 807 808 #ifndef traceTASK_INCREMENT_TICK 809 #define traceTASK_INCREMENT_TICK( xTickCount ) 810 #endif 811 812 #ifndef traceTIMER_CREATE 813 #define traceTIMER_CREATE( pxNewTimer ) 814 #endif 815 816 #ifndef traceTIMER_CREATE_FAILED 817 #define traceTIMER_CREATE_FAILED() 818 #endif 819 820 #ifndef traceTIMER_COMMAND_SEND 821 #define traceTIMER_COMMAND_SEND( xTimer, xMessageID, xMessageValueValue, xReturn ) 822 #endif 823 824 #ifndef traceTIMER_EXPIRED 825 #define traceTIMER_EXPIRED( pxTimer ) 826 #endif 827 828 #ifndef traceTIMER_COMMAND_RECEIVED 829 #define traceTIMER_COMMAND_RECEIVED( pxTimer, xMessageID, xMessageValue ) 830 #endif 831 832 #ifndef traceMALLOC 833 #define traceMALLOC( pvAddress, uiSize ) 834 #endif 835 836 #ifndef traceFREE 837 #define traceFREE( pvAddress, uiSize ) 838 #endif 839 840 #ifndef traceEVENT_GROUP_CREATE 841 #define traceEVENT_GROUP_CREATE( xEventGroup ) 842 #endif 843 844 #ifndef traceEVENT_GROUP_CREATE_FAILED 845 #define traceEVENT_GROUP_CREATE_FAILED() 846 #endif 847 848 #ifndef traceEVENT_GROUP_SYNC_BLOCK 849 #define traceEVENT_GROUP_SYNC_BLOCK( xEventGroup, uxBitsToSet, uxBitsToWaitFor ) 850 #endif 851 852 #ifndef traceEVENT_GROUP_SYNC_END 853 #define traceEVENT_GROUP_SYNC_END( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) ( xTimeoutOccurred ) 854 #endif 855 856 #ifndef traceEVENT_GROUP_WAIT_BITS_BLOCK 857 #define traceEVENT_GROUP_WAIT_BITS_BLOCK( xEventGroup, uxBitsToWaitFor ) 858 #endif 859 860 #ifndef traceEVENT_GROUP_WAIT_BITS_END 861 #define traceEVENT_GROUP_WAIT_BITS_END( xEventGroup, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) ( xTimeoutOccurred ) 862 #endif 863 864 #ifndef traceEVENT_GROUP_CLEAR_BITS 865 #define traceEVENT_GROUP_CLEAR_BITS( xEventGroup, uxBitsToClear ) 866 #endif 867 868 #ifndef traceEVENT_GROUP_CLEAR_BITS_FROM_ISR 869 #define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR( xEventGroup, uxBitsToClear ) 870 #endif 871 872 #ifndef traceEVENT_GROUP_SET_BITS 873 #define traceEVENT_GROUP_SET_BITS( xEventGroup, uxBitsToSet ) 874 #endif 875 876 #ifndef traceEVENT_GROUP_SET_BITS_FROM_ISR 877 #define traceEVENT_GROUP_SET_BITS_FROM_ISR( xEventGroup, uxBitsToSet ) 878 #endif 879 880 #ifndef traceEVENT_GROUP_DELETE 881 #define traceEVENT_GROUP_DELETE( xEventGroup ) 882 #endif 883 884 #ifndef tracePEND_FUNC_CALL 885 #define tracePEND_FUNC_CALL( xFunctionToPend, pvParameter1, ulParameter2, ret ) 886 #endif 887 888 #ifndef tracePEND_FUNC_CALL_FROM_ISR 889 #define tracePEND_FUNC_CALL_FROM_ISR( xFunctionToPend, pvParameter1, ulParameter2, ret ) 890 #endif 891 892 #ifndef traceQUEUE_REGISTRY_ADD 893 #define traceQUEUE_REGISTRY_ADD( xQueue, pcQueueName ) 894 #endif 895 896 #ifndef traceTASK_NOTIFY_TAKE_BLOCK 897 #define traceTASK_NOTIFY_TAKE_BLOCK( uxIndexToWait ) 898 #endif 899 900 #ifndef traceTASK_NOTIFY_TAKE 901 #define traceTASK_NOTIFY_TAKE( uxIndexToWait ) 902 #endif 903 904 #ifndef traceTASK_NOTIFY_WAIT_BLOCK 905 #define traceTASK_NOTIFY_WAIT_BLOCK( uxIndexToWait ) 906 #endif 907 908 #ifndef traceTASK_NOTIFY_WAIT 909 #define traceTASK_NOTIFY_WAIT( uxIndexToWait ) 910 #endif 911 912 #ifndef traceTASK_NOTIFY 913 #define traceTASK_NOTIFY( uxIndexToNotify ) 914 #endif 915 916 #ifndef traceTASK_NOTIFY_FROM_ISR 917 #define traceTASK_NOTIFY_FROM_ISR( uxIndexToNotify ) 918 #endif 919 920 #ifndef traceTASK_NOTIFY_GIVE_FROM_ISR 921 #define traceTASK_NOTIFY_GIVE_FROM_ISR( uxIndexToNotify ) 922 #endif 923 924 #ifndef traceISR_EXIT_TO_SCHEDULER 925 #define traceISR_EXIT_TO_SCHEDULER() 926 #endif 927 928 #ifndef traceISR_EXIT 929 #define traceISR_EXIT() 930 #endif 931 932 #ifndef traceISR_ENTER 933 #define traceISR_ENTER() 934 #endif 935 936 #ifndef traceSTREAM_BUFFER_CREATE_FAILED 937 #define traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer ) 938 #endif 939 940 #ifndef traceSTREAM_BUFFER_CREATE_STATIC_FAILED 941 #define traceSTREAM_BUFFER_CREATE_STATIC_FAILED( xReturn, xIsMessageBuffer ) 942 #endif 943 944 #ifndef traceSTREAM_BUFFER_CREATE 945 #define traceSTREAM_BUFFER_CREATE( pxStreamBuffer, xIsMessageBuffer ) 946 #endif 947 948 #ifndef traceSTREAM_BUFFER_DELETE 949 #define traceSTREAM_BUFFER_DELETE( xStreamBuffer ) 950 #endif 951 952 #ifndef traceSTREAM_BUFFER_RESET 953 #define traceSTREAM_BUFFER_RESET( xStreamBuffer ) 954 #endif 955 956 #ifndef traceBLOCKING_ON_STREAM_BUFFER_SEND 957 #define traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer ) 958 #endif 959 960 #ifndef traceSTREAM_BUFFER_SEND 961 #define traceSTREAM_BUFFER_SEND( xStreamBuffer, xBytesSent ) 962 #endif 963 964 #ifndef traceSTREAM_BUFFER_SEND_FAILED 965 #define traceSTREAM_BUFFER_SEND_FAILED( xStreamBuffer ) 966 #endif 967 968 #ifndef traceSTREAM_BUFFER_SEND_FROM_ISR 969 #define traceSTREAM_BUFFER_SEND_FROM_ISR( xStreamBuffer, xBytesSent ) 970 #endif 971 972 #ifndef traceBLOCKING_ON_STREAM_BUFFER_RECEIVE 973 #define traceBLOCKING_ON_STREAM_BUFFER_RECEIVE( xStreamBuffer ) 974 #endif 975 976 #ifndef traceSTREAM_BUFFER_RECEIVE 977 #define traceSTREAM_BUFFER_RECEIVE( xStreamBuffer, xReceivedLength ) 978 #endif 979 980 #ifndef traceSTREAM_BUFFER_RECEIVE_FAILED 981 #define traceSTREAM_BUFFER_RECEIVE_FAILED( xStreamBuffer ) 982 #endif 983 984 #ifndef traceSTREAM_BUFFER_RECEIVE_FROM_ISR 985 #define traceSTREAM_BUFFER_RECEIVE_FROM_ISR( xStreamBuffer, xReceivedLength ) 986 #endif 987 988 #ifndef traceENTER_xEventGroupCreateStatic 989 #define traceENTER_xEventGroupCreateStatic( pxEventGroupBuffer ) 990 #endif 991 992 #ifndef traceRETURN_xEventGroupCreateStatic 993 #define traceRETURN_xEventGroupCreateStatic( pxEventBits ) 994 #endif 995 996 #ifndef traceENTER_xEventGroupCreate 997 #define traceENTER_xEventGroupCreate() 998 #endif 999 1000 #ifndef traceRETURN_xEventGroupCreate 1001 #define traceRETURN_xEventGroupCreate( pxEventBits ) 1002 #endif 1003 1004 #ifndef traceENTER_xEventGroupSync 1005 #define traceENTER_xEventGroupSync( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTicksToWait ) 1006 #endif 1007 1008 #ifndef traceRETURN_xEventGroupSync 1009 #define traceRETURN_xEventGroupSync( uxReturn ) 1010 #endif 1011 1012 #ifndef traceENTER_xEventGroupWaitBits 1013 #define traceENTER_xEventGroupWaitBits( xEventGroup, uxBitsToWaitFor, xClearOnExit, xWaitForAllBits, xTicksToWait ) 1014 #endif 1015 1016 #ifndef traceRETURN_xEventGroupWaitBits 1017 #define traceRETURN_xEventGroupWaitBits( uxReturn ) 1018 #endif 1019 1020 #ifndef traceENTER_xEventGroupClearBits 1021 #define traceENTER_xEventGroupClearBits( xEventGroup, uxBitsToClear ) 1022 #endif 1023 1024 #ifndef traceRETURN_xEventGroupClearBits 1025 #define traceRETURN_xEventGroupClearBits( uxReturn ) 1026 #endif 1027 1028 #ifndef traceENTER_xEventGroupClearBitsFromISR 1029 #define traceENTER_xEventGroupClearBitsFromISR( xEventGroup, uxBitsToClear ) 1030 #endif 1031 1032 #ifndef traceRETURN_xEventGroupClearBitsFromISR 1033 #define traceRETURN_xEventGroupClearBitsFromISR( xReturn ) 1034 #endif 1035 1036 #ifndef traceENTER_xEventGroupGetBitsFromISR 1037 #define traceENTER_xEventGroupGetBitsFromISR( xEventGroup ) 1038 #endif 1039 1040 #ifndef traceRETURN_xEventGroupGetBitsFromISR 1041 #define traceRETURN_xEventGroupGetBitsFromISR( uxReturn ) 1042 #endif 1043 1044 #ifndef traceENTER_xEventGroupSetBits 1045 #define traceENTER_xEventGroupSetBits( xEventGroup, uxBitsToSet ) 1046 #endif 1047 1048 #ifndef traceRETURN_xEventGroupSetBits 1049 #define traceRETURN_xEventGroupSetBits( uxEventBits ) 1050 #endif 1051 1052 #ifndef traceENTER_vEventGroupDelete 1053 #define traceENTER_vEventGroupDelete( xEventGroup ) 1054 #endif 1055 1056 #ifndef traceRETURN_vEventGroupDelete 1057 #define traceRETURN_vEventGroupDelete() 1058 #endif 1059 1060 #ifndef traceENTER_xEventGroupGetStaticBuffer 1061 #define traceENTER_xEventGroupGetStaticBuffer( xEventGroup, ppxEventGroupBuffer ) 1062 #endif 1063 1064 #ifndef traceRETURN_xEventGroupGetStaticBuffer 1065 #define traceRETURN_xEventGroupGetStaticBuffer( xReturn ) 1066 #endif 1067 1068 #ifndef traceENTER_vEventGroupSetBitsCallback 1069 #define traceENTER_vEventGroupSetBitsCallback( pvEventGroup, ulBitsToSet ) 1070 #endif 1071 1072 #ifndef traceRETURN_vEventGroupSetBitsCallback 1073 #define traceRETURN_vEventGroupSetBitsCallback() 1074 #endif 1075 1076 #ifndef traceENTER_vEventGroupClearBitsCallback 1077 #define traceENTER_vEventGroupClearBitsCallback( pvEventGroup, ulBitsToClear ) 1078 #endif 1079 1080 #ifndef traceRETURN_vEventGroupClearBitsCallback 1081 #define traceRETURN_vEventGroupClearBitsCallback() 1082 #endif 1083 1084 #ifndef traceENTER_xEventGroupSetBitsFromISR 1085 #define traceENTER_xEventGroupSetBitsFromISR( xEventGroup, uxBitsToSet, pxHigherPriorityTaskWoken ) 1086 #endif 1087 1088 #ifndef traceRETURN_xEventGroupSetBitsFromISR 1089 #define traceRETURN_xEventGroupSetBitsFromISR( xReturn ) 1090 #endif 1091 1092 #ifndef traceENTER_uxEventGroupGetNumber 1093 #define traceENTER_uxEventGroupGetNumber( xEventGroup ) 1094 #endif 1095 1096 #ifndef traceRETURN_uxEventGroupGetNumber 1097 #define traceRETURN_uxEventGroupGetNumber( xReturn ) 1098 #endif 1099 1100 #ifndef traceENTER_vEventGroupSetNumber 1101 #define traceENTER_vEventGroupSetNumber( xEventGroup, uxEventGroupNumber ) 1102 #endif 1103 1104 #ifndef traceRETURN_vEventGroupSetNumber 1105 #define traceRETURN_vEventGroupSetNumber() 1106 #endif 1107 1108 #ifndef traceENTER_xQueueGenericReset 1109 #define traceENTER_xQueueGenericReset( xQueue, xNewQueue ) 1110 #endif 1111 1112 #ifndef traceRETURN_xQueueGenericReset 1113 #define traceRETURN_xQueueGenericReset( xReturn ) 1114 #endif 1115 1116 #ifndef traceENTER_xQueueGenericCreateStatic 1117 #define traceENTER_xQueueGenericCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxStaticQueue, ucQueueType ) 1118 #endif 1119 1120 #ifndef traceRETURN_xQueueGenericCreateStatic 1121 #define traceRETURN_xQueueGenericCreateStatic( pxNewQueue ) 1122 #endif 1123 1124 #ifndef traceENTER_xQueueGenericGetStaticBuffers 1125 #define traceENTER_xQueueGenericGetStaticBuffers( xQueue, ppucQueueStorage, ppxStaticQueue ) 1126 #endif 1127 1128 #ifndef traceRETURN_xQueueGenericGetStaticBuffers 1129 #define traceRETURN_xQueueGenericGetStaticBuffers( xReturn ) 1130 #endif 1131 1132 #ifndef traceENTER_xQueueGenericCreate 1133 #define traceENTER_xQueueGenericCreate( uxQueueLength, uxItemSize, ucQueueType ) 1134 #endif 1135 1136 #ifndef traceRETURN_xQueueGenericCreate 1137 #define traceRETURN_xQueueGenericCreate( pxNewQueue ) 1138 #endif 1139 1140 #ifndef traceENTER_xQueueCreateMutex 1141 #define traceENTER_xQueueCreateMutex( ucQueueType ) 1142 #endif 1143 1144 #ifndef traceRETURN_xQueueCreateMutex 1145 #define traceRETURN_xQueueCreateMutex( xNewQueue ) 1146 #endif 1147 1148 #ifndef traceENTER_xQueueCreateMutexStatic 1149 #define traceENTER_xQueueCreateMutexStatic( ucQueueType, pxStaticQueue ) 1150 #endif 1151 1152 #ifndef traceRETURN_xQueueCreateMutexStatic 1153 #define traceRETURN_xQueueCreateMutexStatic( xNewQueue ) 1154 #endif 1155 1156 #ifndef traceENTER_xQueueGetMutexHolder 1157 #define traceENTER_xQueueGetMutexHolder( xSemaphore ) 1158 #endif 1159 1160 #ifndef traceRETURN_xQueueGetMutexHolder 1161 #define traceRETURN_xQueueGetMutexHolder( pxReturn ) 1162 #endif 1163 1164 #ifndef traceENTER_xQueueGetMutexHolderFromISR 1165 #define traceENTER_xQueueGetMutexHolderFromISR( xSemaphore ) 1166 #endif 1167 1168 #ifndef traceRETURN_xQueueGetMutexHolderFromISR 1169 #define traceRETURN_xQueueGetMutexHolderFromISR( pxReturn ) 1170 #endif 1171 1172 #ifndef traceENTER_xQueueGiveMutexRecursive 1173 #define traceENTER_xQueueGiveMutexRecursive( xMutex ) 1174 #endif 1175 1176 #ifndef traceRETURN_xQueueGiveMutexRecursive 1177 #define traceRETURN_xQueueGiveMutexRecursive( xReturn ) 1178 #endif 1179 1180 #ifndef traceENTER_xQueueTakeMutexRecursive 1181 #define traceENTER_xQueueTakeMutexRecursive( xMutex, xTicksToWait ) 1182 #endif 1183 1184 #ifndef traceRETURN_xQueueTakeMutexRecursive 1185 #define traceRETURN_xQueueTakeMutexRecursive( xReturn ) 1186 #endif 1187 1188 #ifndef traceENTER_xQueueCreateCountingSemaphoreStatic 1189 #define traceENTER_xQueueCreateCountingSemaphoreStatic( uxMaxCount, uxInitialCount, pxStaticQueue ) 1190 #endif 1191 1192 #ifndef traceRETURN_xQueueCreateCountingSemaphoreStatic 1193 #define traceRETURN_xQueueCreateCountingSemaphoreStatic( xHandle ) 1194 #endif 1195 1196 #ifndef traceENTER_xQueueCreateCountingSemaphore 1197 #define traceENTER_xQueueCreateCountingSemaphore( uxMaxCount, uxInitialCount ) 1198 #endif 1199 1200 #ifndef traceRETURN_xQueueCreateCountingSemaphore 1201 #define traceRETURN_xQueueCreateCountingSemaphore( xHandle ) 1202 #endif 1203 1204 #ifndef traceENTER_xQueueGenericSend 1205 #define traceENTER_xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, xCopyPosition ) 1206 #endif 1207 1208 #ifndef traceRETURN_xQueueGenericSend 1209 #define traceRETURN_xQueueGenericSend( xReturn ) 1210 #endif 1211 1212 #ifndef traceENTER_xQueueGenericSendFromISR 1213 #define traceENTER_xQueueGenericSendFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken, xCopyPosition ) 1214 #endif 1215 1216 #ifndef traceRETURN_xQueueGenericSendFromISR 1217 #define traceRETURN_xQueueGenericSendFromISR( xReturn ) 1218 #endif 1219 1220 #ifndef traceENTER_xQueueGiveFromISR 1221 #define traceENTER_xQueueGiveFromISR( xQueue, pxHigherPriorityTaskWoken ) 1222 #endif 1223 1224 #ifndef traceRETURN_xQueueGiveFromISR 1225 #define traceRETURN_xQueueGiveFromISR( xReturn ) 1226 #endif 1227 1228 #ifndef traceENTER_xQueueReceive 1229 #define traceENTER_xQueueReceive( xQueue, pvBuffer, xTicksToWait ) 1230 #endif 1231 1232 #ifndef traceRETURN_xQueueReceive 1233 #define traceRETURN_xQueueReceive( xReturn ) 1234 #endif 1235 1236 #ifndef traceENTER_xQueueSemaphoreTake 1237 #define traceENTER_xQueueSemaphoreTake( xQueue, xTicksToWait ) 1238 #endif 1239 1240 #ifndef traceRETURN_xQueueSemaphoreTake 1241 #define traceRETURN_xQueueSemaphoreTake( xReturn ) 1242 #endif 1243 1244 #ifndef traceENTER_xQueuePeek 1245 #define traceENTER_xQueuePeek( xQueue, pvBuffer, xTicksToWait ) 1246 #endif 1247 1248 #ifndef traceRETURN_xQueuePeek 1249 #define traceRETURN_xQueuePeek( xReturn ) 1250 #endif 1251 1252 #ifndef traceENTER_xQueueReceiveFromISR 1253 #define traceENTER_xQueueReceiveFromISR( xQueue, pvBuffer, pxHigherPriorityTaskWoken ) 1254 #endif 1255 1256 #ifndef traceRETURN_xQueueReceiveFromISR 1257 #define traceRETURN_xQueueReceiveFromISR( xReturn ) 1258 #endif 1259 1260 #ifndef traceENTER_xQueuePeekFromISR 1261 #define traceENTER_xQueuePeekFromISR( xQueue, pvBuffer ) 1262 #endif 1263 1264 #ifndef traceRETURN_xQueuePeekFromISR 1265 #define traceRETURN_xQueuePeekFromISR( xReturn ) 1266 #endif 1267 1268 #ifndef traceENTER_uxQueueMessagesWaiting 1269 #define traceENTER_uxQueueMessagesWaiting( xQueue ) 1270 #endif 1271 1272 #ifndef traceRETURN_uxQueueMessagesWaiting 1273 #define traceRETURN_uxQueueMessagesWaiting( uxReturn ) 1274 #endif 1275 1276 #ifndef traceENTER_uxQueueSpacesAvailable 1277 #define traceENTER_uxQueueSpacesAvailable( xQueue ) 1278 #endif 1279 1280 #ifndef traceRETURN_uxQueueSpacesAvailable 1281 #define traceRETURN_uxQueueSpacesAvailable( uxReturn ) 1282 #endif 1283 1284 #ifndef traceENTER_uxQueueMessagesWaitingFromISR 1285 #define traceENTER_uxQueueMessagesWaitingFromISR( xQueue ) 1286 #endif 1287 1288 #ifndef traceRETURN_uxQueueMessagesWaitingFromISR 1289 #define traceRETURN_uxQueueMessagesWaitingFromISR( uxReturn ) 1290 #endif 1291 1292 #ifndef traceENTER_vQueueDelete 1293 #define traceENTER_vQueueDelete( xQueue ) 1294 #endif 1295 1296 #ifndef traceRETURN_vQueueDelete 1297 #define traceRETURN_vQueueDelete() 1298 #endif 1299 1300 #ifndef traceENTER_uxQueueGetQueueNumber 1301 #define traceENTER_uxQueueGetQueueNumber( xQueue ) 1302 #endif 1303 1304 #ifndef traceRETURN_uxQueueGetQueueNumber 1305 #define traceRETURN_uxQueueGetQueueNumber( uxQueueNumber ) 1306 #endif 1307 1308 #ifndef traceENTER_vQueueSetQueueNumber 1309 #define traceENTER_vQueueSetQueueNumber( xQueue, uxQueueNumber ) 1310 #endif 1311 1312 #ifndef traceRETURN_vQueueSetQueueNumber 1313 #define traceRETURN_vQueueSetQueueNumber() 1314 #endif 1315 1316 #ifndef traceENTER_ucQueueGetQueueType 1317 #define traceENTER_ucQueueGetQueueType( xQueue ) 1318 #endif 1319 1320 #ifndef traceRETURN_ucQueueGetQueueType 1321 #define traceRETURN_ucQueueGetQueueType( ucQueueType ) 1322 #endif 1323 1324 #ifndef traceENTER_uxQueueGetQueueItemSize 1325 #define traceENTER_uxQueueGetQueueItemSize( xQueue ) 1326 #endif 1327 1328 #ifndef traceRETURN_uxQueueGetQueueItemSize 1329 #define traceRETURN_uxQueueGetQueueItemSize( uxItemSize ) 1330 #endif 1331 1332 #ifndef traceENTER_uxQueueGetQueueLength 1333 #define traceENTER_uxQueueGetQueueLength( xQueue ) 1334 #endif 1335 1336 #ifndef traceRETURN_uxQueueGetQueueLength 1337 #define traceRETURN_uxQueueGetQueueLength( uxLength ) 1338 #endif 1339 1340 #ifndef traceENTER_xQueueIsQueueEmptyFromISR 1341 #define traceENTER_xQueueIsQueueEmptyFromISR( xQueue ) 1342 #endif 1343 1344 #ifndef traceRETURN_xQueueIsQueueEmptyFromISR 1345 #define traceRETURN_xQueueIsQueueEmptyFromISR( xReturn ) 1346 #endif 1347 1348 #ifndef traceENTER_xQueueIsQueueFullFromISR 1349 #define traceENTER_xQueueIsQueueFullFromISR( xQueue ) 1350 #endif 1351 1352 #ifndef traceRETURN_xQueueIsQueueFullFromISR 1353 #define traceRETURN_xQueueIsQueueFullFromISR( xReturn ) 1354 #endif 1355 1356 #ifndef traceENTER_xQueueCRSend 1357 #define traceENTER_xQueueCRSend( xQueue, pvItemToQueue, xTicksToWait ) 1358 #endif 1359 1360 #ifndef traceRETURN_xQueueCRSend 1361 #define traceRETURN_xQueueCRSend( xReturn ) 1362 #endif 1363 1364 #ifndef traceENTER_xQueueCRReceive 1365 #define traceENTER_xQueueCRReceive( xQueue, pvBuffer, xTicksToWait ) 1366 #endif 1367 1368 #ifndef traceRETURN_xQueueCRReceive 1369 #define traceRETURN_xQueueCRReceive( xReturn ) 1370 #endif 1371 1372 #ifndef traceENTER_xQueueCRSendFromISR 1373 #define traceENTER_xQueueCRSendFromISR( xQueue, pvItemToQueue, xCoRoutinePreviouslyWoken ) 1374 #endif 1375 1376 #ifndef traceRETURN_xQueueCRSendFromISR 1377 #define traceRETURN_xQueueCRSendFromISR( xCoRoutinePreviouslyWoken ) 1378 #endif 1379 1380 #ifndef traceENTER_xQueueCRReceiveFromISR 1381 #define traceENTER_xQueueCRReceiveFromISR( xQueue, pvBuffer, pxCoRoutineWoken ) 1382 #endif 1383 1384 #ifndef traceRETURN_xQueueCRReceiveFromISR 1385 #define traceRETURN_xQueueCRReceiveFromISR( xReturn ) 1386 #endif 1387 1388 #ifndef traceENTER_vQueueAddToRegistry 1389 #define traceENTER_vQueueAddToRegistry( xQueue, pcQueueName ) 1390 #endif 1391 1392 #ifndef traceRETURN_vQueueAddToRegistry 1393 #define traceRETURN_vQueueAddToRegistry() 1394 #endif 1395 1396 #ifndef traceENTER_pcQueueGetName 1397 #define traceENTER_pcQueueGetName( xQueue ) 1398 #endif 1399 1400 #ifndef traceRETURN_pcQueueGetName 1401 #define traceRETURN_pcQueueGetName( pcReturn ) 1402 #endif 1403 1404 #ifndef traceENTER_vQueueUnregisterQueue 1405 #define traceENTER_vQueueUnregisterQueue( xQueue ) 1406 #endif 1407 1408 #ifndef traceRETURN_vQueueUnregisterQueue 1409 #define traceRETURN_vQueueUnregisterQueue() 1410 #endif 1411 1412 #ifndef traceENTER_vQueueWaitForMessageRestricted 1413 #define traceENTER_vQueueWaitForMessageRestricted( xQueue, xTicksToWait, xWaitIndefinitely ) 1414 #endif 1415 1416 #ifndef traceRETURN_vQueueWaitForMessageRestricted 1417 #define traceRETURN_vQueueWaitForMessageRestricted() 1418 #endif 1419 1420 #ifndef traceENTER_xQueueCreateSet 1421 #define traceENTER_xQueueCreateSet( uxEventQueueLength ) 1422 #endif 1423 1424 #ifndef traceRETURN_xQueueCreateSet 1425 #define traceRETURN_xQueueCreateSet( pxQueue ) 1426 #endif 1427 1428 #ifndef traceENTER_xQueueAddToSet 1429 #define traceENTER_xQueueAddToSet( xQueueOrSemaphore, xQueueSet ) 1430 #endif 1431 1432 #ifndef traceRETURN_xQueueAddToSet 1433 #define traceRETURN_xQueueAddToSet( xReturn ) 1434 #endif 1435 1436 #ifndef traceENTER_xQueueRemoveFromSet 1437 #define traceENTER_xQueueRemoveFromSet( xQueueOrSemaphore, xQueueSet ) 1438 #endif 1439 1440 #ifndef traceRETURN_xQueueRemoveFromSet 1441 #define traceRETURN_xQueueRemoveFromSet( xReturn ) 1442 #endif 1443 1444 #ifndef traceENTER_xQueueSelectFromSet 1445 #define traceENTER_xQueueSelectFromSet( xQueueSet, xTicksToWait ) 1446 #endif 1447 1448 #ifndef traceRETURN_xQueueSelectFromSet 1449 #define traceRETURN_xQueueSelectFromSet( xReturn ) 1450 #endif 1451 1452 #ifndef traceENTER_xQueueSelectFromSetFromISR 1453 #define traceENTER_xQueueSelectFromSetFromISR( xQueueSet ) 1454 #endif 1455 1456 #ifndef traceRETURN_xQueueSelectFromSetFromISR 1457 #define traceRETURN_xQueueSelectFromSetFromISR( xReturn ) 1458 #endif 1459 1460 #ifndef traceENTER_xTimerCreateTimerTask 1461 #define traceENTER_xTimerCreateTimerTask() 1462 #endif 1463 1464 #ifndef traceRETURN_xTimerCreateTimerTask 1465 #define traceRETURN_xTimerCreateTimerTask( xReturn ) 1466 #endif 1467 1468 #ifndef traceENTER_xTimerCreate 1469 #define traceENTER_xTimerCreate( pcTimerName, xTimerPeriodInTicks, xAutoReload, pvTimerID, pxCallbackFunction ) 1470 #endif 1471 1472 #ifndef traceRETURN_xTimerCreate 1473 #define traceRETURN_xTimerCreate( pxNewTimer ) 1474 #endif 1475 1476 #ifndef traceENTER_xTimerCreateStatic 1477 #define traceENTER_xTimerCreateStatic( pcTimerName, xTimerPeriodInTicks, xAutoReload, pvTimerID, pxCallbackFunction, pxTimerBuffer ) 1478 #endif 1479 1480 #ifndef traceRETURN_xTimerCreateStatic 1481 #define traceRETURN_xTimerCreateStatic( pxNewTimer ) 1482 #endif 1483 1484 #ifndef traceENTER_xTimerGenericCommandFromTask 1485 #define traceENTER_xTimerGenericCommandFromTask( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait ) 1486 #endif 1487 1488 #ifndef traceRETURN_xTimerGenericCommandFromTask 1489 #define traceRETURN_xTimerGenericCommandFromTask( xReturn ) 1490 #endif 1491 1492 #ifndef traceENTER_xTimerGenericCommandFromISR 1493 #define traceENTER_xTimerGenericCommandFromISR( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait ) 1494 #endif 1495 1496 #ifndef traceRETURN_xTimerGenericCommandFromISR 1497 #define traceRETURN_xTimerGenericCommandFromISR( xReturn ) 1498 #endif 1499 1500 #ifndef traceENTER_xTimerGetTimerDaemonTaskHandle 1501 #define traceENTER_xTimerGetTimerDaemonTaskHandle() 1502 #endif 1503 1504 #ifndef traceRETURN_xTimerGetTimerDaemonTaskHandle 1505 #define traceRETURN_xTimerGetTimerDaemonTaskHandle( xTimerTaskHandle ) 1506 #endif 1507 1508 #ifndef traceENTER_xTimerGetPeriod 1509 #define traceENTER_xTimerGetPeriod( xTimer ) 1510 #endif 1511 1512 #ifndef traceRETURN_xTimerGetPeriod 1513 #define traceRETURN_xTimerGetPeriod( xTimerPeriodInTicks ) 1514 #endif 1515 1516 #ifndef traceENTER_vTimerSetReloadMode 1517 #define traceENTER_vTimerSetReloadMode( xTimer, xAutoReload ) 1518 #endif 1519 1520 #ifndef traceRETURN_vTimerSetReloadMode 1521 #define traceRETURN_vTimerSetReloadMode() 1522 #endif 1523 1524 #ifndef traceENTER_xTimerGetReloadMode 1525 #define traceENTER_xTimerGetReloadMode( xTimer ) 1526 #endif 1527 1528 #ifndef traceRETURN_xTimerGetReloadMode 1529 #define traceRETURN_xTimerGetReloadMode( xReturn ) 1530 #endif 1531 1532 #ifndef traceENTER_uxTimerGetReloadMode 1533 #define traceENTER_uxTimerGetReloadMode( xTimer ) 1534 #endif 1535 1536 #ifndef traceRETURN_uxTimerGetReloadMode 1537 #define traceRETURN_uxTimerGetReloadMode( uxReturn ) 1538 #endif 1539 1540 #ifndef traceENTER_xTimerGetExpiryTime 1541 #define traceENTER_xTimerGetExpiryTime( xTimer ) 1542 #endif 1543 1544 #ifndef traceRETURN_xTimerGetExpiryTime 1545 #define traceRETURN_xTimerGetExpiryTime( xReturn ) 1546 #endif 1547 1548 #ifndef traceENTER_xTimerGetStaticBuffer 1549 #define traceENTER_xTimerGetStaticBuffer( xTimer, ppxTimerBuffer ) 1550 #endif 1551 1552 #ifndef traceRETURN_xTimerGetStaticBuffer 1553 #define traceRETURN_xTimerGetStaticBuffer( xReturn ) 1554 #endif 1555 1556 #ifndef traceENTER_pcTimerGetName 1557 #define traceENTER_pcTimerGetName( xTimer ) 1558 #endif 1559 1560 #ifndef traceRETURN_pcTimerGetName 1561 #define traceRETURN_pcTimerGetName( pcTimerName ) 1562 #endif 1563 1564 #ifndef traceENTER_xTimerIsTimerActive 1565 #define traceENTER_xTimerIsTimerActive( xTimer ) 1566 #endif 1567 1568 #ifndef traceRETURN_xTimerIsTimerActive 1569 #define traceRETURN_xTimerIsTimerActive( xReturn ) 1570 #endif 1571 1572 #ifndef traceENTER_pvTimerGetTimerID 1573 #define traceENTER_pvTimerGetTimerID( xTimer ) 1574 #endif 1575 1576 #ifndef traceRETURN_pvTimerGetTimerID 1577 #define traceRETURN_pvTimerGetTimerID( pvReturn ) 1578 #endif 1579 1580 #ifndef traceENTER_vTimerSetTimerID 1581 #define traceENTER_vTimerSetTimerID( xTimer, pvNewID ) 1582 #endif 1583 1584 #ifndef traceRETURN_vTimerSetTimerID 1585 #define traceRETURN_vTimerSetTimerID() 1586 #endif 1587 1588 #ifndef traceENTER_xTimerPendFunctionCallFromISR 1589 #define traceENTER_xTimerPendFunctionCallFromISR( xFunctionToPend, pvParameter1, ulParameter2, pxHigherPriorityTaskWoken ) 1590 #endif 1591 1592 #ifndef traceRETURN_xTimerPendFunctionCallFromISR 1593 #define traceRETURN_xTimerPendFunctionCallFromISR( xReturn ) 1594 #endif 1595 1596 #ifndef traceENTER_xTimerPendFunctionCall 1597 #define traceENTER_xTimerPendFunctionCall( xFunctionToPend, pvParameter1, ulParameter2, xTicksToWait ) 1598 #endif 1599 1600 #ifndef traceRETURN_xTimerPendFunctionCall 1601 #define traceRETURN_xTimerPendFunctionCall( xReturn ) 1602 #endif 1603 1604 #ifndef traceENTER_uxTimerGetTimerNumber 1605 #define traceENTER_uxTimerGetTimerNumber( xTimer ) 1606 #endif 1607 1608 #ifndef traceRETURN_uxTimerGetTimerNumber 1609 #define traceRETURN_uxTimerGetTimerNumber( uxTimerNumber ) 1610 #endif 1611 1612 #ifndef traceENTER_vTimerSetTimerNumber 1613 #define traceENTER_vTimerSetTimerNumber( xTimer, uxTimerNumber ) 1614 #endif 1615 1616 #ifndef traceRETURN_vTimerSetTimerNumber 1617 #define traceRETURN_vTimerSetTimerNumber() 1618 #endif 1619 1620 #ifndef traceENTER_xTaskCreateStatic 1621 #define traceENTER_xTaskCreateStatic( pxTaskCode, pcName, ulStackDepth, pvParameters, uxPriority, puxStackBuffer, pxTaskBuffer ) 1622 #endif 1623 1624 #ifndef traceRETURN_xTaskCreateStatic 1625 #define traceRETURN_xTaskCreateStatic( xReturn ) 1626 #endif 1627 1628 #ifndef traceENTER_xTaskCreateStaticAffinitySet 1629 #define traceENTER_xTaskCreateStaticAffinitySet( pxTaskCode, pcName, ulStackDepth, pvParameters, uxPriority, puxStackBuffer, pxTaskBuffer, uxCoreAffinityMask ) 1630 #endif 1631 1632 #ifndef traceRETURN_xTaskCreateStaticAffinitySet 1633 #define traceRETURN_xTaskCreateStaticAffinitySet( xReturn ) 1634 #endif 1635 1636 #ifndef traceENTER_xTaskCreateRestrictedStatic 1637 #define traceENTER_xTaskCreateRestrictedStatic( pxTaskDefinition, pxCreatedTask ) 1638 #endif 1639 1640 #ifndef traceRETURN_xTaskCreateRestrictedStatic 1641 #define traceRETURN_xTaskCreateRestrictedStatic( xReturn ) 1642 #endif 1643 1644 #ifndef traceENTER_xTaskCreateRestrictedStaticAffinitySet 1645 #define traceENTER_xTaskCreateRestrictedStaticAffinitySet( pxTaskDefinition, uxCoreAffinityMask, pxCreatedTask ) 1646 #endif 1647 1648 #ifndef traceRETURN_xTaskCreateRestrictedStaticAffinitySet 1649 #define traceRETURN_xTaskCreateRestrictedStaticAffinitySet( xReturn ) 1650 #endif 1651 1652 #ifndef traceENTER_xTaskCreateRestricted 1653 #define traceENTER_xTaskCreateRestricted( pxTaskDefinition, pxCreatedTask ) 1654 #endif 1655 1656 #ifndef traceRETURN_xTaskCreateRestricted 1657 #define traceRETURN_xTaskCreateRestricted( xReturn ) 1658 #endif 1659 1660 #ifndef traceENTER_xTaskCreateRestrictedAffinitySet 1661 #define traceENTER_xTaskCreateRestrictedAffinitySet( pxTaskDefinition, uxCoreAffinityMask, pxCreatedTask ) 1662 #endif 1663 1664 #ifndef traceRETURN_xTaskCreateRestrictedAffinitySet 1665 #define traceRETURN_xTaskCreateRestrictedAffinitySet( xReturn ) 1666 #endif 1667 1668 #ifndef traceENTER_xTaskCreate 1669 #define traceENTER_xTaskCreate( pxTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask ) 1670 #endif 1671 1672 #ifndef traceRETURN_xTaskCreate 1673 #define traceRETURN_xTaskCreate( xReturn ) 1674 #endif 1675 1676 #ifndef traceENTER_xTaskCreateAffinitySet 1677 #define traceENTER_xTaskCreateAffinitySet( pxTaskCode, pcName, usStackDepth, pvParameters, uxPriority, uxCoreAffinityMask, pxCreatedTask ) 1678 #endif 1679 1680 #ifndef traceRETURN_xTaskCreateAffinitySet 1681 #define traceRETURN_xTaskCreateAffinitySet( xReturn ) 1682 #endif 1683 1684 #ifndef traceENTER_vTaskDelete 1685 #define traceENTER_vTaskDelete( xTaskToDelete ) 1686 #endif 1687 1688 #ifndef traceRETURN_vTaskDelete 1689 #define traceRETURN_vTaskDelete() 1690 #endif 1691 1692 #ifndef traceENTER_xTaskDelayUntil 1693 #define traceENTER_xTaskDelayUntil( pxPreviousWakeTime, xTimeIncrement ) 1694 #endif 1695 1696 #ifndef traceRETURN_xTaskDelayUntil 1697 #define traceRETURN_xTaskDelayUntil( xShouldDelay ) 1698 #endif 1699 1700 #ifndef traceENTER_vTaskDelay 1701 #define traceENTER_vTaskDelay( xTicksToDelay ) 1702 #endif 1703 1704 #ifndef traceRETURN_vTaskDelay 1705 #define traceRETURN_vTaskDelay() 1706 #endif 1707 1708 #ifndef traceENTER_eTaskGetState 1709 #define traceENTER_eTaskGetState( xTask ) 1710 #endif 1711 1712 #ifndef traceRETURN_eTaskGetState 1713 #define traceRETURN_eTaskGetState( eReturn ) 1714 #endif 1715 1716 #ifndef traceENTER_uxTaskPriorityGet 1717 #define traceENTER_uxTaskPriorityGet( xTask ) 1718 #endif 1719 1720 #ifndef traceRETURN_uxTaskPriorityGet 1721 #define traceRETURN_uxTaskPriorityGet( uxReturn ) 1722 #endif 1723 1724 #ifndef traceENTER_uxTaskPriorityGetFromISR 1725 #define traceENTER_uxTaskPriorityGetFromISR( xTask ) 1726 #endif 1727 1728 #ifndef traceRETURN_uxTaskPriorityGetFromISR 1729 #define traceRETURN_uxTaskPriorityGetFromISR( uxReturn ) 1730 #endif 1731 1732 #ifndef traceENTER_uxTaskBasePriorityGet 1733 #define traceENTER_uxTaskBasePriorityGet( xTask ) 1734 #endif 1735 1736 #ifndef traceRETURN_uxTaskBasePriorityGet 1737 #define traceRETURN_uxTaskBasePriorityGet( uxReturn ) 1738 #endif 1739 1740 #ifndef traceENTER_uxTaskBasePriorityGetFromISR 1741 #define traceENTER_uxTaskBasePriorityGetFromISR( xTask ) 1742 #endif 1743 1744 #ifndef traceRETURN_uxTaskBasePriorityGetFromISR 1745 #define traceRETURN_uxTaskBasePriorityGetFromISR( uxReturn ) 1746 #endif 1747 1748 #ifndef traceENTER_vTaskPrioritySet 1749 #define traceENTER_vTaskPrioritySet( xTask, uxNewPriority ) 1750 #endif 1751 1752 #ifndef traceRETURN_vTaskPrioritySet 1753 #define traceRETURN_vTaskPrioritySet() 1754 #endif 1755 1756 #ifndef traceENTER_vTaskCoreAffinitySet 1757 #define traceENTER_vTaskCoreAffinitySet( xTask, uxCoreAffinityMask ) 1758 #endif 1759 1760 #ifndef traceRETURN_vTaskCoreAffinitySet 1761 #define traceRETURN_vTaskCoreAffinitySet() 1762 #endif 1763 1764 #ifndef traceENTER_vTaskCoreAffinityGet 1765 #define traceENTER_vTaskCoreAffinityGet( xTask ) 1766 #endif 1767 1768 #ifndef traceRETURN_vTaskCoreAffinityGet 1769 #define traceRETURN_vTaskCoreAffinityGet( uxCoreAffinityMask ) 1770 #endif 1771 1772 #ifndef traceENTER_vTaskPreemptionDisable 1773 #define traceENTER_vTaskPreemptionDisable( xTask ) 1774 #endif 1775 1776 #ifndef traceRETURN_vTaskPreemptionDisable 1777 #define traceRETURN_vTaskPreemptionDisable() 1778 #endif 1779 1780 #ifndef traceENTER_vTaskPreemptionEnable 1781 #define traceENTER_vTaskPreemptionEnable( xTask ) 1782 #endif 1783 1784 #ifndef traceRETURN_vTaskPreemptionEnable 1785 #define traceRETURN_vTaskPreemptionEnable() 1786 #endif 1787 1788 #ifndef traceENTER_vTaskSuspend 1789 #define traceENTER_vTaskSuspend( xTaskToSuspend ) 1790 #endif 1791 1792 #ifndef traceRETURN_vTaskSuspend 1793 #define traceRETURN_vTaskSuspend() 1794 #endif 1795 1796 #ifndef traceENTER_vTaskResume 1797 #define traceENTER_vTaskResume( xTaskToResume ) 1798 #endif 1799 1800 #ifndef traceRETURN_vTaskResume 1801 #define traceRETURN_vTaskResume() 1802 #endif 1803 1804 #ifndef traceENTER_xTaskResumeFromISR 1805 #define traceENTER_xTaskResumeFromISR( xTaskToResume ) 1806 #endif 1807 1808 #ifndef traceRETURN_xTaskResumeFromISR 1809 #define traceRETURN_xTaskResumeFromISR( xYieldRequired ) 1810 #endif 1811 1812 #ifndef traceENTER_vTaskStartScheduler 1813 #define traceENTER_vTaskStartScheduler() 1814 #endif 1815 1816 #ifndef traceRETURN_vTaskStartScheduler 1817 #define traceRETURN_vTaskStartScheduler() 1818 #endif 1819 1820 #ifndef traceENTER_vTaskEndScheduler 1821 #define traceENTER_vTaskEndScheduler() 1822 #endif 1823 1824 #ifndef traceRETURN_vTaskEndScheduler 1825 #define traceRETURN_vTaskEndScheduler() 1826 #endif 1827 1828 #ifndef traceENTER_vTaskSuspendAll 1829 #define traceENTER_vTaskSuspendAll() 1830 #endif 1831 1832 #ifndef traceRETURN_vTaskSuspendAll 1833 #define traceRETURN_vTaskSuspendAll() 1834 #endif 1835 1836 #ifndef traceENTER_xTaskResumeAll 1837 #define traceENTER_xTaskResumeAll() 1838 #endif 1839 1840 #ifndef traceRETURN_xTaskResumeAll 1841 #define traceRETURN_xTaskResumeAll( xAlreadyYielded ) 1842 #endif 1843 1844 #ifndef traceENTER_xTaskGetTickCount 1845 #define traceENTER_xTaskGetTickCount() 1846 #endif 1847 1848 #ifndef traceRETURN_xTaskGetTickCount 1849 #define traceRETURN_xTaskGetTickCount( xTicks ) 1850 #endif 1851 1852 #ifndef traceENTER_xTaskGetTickCountFromISR 1853 #define traceENTER_xTaskGetTickCountFromISR() 1854 #endif 1855 1856 #ifndef traceRETURN_xTaskGetTickCountFromISR 1857 #define traceRETURN_xTaskGetTickCountFromISR( xReturn ) 1858 #endif 1859 1860 #ifndef traceENTER_uxTaskGetNumberOfTasks 1861 #define traceENTER_uxTaskGetNumberOfTasks() 1862 #endif 1863 1864 #ifndef traceRETURN_uxTaskGetNumberOfTasks 1865 #define traceRETURN_uxTaskGetNumberOfTasks( uxCurrentNumberOfTasks ) 1866 #endif 1867 1868 #ifndef traceENTER_pcTaskGetName 1869 #define traceENTER_pcTaskGetName( xTaskToQuery ) 1870 #endif 1871 1872 #ifndef traceRETURN_pcTaskGetName 1873 #define traceRETURN_pcTaskGetName( pcTaskName ) 1874 #endif 1875 1876 #ifndef traceENTER_xTaskGetHandle 1877 #define traceENTER_xTaskGetHandle( pcNameToQuery ) 1878 #endif 1879 1880 #ifndef traceRETURN_xTaskGetHandle 1881 #define traceRETURN_xTaskGetHandle( pxTCB ) 1882 #endif 1883 1884 #ifndef traceENTER_xTaskGetStaticBuffers 1885 #define traceENTER_xTaskGetStaticBuffers( xTask, ppuxStackBuffer, ppxTaskBuffer ) 1886 #endif 1887 1888 #ifndef traceRETURN_xTaskGetStaticBuffers 1889 #define traceRETURN_xTaskGetStaticBuffers( xReturn ) 1890 #endif 1891 1892 #ifndef traceENTER_uxTaskGetSystemState 1893 #define traceENTER_uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, pulTotalRunTime ) 1894 #endif 1895 1896 #ifndef traceRETURN_uxTaskGetSystemState 1897 #define traceRETURN_uxTaskGetSystemState( uxTask ) 1898 #endif 1899 1900 #if ( configNUMBER_OF_CORES == 1 ) 1901 #ifndef traceENTER_xTaskGetIdleTaskHandle 1902 #define traceENTER_xTaskGetIdleTaskHandle() 1903 #endif 1904 #endif 1905 1906 #if ( configNUMBER_OF_CORES == 1 ) 1907 #ifndef traceRETURN_xTaskGetIdleTaskHandle 1908 #define traceRETURN_xTaskGetIdleTaskHandle( xIdleTaskHandle ) 1909 #endif 1910 #endif 1911 1912 #ifndef traceENTER_xTaskGetIdleTaskHandleForCore 1913 #define traceENTER_xTaskGetIdleTaskHandleForCore( xCoreID ) 1914 #endif 1915 1916 #ifndef traceRETURN_xTaskGetIdleTaskHandleForCore 1917 #define traceRETURN_xTaskGetIdleTaskHandleForCore( xIdleTaskHandle ) 1918 #endif 1919 1920 #ifndef traceENTER_vTaskStepTick 1921 #define traceENTER_vTaskStepTick( xTicksToJump ) 1922 #endif 1923 1924 #ifndef traceRETURN_vTaskStepTick 1925 #define traceRETURN_vTaskStepTick() 1926 #endif 1927 1928 #ifndef traceENTER_xTaskCatchUpTicks 1929 #define traceENTER_xTaskCatchUpTicks( xTicksToCatchUp ) 1930 #endif 1931 1932 #ifndef traceRETURN_xTaskCatchUpTicks 1933 #define traceRETURN_xTaskCatchUpTicks( xYieldOccurred ) 1934 #endif 1935 1936 #ifndef traceENTER_xTaskAbortDelay 1937 #define traceENTER_xTaskAbortDelay( xTask ) 1938 #endif 1939 1940 #ifndef traceRETURN_xTaskAbortDelay 1941 #define traceRETURN_xTaskAbortDelay( xReturn ) 1942 #endif 1943 1944 #ifndef traceENTER_xTaskIncrementTick 1945 #define traceENTER_xTaskIncrementTick() 1946 #endif 1947 1948 #ifndef traceRETURN_xTaskIncrementTick 1949 #define traceRETURN_xTaskIncrementTick( xSwitchRequired ) 1950 #endif 1951 1952 #ifndef traceENTER_vTaskSetApplicationTaskTag 1953 #define traceENTER_vTaskSetApplicationTaskTag( xTask, pxHookFunction ) 1954 #endif 1955 1956 #ifndef traceRETURN_vTaskSetApplicationTaskTag 1957 #define traceRETURN_vTaskSetApplicationTaskTag() 1958 #endif 1959 1960 #ifndef traceENTER_xTaskGetApplicationTaskTag 1961 #define traceENTER_xTaskGetApplicationTaskTag( xTask ) 1962 #endif 1963 1964 #ifndef traceRETURN_xTaskGetApplicationTaskTag 1965 #define traceRETURN_xTaskGetApplicationTaskTag( xReturn ) 1966 #endif 1967 1968 #ifndef traceENTER_xTaskGetApplicationTaskTagFromISR 1969 #define traceENTER_xTaskGetApplicationTaskTagFromISR( xTask ) 1970 #endif 1971 1972 #ifndef traceRETURN_xTaskGetApplicationTaskTagFromISR 1973 #define traceRETURN_xTaskGetApplicationTaskTagFromISR( xReturn ) 1974 #endif 1975 1976 #ifndef traceENTER_xTaskCallApplicationTaskHook 1977 #define traceENTER_xTaskCallApplicationTaskHook( xTask, pvParameter ) 1978 #endif 1979 1980 #ifndef traceRETURN_xTaskCallApplicationTaskHook 1981 #define traceRETURN_xTaskCallApplicationTaskHook( xReturn ) 1982 #endif 1983 1984 #ifndef traceENTER_vTaskSwitchContext 1985 #define traceENTER_vTaskSwitchContext() 1986 #endif 1987 1988 #ifndef traceRETURN_vTaskSwitchContext 1989 #define traceRETURN_vTaskSwitchContext() 1990 #endif 1991 1992 #ifndef traceENTER_vTaskPlaceOnEventList 1993 #define traceENTER_vTaskPlaceOnEventList( pxEventList, xTicksToWait ) 1994 #endif 1995 1996 #ifndef traceRETURN_vTaskPlaceOnEventList 1997 #define traceRETURN_vTaskPlaceOnEventList() 1998 #endif 1999 2000 #ifndef traceENTER_vTaskPlaceOnUnorderedEventList 2001 #define traceENTER_vTaskPlaceOnUnorderedEventList( pxEventList, xItemValue, xTicksToWait ) 2002 #endif 2003 2004 #ifndef traceRETURN_vTaskPlaceOnUnorderedEventList 2005 #define traceRETURN_vTaskPlaceOnUnorderedEventList() 2006 #endif 2007 2008 #ifndef traceENTER_vTaskPlaceOnEventListRestricted 2009 #define traceENTER_vTaskPlaceOnEventListRestricted( pxEventList, xTicksToWait, xWaitIndefinitely ) 2010 #endif 2011 2012 #ifndef traceRETURN_vTaskPlaceOnEventListRestricted 2013 #define traceRETURN_vTaskPlaceOnEventListRestricted() 2014 #endif 2015 2016 #ifndef traceENTER_xTaskRemoveFromEventList 2017 #define traceENTER_xTaskRemoveFromEventList( pxEventList ) 2018 #endif 2019 2020 #ifndef traceRETURN_xTaskRemoveFromEventList 2021 #define traceRETURN_xTaskRemoveFromEventList( xReturn ) 2022 #endif 2023 2024 #ifndef traceENTER_vTaskRemoveFromUnorderedEventList 2025 #define traceENTER_vTaskRemoveFromUnorderedEventList( pxEventListItem, xItemValue ) 2026 #endif 2027 2028 #ifndef traceRETURN_vTaskRemoveFromUnorderedEventList 2029 #define traceRETURN_vTaskRemoveFromUnorderedEventList() 2030 #endif 2031 2032 #ifndef traceENTER_vTaskSetTimeOutState 2033 #define traceENTER_vTaskSetTimeOutState( pxTimeOut ) 2034 #endif 2035 2036 #ifndef traceRETURN_vTaskSetTimeOutState 2037 #define traceRETURN_vTaskSetTimeOutState() 2038 #endif 2039 2040 #ifndef traceENTER_vTaskInternalSetTimeOutState 2041 #define traceENTER_vTaskInternalSetTimeOutState( pxTimeOut ) 2042 #endif 2043 2044 #ifndef traceRETURN_vTaskInternalSetTimeOutState 2045 #define traceRETURN_vTaskInternalSetTimeOutState() 2046 #endif 2047 2048 #ifndef traceENTER_xTaskCheckForTimeOut 2049 #define traceENTER_xTaskCheckForTimeOut( pxTimeOut, pxTicksToWait ) 2050 #endif 2051 2052 #ifndef traceRETURN_xTaskCheckForTimeOut 2053 #define traceRETURN_xTaskCheckForTimeOut( xReturn ) 2054 #endif 2055 2056 #ifndef traceENTER_vTaskMissedYield 2057 #define traceENTER_vTaskMissedYield() 2058 #endif 2059 2060 #ifndef traceRETURN_vTaskMissedYield 2061 #define traceRETURN_vTaskMissedYield() 2062 #endif 2063 2064 #ifndef traceENTER_uxTaskGetTaskNumber 2065 #define traceENTER_uxTaskGetTaskNumber( xTask ) 2066 #endif 2067 2068 #ifndef traceRETURN_uxTaskGetTaskNumber 2069 #define traceRETURN_uxTaskGetTaskNumber( uxReturn ) 2070 #endif 2071 2072 #ifndef traceENTER_vTaskSetTaskNumber 2073 #define traceENTER_vTaskSetTaskNumber( xTask, uxHandle ) 2074 #endif 2075 2076 #ifndef traceRETURN_vTaskSetTaskNumber 2077 #define traceRETURN_vTaskSetTaskNumber() 2078 #endif 2079 2080 #ifndef traceENTER_eTaskConfirmSleepModeStatus 2081 #define traceENTER_eTaskConfirmSleepModeStatus() 2082 #endif 2083 2084 #ifndef traceRETURN_eTaskConfirmSleepModeStatus 2085 #define traceRETURN_eTaskConfirmSleepModeStatus( eReturn ) 2086 #endif 2087 2088 #ifndef traceENTER_vTaskSetThreadLocalStoragePointer 2089 #define traceENTER_vTaskSetThreadLocalStoragePointer( xTaskToSet, xIndex, pvValue ) 2090 #endif 2091 2092 #ifndef traceRETURN_vTaskSetThreadLocalStoragePointer 2093 #define traceRETURN_vTaskSetThreadLocalStoragePointer() 2094 #endif 2095 2096 #ifndef traceENTER_pvTaskGetThreadLocalStoragePointer 2097 #define traceENTER_pvTaskGetThreadLocalStoragePointer( xTaskToQuery, xIndex ) 2098 #endif 2099 2100 #ifndef traceRETURN_pvTaskGetThreadLocalStoragePointer 2101 #define traceRETURN_pvTaskGetThreadLocalStoragePointer( pvReturn ) 2102 #endif 2103 2104 #ifndef traceENTER_vTaskAllocateMPURegions 2105 #define traceENTER_vTaskAllocateMPURegions( xTaskToModify, pxRegions ) 2106 #endif 2107 2108 #ifndef traceRETURN_vTaskAllocateMPURegions 2109 #define traceRETURN_vTaskAllocateMPURegions() 2110 #endif 2111 2112 #ifndef traceENTER_vTaskGetInfo 2113 #define traceENTER_vTaskGetInfo( xTask, pxTaskStatus, xGetFreeStackSpace, eState ) 2114 #endif 2115 2116 #ifndef traceRETURN_vTaskGetInfo 2117 #define traceRETURN_vTaskGetInfo() 2118 #endif 2119 2120 #ifndef traceENTER_uxTaskGetStackHighWaterMark2 2121 #define traceENTER_uxTaskGetStackHighWaterMark2( xTask ) 2122 #endif 2123 2124 #ifndef traceRETURN_uxTaskGetStackHighWaterMark2 2125 #define traceRETURN_uxTaskGetStackHighWaterMark2( uxReturn ) 2126 #endif 2127 2128 #ifndef traceENTER_uxTaskGetStackHighWaterMark 2129 #define traceENTER_uxTaskGetStackHighWaterMark( xTask ) 2130 #endif 2131 2132 #ifndef traceRETURN_uxTaskGetStackHighWaterMark 2133 #define traceRETURN_uxTaskGetStackHighWaterMark( uxReturn ) 2134 #endif 2135 2136 #ifndef traceENTER_xTaskGetCurrentTaskHandle 2137 #define traceENTER_xTaskGetCurrentTaskHandle() 2138 #endif 2139 2140 #ifndef traceRETURN_xTaskGetCurrentTaskHandle 2141 #define traceRETURN_xTaskGetCurrentTaskHandle( xReturn ) 2142 #endif 2143 2144 #ifndef traceENTER_xTaskGetCurrentTaskHandleForCore 2145 #define traceENTER_xTaskGetCurrentTaskHandleForCore( xCoreID ) 2146 #endif 2147 2148 #ifndef traceRETURN_xTaskGetCurrentTaskHandleForCore 2149 #define traceRETURN_xTaskGetCurrentTaskHandleForCore( xReturn ) 2150 #endif 2151 2152 #ifndef traceENTER_xTaskGetSchedulerState 2153 #define traceENTER_xTaskGetSchedulerState() 2154 #endif 2155 2156 #ifndef traceRETURN_xTaskGetSchedulerState 2157 #define traceRETURN_xTaskGetSchedulerState( xReturn ) 2158 #endif 2159 2160 #ifndef traceENTER_xTaskPriorityInherit 2161 #define traceENTER_xTaskPriorityInherit( pxMutexHolder ) 2162 #endif 2163 2164 #ifndef traceRETURN_xTaskPriorityInherit 2165 #define traceRETURN_xTaskPriorityInherit( xReturn ) 2166 #endif 2167 2168 #ifndef traceENTER_xTaskPriorityDisinherit 2169 #define traceENTER_xTaskPriorityDisinherit( pxMutexHolder ) 2170 #endif 2171 2172 #ifndef traceRETURN_xTaskPriorityDisinherit 2173 #define traceRETURN_xTaskPriorityDisinherit( xReturn ) 2174 #endif 2175 2176 #ifndef traceENTER_vTaskPriorityDisinheritAfterTimeout 2177 #define traceENTER_vTaskPriorityDisinheritAfterTimeout( pxMutexHolder, uxHighestPriorityWaitingTask ) 2178 #endif 2179 2180 #ifndef traceRETURN_vTaskPriorityDisinheritAfterTimeout 2181 #define traceRETURN_vTaskPriorityDisinheritAfterTimeout() 2182 #endif 2183 2184 #ifndef traceENTER_vTaskYieldWithinAPI 2185 #define traceENTER_vTaskYieldWithinAPI() 2186 #endif 2187 2188 #ifndef traceRETURN_vTaskYieldWithinAPI 2189 #define traceRETURN_vTaskYieldWithinAPI() 2190 #endif 2191 2192 #ifndef traceENTER_vTaskEnterCritical 2193 #define traceENTER_vTaskEnterCritical() 2194 #endif 2195 2196 #ifndef traceRETURN_vTaskEnterCritical 2197 #define traceRETURN_vTaskEnterCritical() 2198 #endif 2199 2200 #ifndef traceENTER_vTaskEnterCriticalFromISR 2201 #define traceENTER_vTaskEnterCriticalFromISR() 2202 #endif 2203 2204 #ifndef traceRETURN_vTaskEnterCriticalFromISR 2205 #define traceRETURN_vTaskEnterCriticalFromISR( uxSavedInterruptStatus ) 2206 #endif 2207 2208 #ifndef traceENTER_vTaskExitCritical 2209 #define traceENTER_vTaskExitCritical() 2210 #endif 2211 2212 #ifndef traceRETURN_vTaskExitCritical 2213 #define traceRETURN_vTaskExitCritical() 2214 #endif 2215 2216 #ifndef traceENTER_vTaskExitCriticalFromISR 2217 #define traceENTER_vTaskExitCriticalFromISR( uxSavedInterruptStatus ) 2218 #endif 2219 2220 #ifndef traceRETURN_vTaskExitCriticalFromISR 2221 #define traceRETURN_vTaskExitCriticalFromISR() 2222 #endif 2223 2224 #ifndef traceENTER_vTaskListTasks 2225 #define traceENTER_vTaskListTasks( pcWriteBuffer, uxBufferLength ) 2226 #endif 2227 2228 #ifndef traceRETURN_vTaskListTasks 2229 #define traceRETURN_vTaskListTasks() 2230 #endif 2231 2232 #ifndef traceENTER_vTaskGetRunTimeStatistics 2233 #define traceENTER_vTaskGetRunTimeStatistics( pcWriteBuffer, uxBufferLength ) 2234 #endif 2235 2236 #ifndef traceRETURN_vTaskGetRunTimeStatistics 2237 #define traceRETURN_vTaskGetRunTimeStatistics() 2238 #endif 2239 2240 #ifndef traceENTER_uxTaskResetEventItemValue 2241 #define traceENTER_uxTaskResetEventItemValue() 2242 #endif 2243 2244 #ifndef traceRETURN_uxTaskResetEventItemValue 2245 #define traceRETURN_uxTaskResetEventItemValue( uxReturn ) 2246 #endif 2247 2248 #ifndef traceENTER_pvTaskIncrementMutexHeldCount 2249 #define traceENTER_pvTaskIncrementMutexHeldCount() 2250 #endif 2251 2252 #ifndef traceRETURN_pvTaskIncrementMutexHeldCount 2253 #define traceRETURN_pvTaskIncrementMutexHeldCount( pxTCB ) 2254 #endif 2255 2256 #ifndef traceENTER_ulTaskGenericNotifyTake 2257 #define traceENTER_ulTaskGenericNotifyTake( uxIndexToWaitOn, xClearCountOnExit, xTicksToWait ) 2258 #endif 2259 2260 #ifndef traceRETURN_ulTaskGenericNotifyTake 2261 #define traceRETURN_ulTaskGenericNotifyTake( ulReturn ) 2262 #endif 2263 2264 #ifndef traceENTER_xTaskGenericNotifyWait 2265 #define traceENTER_xTaskGenericNotifyWait( uxIndexToWaitOn, ulBitsToClearOnEntry, ulBitsToClearOnExit, pulNotificationValue, xTicksToWait ) 2266 #endif 2267 2268 #ifndef traceRETURN_xTaskGenericNotifyWait 2269 #define traceRETURN_xTaskGenericNotifyWait( xReturn ) 2270 #endif 2271 2272 #ifndef traceENTER_xTaskGenericNotify 2273 #define traceENTER_xTaskGenericNotify( xTaskToNotify, uxIndexToNotify, ulValue, eAction, pulPreviousNotificationValue ) 2274 #endif 2275 2276 #ifndef traceRETURN_xTaskGenericNotify 2277 #define traceRETURN_xTaskGenericNotify( xReturn ) 2278 #endif 2279 2280 #ifndef traceENTER_xTaskGenericNotifyFromISR 2281 #define traceENTER_xTaskGenericNotifyFromISR( xTaskToNotify, uxIndexToNotify, ulValue, eAction, pulPreviousNotificationValue, pxHigherPriorityTaskWoken ) 2282 #endif 2283 2284 #ifndef traceRETURN_xTaskGenericNotifyFromISR 2285 #define traceRETURN_xTaskGenericNotifyFromISR( xReturn ) 2286 #endif 2287 2288 #ifndef traceENTER_vTaskGenericNotifyGiveFromISR 2289 #define traceENTER_vTaskGenericNotifyGiveFromISR( xTaskToNotify, uxIndexToNotify, pxHigherPriorityTaskWoken ) 2290 #endif 2291 2292 #ifndef traceRETURN_vTaskGenericNotifyGiveFromISR 2293 #define traceRETURN_vTaskGenericNotifyGiveFromISR() 2294 #endif 2295 2296 #ifndef traceENTER_xTaskGenericNotifyStateClear 2297 #define traceENTER_xTaskGenericNotifyStateClear( xTask, uxIndexToClear ) 2298 #endif 2299 2300 #ifndef traceRETURN_xTaskGenericNotifyStateClear 2301 #define traceRETURN_xTaskGenericNotifyStateClear( xReturn ) 2302 #endif 2303 2304 #ifndef traceENTER_ulTaskGenericNotifyValueClear 2305 #define traceENTER_ulTaskGenericNotifyValueClear( xTask, uxIndexToClear, ulBitsToClear ) 2306 #endif 2307 2308 #ifndef traceRETURN_ulTaskGenericNotifyValueClear 2309 #define traceRETURN_ulTaskGenericNotifyValueClear( ulReturn ) 2310 #endif 2311 2312 #ifndef traceENTER_ulTaskGetRunTimeCounter 2313 #define traceENTER_ulTaskGetRunTimeCounter( xTask ) 2314 #endif 2315 2316 #ifndef traceRETURN_ulTaskGetRunTimeCounter 2317 #define traceRETURN_ulTaskGetRunTimeCounter( ulRunTimeCounter ) 2318 #endif 2319 2320 #ifndef traceENTER_ulTaskGetRunTimePercent 2321 #define traceENTER_ulTaskGetRunTimePercent( xTask ) 2322 #endif 2323 2324 #ifndef traceRETURN_ulTaskGetRunTimePercent 2325 #define traceRETURN_ulTaskGetRunTimePercent( ulReturn ) 2326 #endif 2327 2328 #ifndef traceENTER_ulTaskGetIdleRunTimeCounter 2329 #define traceENTER_ulTaskGetIdleRunTimeCounter() 2330 #endif 2331 2332 #ifndef traceRETURN_ulTaskGetIdleRunTimeCounter 2333 #define traceRETURN_ulTaskGetIdleRunTimeCounter( ulReturn ) 2334 #endif 2335 2336 #ifndef traceENTER_ulTaskGetIdleRunTimePercent 2337 #define traceENTER_ulTaskGetIdleRunTimePercent() 2338 #endif 2339 2340 #ifndef traceRETURN_ulTaskGetIdleRunTimePercent 2341 #define traceRETURN_ulTaskGetIdleRunTimePercent( ulReturn ) 2342 #endif 2343 2344 #ifndef traceENTER_xTaskGetMPUSettings 2345 #define traceENTER_xTaskGetMPUSettings( xTask ) 2346 #endif 2347 2348 #ifndef traceRETURN_xTaskGetMPUSettings 2349 #define traceRETURN_xTaskGetMPUSettings( xMPUSettings ) 2350 #endif 2351 2352 #ifndef traceENTER_xStreamBufferGenericCreate 2353 #define traceENTER_xStreamBufferGenericCreate( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer, pxSendCompletedCallback, pxReceiveCompletedCallback ) 2354 #endif 2355 2356 #ifndef traceRETURN_xStreamBufferGenericCreate 2357 #define traceRETURN_xStreamBufferGenericCreate( pvAllocatedMemory ) 2358 #endif 2359 2360 #ifndef traceENTER_xStreamBufferGenericCreateStatic 2361 #define traceENTER_xStreamBufferGenericCreateStatic( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer, pucStreamBufferStorageArea, pxStaticStreamBuffer, pxSendCompletedCallback, pxReceiveCompletedCallback ) 2362 #endif 2363 2364 #ifndef traceRETURN_xStreamBufferGenericCreateStatic 2365 #define traceRETURN_xStreamBufferGenericCreateStatic( xReturn ) 2366 #endif 2367 2368 #ifndef traceENTER_xStreamBufferGetStaticBuffers 2369 #define traceENTER_xStreamBufferGetStaticBuffers( xStreamBuffer, ppucStreamBufferStorageArea, ppxStaticStreamBuffer ) 2370 #endif 2371 2372 #ifndef traceRETURN_xStreamBufferGetStaticBuffers 2373 #define traceRETURN_xStreamBufferGetStaticBuffers( xReturn ) 2374 #endif 2375 2376 #ifndef traceENTER_vStreamBufferDelete 2377 #define traceENTER_vStreamBufferDelete( xStreamBuffer ) 2378 #endif 2379 2380 #ifndef traceRETURN_vStreamBufferDelete 2381 #define traceRETURN_vStreamBufferDelete() 2382 #endif 2383 2384 #ifndef traceENTER_xStreamBufferReset 2385 #define traceENTER_xStreamBufferReset( xStreamBuffer ) 2386 #endif 2387 2388 #ifndef traceRETURN_xStreamBufferReset 2389 #define traceRETURN_xStreamBufferReset( xReturn ) 2390 #endif 2391 2392 #ifndef traceENTER_xStreamBufferSetTriggerLevel 2393 #define traceENTER_xStreamBufferSetTriggerLevel( xStreamBuffer, xTriggerLevel ) 2394 #endif 2395 2396 #ifndef traceRETURN_xStreamBufferSetTriggerLevel 2397 #define traceRETURN_xStreamBufferSetTriggerLevel( xReturn ) 2398 #endif 2399 2400 #ifndef traceENTER_xStreamBufferSpacesAvailable 2401 #define traceENTER_xStreamBufferSpacesAvailable( xStreamBuffer ) 2402 #endif 2403 2404 #ifndef traceRETURN_xStreamBufferSpacesAvailable 2405 #define traceRETURN_xStreamBufferSpacesAvailable( xSpace ) 2406 #endif 2407 2408 #ifndef traceENTER_xStreamBufferBytesAvailable 2409 #define traceENTER_xStreamBufferBytesAvailable( xStreamBuffer ) 2410 #endif 2411 2412 #ifndef traceRETURN_xStreamBufferBytesAvailable 2413 #define traceRETURN_xStreamBufferBytesAvailable( xReturn ) 2414 #endif 2415 2416 #ifndef traceENTER_xStreamBufferSend 2417 #define traceENTER_xStreamBufferSend( xStreamBuffer, pvTxData, xDataLengthBytes, xTicksToWait ) 2418 #endif 2419 2420 #ifndef traceRETURN_xStreamBufferSend 2421 #define traceRETURN_xStreamBufferSend( xReturn ) 2422 #endif 2423 2424 #ifndef traceENTER_xStreamBufferSendFromISR 2425 #define traceENTER_xStreamBufferSendFromISR( xStreamBuffer, pvTxData, xDataLengthBytes, pxHigherPriorityTaskWoken ) 2426 #endif 2427 2428 #ifndef traceRETURN_xStreamBufferSendFromISR 2429 #define traceRETURN_xStreamBufferSendFromISR( xReturn ) 2430 #endif 2431 2432 #ifndef traceENTER_xStreamBufferReceive 2433 #define traceENTER_xStreamBufferReceive( xStreamBuffer, pvRxData, xBufferLengthBytes, xTicksToWait ) 2434 #endif 2435 2436 #ifndef traceRETURN_xStreamBufferReceive 2437 #define traceRETURN_xStreamBufferReceive( xReceivedLength ) 2438 #endif 2439 2440 #ifndef traceENTER_xStreamBufferNextMessageLengthBytes 2441 #define traceENTER_xStreamBufferNextMessageLengthBytes( xStreamBuffer ) 2442 #endif 2443 2444 #ifndef traceRETURN_xStreamBufferNextMessageLengthBytes 2445 #define traceRETURN_xStreamBufferNextMessageLengthBytes( xReturn ) 2446 #endif 2447 2448 #ifndef traceENTER_xStreamBufferReceiveFromISR 2449 #define traceENTER_xStreamBufferReceiveFromISR( xStreamBuffer, pvRxData, xBufferLengthBytes, pxHigherPriorityTaskWoken ) 2450 #endif 2451 2452 #ifndef traceRETURN_xStreamBufferReceiveFromISR 2453 #define traceRETURN_xStreamBufferReceiveFromISR( xReceivedLength ) 2454 #endif 2455 2456 #ifndef traceENTER_xStreamBufferIsEmpty 2457 #define traceENTER_xStreamBufferIsEmpty( xStreamBuffer ) 2458 #endif 2459 2460 #ifndef traceRETURN_xStreamBufferIsEmpty 2461 #define traceRETURN_xStreamBufferIsEmpty( xReturn ) 2462 #endif 2463 2464 #ifndef traceENTER_xStreamBufferIsFull 2465 #define traceENTER_xStreamBufferIsFull( xStreamBuffer ) 2466 #endif 2467 2468 #ifndef traceRETURN_xStreamBufferIsFull 2469 #define traceRETURN_xStreamBufferIsFull( xReturn ) 2470 #endif 2471 2472 #ifndef traceENTER_xStreamBufferSendCompletedFromISR 2473 #define traceENTER_xStreamBufferSendCompletedFromISR( xStreamBuffer, pxHigherPriorityTaskWoken ) 2474 #endif 2475 2476 #ifndef traceRETURN_xStreamBufferSendCompletedFromISR 2477 #define traceRETURN_xStreamBufferSendCompletedFromISR( xReturn ) 2478 #endif 2479 2480 #ifndef traceENTER_xStreamBufferReceiveCompletedFromISR 2481 #define traceENTER_xStreamBufferReceiveCompletedFromISR( xStreamBuffer, pxHigherPriorityTaskWoken ) 2482 #endif 2483 2484 #ifndef traceRETURN_xStreamBufferReceiveCompletedFromISR 2485 #define traceRETURN_xStreamBufferReceiveCompletedFromISR( xReturn ) 2486 #endif 2487 2488 #ifndef traceENTER_uxStreamBufferGetStreamBufferNumber 2489 #define traceENTER_uxStreamBufferGetStreamBufferNumber( xStreamBuffer ) 2490 #endif 2491 2492 #ifndef traceRETURN_uxStreamBufferGetStreamBufferNumber 2493 #define traceRETURN_uxStreamBufferGetStreamBufferNumber( uxStreamBufferNumber ) 2494 #endif 2495 2496 #ifndef traceENTER_vStreamBufferSetStreamBufferNumber 2497 #define traceENTER_vStreamBufferSetStreamBufferNumber( xStreamBuffer, uxStreamBufferNumber ) 2498 #endif 2499 2500 #ifndef traceRETURN_vStreamBufferSetStreamBufferNumber 2501 #define traceRETURN_vStreamBufferSetStreamBufferNumber() 2502 #endif 2503 2504 #ifndef traceENTER_ucStreamBufferGetStreamBufferType 2505 #define traceENTER_ucStreamBufferGetStreamBufferType( xStreamBuffer ) 2506 #endif 2507 2508 #ifndef traceRETURN_ucStreamBufferGetStreamBufferType 2509 #define traceRETURN_ucStreamBufferGetStreamBufferType( ucStreamBufferType ) 2510 #endif 2511 2512 #ifndef traceENTER_vListInitialise 2513 #define traceENTER_vListInitialise( pxList ) 2514 #endif 2515 2516 #ifndef traceRETURN_vListInitialise 2517 #define traceRETURN_vListInitialise() 2518 #endif 2519 2520 #ifndef traceENTER_vListInitialiseItem 2521 #define traceENTER_vListInitialiseItem( pxItem ) 2522 #endif 2523 2524 #ifndef traceRETURN_vListInitialiseItem 2525 #define traceRETURN_vListInitialiseItem() 2526 #endif 2527 2528 #ifndef traceENTER_vListInsertEnd 2529 #define traceENTER_vListInsertEnd( pxList, pxNewListItem ) 2530 #endif 2531 2532 #ifndef traceRETURN_vListInsertEnd 2533 #define traceRETURN_vListInsertEnd() 2534 #endif 2535 2536 #ifndef traceENTER_vListInsert 2537 #define traceENTER_vListInsert( pxList, pxNewListItem ) 2538 #endif 2539 2540 #ifndef traceRETURN_vListInsert 2541 #define traceRETURN_vListInsert() 2542 #endif 2543 2544 #ifndef traceENTER_uxListRemove 2545 #define traceENTER_uxListRemove( pxItemToRemove ) 2546 #endif 2547 2548 #ifndef traceRETURN_uxListRemove 2549 #define traceRETURN_uxListRemove( uxNumberOfItems ) 2550 #endif 2551 2552 #ifndef traceENTER_xCoRoutineCreate 2553 #define traceENTER_xCoRoutineCreate( pxCoRoutineCode, uxPriority, uxIndex ) 2554 #endif 2555 2556 #ifndef traceRETURN_xCoRoutineCreate 2557 #define traceRETURN_xCoRoutineCreate( xReturn ) 2558 #endif 2559 2560 #ifndef traceENTER_vCoRoutineAddToDelayedList 2561 #define traceENTER_vCoRoutineAddToDelayedList( xTicksToDelay, pxEventList ) 2562 #endif 2563 2564 #ifndef traceRETURN_vCoRoutineAddToDelayedList 2565 #define traceRETURN_vCoRoutineAddToDelayedList() 2566 #endif 2567 2568 #ifndef traceENTER_vCoRoutineSchedule 2569 #define traceENTER_vCoRoutineSchedule() 2570 #endif 2571 2572 #ifndef traceRETURN_vCoRoutineSchedule 2573 #define traceRETURN_vCoRoutineSchedule() 2574 #endif 2575 2576 #ifndef traceENTER_xCoRoutineRemoveFromEventList 2577 #define traceENTER_xCoRoutineRemoveFromEventList( pxEventList ) 2578 #endif 2579 2580 #ifndef traceRETURN_xCoRoutineRemoveFromEventList 2581 #define traceRETURN_xCoRoutineRemoveFromEventList( xReturn ) 2582 #endif 2583 2584 #ifndef configGENERATE_RUN_TIME_STATS 2585 #define configGENERATE_RUN_TIME_STATS 0 2586 #endif 2587 2588 #if ( configGENERATE_RUN_TIME_STATS == 1 ) 2589 2590 #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS 2591 #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. 2592 #endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */ 2593 2594 #ifndef portGET_RUN_TIME_COUNTER_VALUE 2595 #ifndef portALT_GET_RUN_TIME_COUNTER_VALUE 2596 #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. 2597 #endif /* portALT_GET_RUN_TIME_COUNTER_VALUE */ 2598 #endif /* portGET_RUN_TIME_COUNTER_VALUE */ 2599 2600 #endif /* configGENERATE_RUN_TIME_STATS */ 2601 2602 #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS 2603 #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() 2604 #endif 2605 2606 #ifndef configUSE_MALLOC_FAILED_HOOK 2607 #define configUSE_MALLOC_FAILED_HOOK 0 2608 #endif 2609 2610 #ifndef portPRIVILEGE_BIT 2611 #define portPRIVILEGE_BIT ( ( UBaseType_t ) 0x00 ) 2612 #endif 2613 2614 #ifndef portYIELD_WITHIN_API 2615 #define portYIELD_WITHIN_API portYIELD 2616 #endif 2617 2618 #ifndef portSUPPRESS_TICKS_AND_SLEEP 2619 #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ) 2620 #endif 2621 2622 #ifndef configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2623 #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2 2624 #endif 2625 2626 #if configEXPECTED_IDLE_TIME_BEFORE_SLEEP < 2 2627 #error configEXPECTED_IDLE_TIME_BEFORE_SLEEP must not be less than 2 2628 #endif 2629 2630 #ifndef configUSE_TICKLESS_IDLE 2631 #define configUSE_TICKLESS_IDLE 0 2632 #endif 2633 2634 #ifndef configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING 2635 #define configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING( x ) 2636 #endif 2637 2638 #ifndef configPRE_SLEEP_PROCESSING 2639 #define configPRE_SLEEP_PROCESSING( x ) 2640 #endif 2641 2642 #ifndef configPOST_SLEEP_PROCESSING 2643 #define configPOST_SLEEP_PROCESSING( x ) 2644 #endif 2645 2646 #ifndef configUSE_QUEUE_SETS 2647 #define configUSE_QUEUE_SETS 0 2648 #endif 2649 2650 #ifndef portTASK_USES_FLOATING_POINT 2651 #define portTASK_USES_FLOATING_POINT() 2652 #endif 2653 2654 #ifndef portALLOCATE_SECURE_CONTEXT 2655 #define portALLOCATE_SECURE_CONTEXT( ulSecureStackSize ) 2656 #endif 2657 2658 #ifndef portDONT_DISCARD 2659 #define portDONT_DISCARD 2660 #endif 2661 2662 #ifndef configUSE_TIME_SLICING 2663 #define configUSE_TIME_SLICING 1 2664 #endif 2665 2666 #ifndef configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 2667 #define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0 2668 #endif 2669 2670 #ifndef configUSE_STATS_FORMATTING_FUNCTIONS 2671 #define configUSE_STATS_FORMATTING_FUNCTIONS 0 2672 #endif 2673 2674 #ifndef portASSERT_IF_INTERRUPT_PRIORITY_INVALID 2675 #define portASSERT_IF_INTERRUPT_PRIORITY_INVALID() 2676 #endif 2677 2678 #ifndef configUSE_TRACE_FACILITY 2679 #define configUSE_TRACE_FACILITY 0 2680 #endif 2681 2682 #ifndef mtCOVERAGE_TEST_MARKER 2683 #define mtCOVERAGE_TEST_MARKER() 2684 #endif 2685 2686 #ifndef mtCOVERAGE_TEST_DELAY 2687 #define mtCOVERAGE_TEST_DELAY() 2688 #endif 2689 2690 #ifndef portASSERT_IF_IN_ISR 2691 #define portASSERT_IF_IN_ISR() 2692 #endif 2693 2694 #ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION 2695 #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 2696 #endif 2697 2698 #ifndef configAPPLICATION_ALLOCATED_HEAP 2699 #define configAPPLICATION_ALLOCATED_HEAP 0 2700 #endif 2701 2702 #ifndef configENABLE_HEAP_PROTECTOR 2703 #define configENABLE_HEAP_PROTECTOR 0 2704 #endif 2705 2706 #ifndef configUSE_TASK_NOTIFICATIONS 2707 #define configUSE_TASK_NOTIFICATIONS 1 2708 #endif 2709 2710 #ifndef configTASK_NOTIFICATION_ARRAY_ENTRIES 2711 #define configTASK_NOTIFICATION_ARRAY_ENTRIES 1 2712 #endif 2713 2714 #if configTASK_NOTIFICATION_ARRAY_ENTRIES < 1 2715 #error configTASK_NOTIFICATION_ARRAY_ENTRIES must be at least 1 2716 #endif 2717 2718 #ifndef configUSE_POSIX_ERRNO 2719 #define configUSE_POSIX_ERRNO 0 2720 #endif 2721 2722 #ifndef configUSE_SB_COMPLETED_CALLBACK 2723 2724 /* By default per-instance callbacks are not enabled for stream buffer or message buffer. */ 2725 #define configUSE_SB_COMPLETED_CALLBACK 0 2726 #endif 2727 2728 #ifndef portTICK_TYPE_IS_ATOMIC 2729 #define portTICK_TYPE_IS_ATOMIC 0 2730 #endif 2731 2732 #ifndef configSUPPORT_STATIC_ALLOCATION 2733 /* Defaults to 0 for backward compatibility. */ 2734 #define configSUPPORT_STATIC_ALLOCATION 0 2735 #endif 2736 2737 #ifndef configKERNEL_PROVIDED_STATIC_MEMORY 2738 #define configKERNEL_PROVIDED_STATIC_MEMORY 0 2739 #endif 2740 2741 #ifndef configSUPPORT_DYNAMIC_ALLOCATION 2742 /* Defaults to 1 for backward compatibility. */ 2743 #define configSUPPORT_DYNAMIC_ALLOCATION 1 2744 #endif 2745 2746 #if ( ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION != 1 ) ) 2747 #error configUSE_STATS_FORMATTING_FUNCTIONS cannot be used without dynamic allocation, but configSUPPORT_DYNAMIC_ALLOCATION is not set to 1. 2748 #endif 2749 2750 #if ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) 2751 #if ( ( configUSE_TRACE_FACILITY != 1 ) && ( configGENERATE_RUN_TIME_STATS != 1 ) ) 2752 #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. 2753 #endif 2754 #endif 2755 2756 #ifndef configSTATS_BUFFER_MAX_LENGTH 2757 #define configSTATS_BUFFER_MAX_LENGTH 0xFFFF 2758 #endif 2759 2760 #ifndef configSTACK_DEPTH_TYPE 2761 2762 /* Defaults to uint16_t for backward compatibility, but can be overridden 2763 * in FreeRTOSConfig.h if uint16_t is too restrictive. */ 2764 #define configSTACK_DEPTH_TYPE uint16_t 2765 #endif 2766 2767 #ifndef configRUN_TIME_COUNTER_TYPE 2768 2769 /* Defaults to uint32_t for backward compatibility, but can be overridden in 2770 * FreeRTOSConfig.h if uint32_t is too restrictive. */ 2771 2772 #define configRUN_TIME_COUNTER_TYPE uint32_t 2773 #endif 2774 2775 #ifndef configMESSAGE_BUFFER_LENGTH_TYPE 2776 2777 /* Defaults to size_t for backward compatibility, but can be overridden 2778 * in FreeRTOSConfig.h if lengths will always be less than the number of bytes 2779 * in a size_t. */ 2780 #define configMESSAGE_BUFFER_LENGTH_TYPE size_t 2781 #endif 2782 2783 /* Sanity check the configuration. */ 2784 #if ( ( configSUPPORT_STATIC_ALLOCATION == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 0 ) ) 2785 #error configSUPPORT_STATIC_ALLOCATION and configSUPPORT_DYNAMIC_ALLOCATION cannot both be 0, but can both be 1. 2786 #endif 2787 2788 #if ( ( configUSE_RECURSIVE_MUTEXES == 1 ) && ( configUSE_MUTEXES != 1 ) ) 2789 #error configUSE_MUTEXES must be set to 1 to use recursive mutexes 2790 #endif 2791 2792 #if ( ( configRUN_MULTIPLE_PRIORITIES == 0 ) && ( configUSE_TASK_PREEMPTION_DISABLE != 0 ) ) 2793 #error configRUN_MULTIPLE_PRIORITIES must be set to 1 to use task preemption disable 2794 #endif 2795 2796 #if ( ( configUSE_PREEMPTION == 0 ) && ( configUSE_TASK_PREEMPTION_DISABLE != 0 ) ) 2797 #error configUSE_PREEMPTION must be set to 1 to use task preemption disable 2798 #endif 2799 2800 #if ( ( configNUMBER_OF_CORES == 1 ) && ( configUSE_TASK_PREEMPTION_DISABLE != 0 ) ) 2801 #error configUSE_TASK_PREEMPTION_DISABLE is not supported in single core FreeRTOS 2802 #endif 2803 2804 #if ( ( configNUMBER_OF_CORES == 1 ) && ( configUSE_CORE_AFFINITY != 0 ) ) 2805 #error configUSE_CORE_AFFINITY is not supported in single core FreeRTOS 2806 #endif 2807 2808 #if ( ( configNUMBER_OF_CORES > 1 ) && ( configUSE_PORT_OPTIMISED_TASK_SELECTION != 0 ) ) 2809 #error configUSE_PORT_OPTIMISED_TASK_SELECTION is not supported in SMP FreeRTOS 2810 #endif 2811 2812 #ifndef configINITIAL_TICK_COUNT 2813 #define configINITIAL_TICK_COUNT 0 2814 #endif 2815 2816 #if ( portTICK_TYPE_IS_ATOMIC == 0 ) 2817 2818 /* Either variables of tick type cannot be read atomically, or 2819 * portTICK_TYPE_IS_ATOMIC was not set - map the critical sections used when 2820 * the tick count is returned to the standard critical section macros. */ 2821 #define portTICK_TYPE_ENTER_CRITICAL() portENTER_CRITICAL() 2822 #define portTICK_TYPE_EXIT_CRITICAL() portEXIT_CRITICAL() 2823 #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() portSET_INTERRUPT_MASK_FROM_ISR() 2824 #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) portCLEAR_INTERRUPT_MASK_FROM_ISR( ( x ) ) 2825 #else 2826 2827 /* The tick type can be read atomically, so critical sections used when the 2828 * tick count is returned can be defined away. */ 2829 #define portTICK_TYPE_ENTER_CRITICAL() 2830 #define portTICK_TYPE_EXIT_CRITICAL() 2831 #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() 0 2832 #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) ( void ) ( x ) 2833 #endif /* if ( portTICK_TYPE_IS_ATOMIC == 0 ) */ 2834 2835 /* Definitions to allow backward compatibility with FreeRTOS versions prior to 2836 * V8 if desired. */ 2837 #ifndef configENABLE_BACKWARD_COMPATIBILITY 2838 #define configENABLE_BACKWARD_COMPATIBILITY 1 2839 #endif 2840 2841 #ifndef configPRINTF 2842 2843 /* configPRINTF() was not defined, so define it away to nothing. To use 2844 * configPRINTF() then define it as follows (where MyPrintFunction() is 2845 * provided by the application writer): 2846 * 2847 * void MyPrintFunction(const char *pcFormat, ... ); 2848 #define configPRINTF( X ) MyPrintFunction X 2849 * 2850 * Then call like a standard printf() function, but placing brackets around 2851 * all parameters so they are passed as a single parameter. For example: 2852 * configPRINTF( ("Value = %d", MyVariable) ); */ 2853 #define configPRINTF( X ) 2854 #endif 2855 2856 #ifndef configMAX 2857 2858 /* The application writer has not provided their own MAX macro, so define 2859 * the following generic implementation. */ 2860 #define configMAX( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) 2861 #endif 2862 2863 #ifndef configMIN 2864 2865 /* The application writer has not provided their own MIN macro, so define 2866 * the following generic implementation. */ 2867 #define configMIN( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) 2868 #endif 2869 2870 #if configENABLE_BACKWARD_COMPATIBILITY == 1 2871 #define eTaskStateGet eTaskGetState 2872 #define portTickType TickType_t 2873 #define xTaskHandle TaskHandle_t 2874 #define xQueueHandle QueueHandle_t 2875 #define xSemaphoreHandle SemaphoreHandle_t 2876 #define xQueueSetHandle QueueSetHandle_t 2877 #define xQueueSetMemberHandle QueueSetMemberHandle_t 2878 #define xTimeOutType TimeOut_t 2879 #define xMemoryRegion MemoryRegion_t 2880 #define xTaskParameters TaskParameters_t 2881 #define xTaskStatusType TaskStatus_t 2882 #define xTimerHandle TimerHandle_t 2883 #define xCoRoutineHandle CoRoutineHandle_t 2884 #define pdTASK_HOOK_CODE TaskHookFunction_t 2885 #define portTICK_RATE_MS portTICK_PERIOD_MS 2886 #define pcTaskGetTaskName pcTaskGetName 2887 #define pcTimerGetTimerName pcTimerGetName 2888 #define pcQueueGetQueueName pcQueueGetName 2889 #define vTaskGetTaskInfo vTaskGetInfo 2890 #define xTaskGetIdleRunTimeCounter ulTaskGetIdleRunTimeCounter 2891 2892 /* Backward compatibility within the scheduler code only - these definitions 2893 * are not really required but are included for completeness. */ 2894 #define tmrTIMER_CALLBACK TimerCallbackFunction_t 2895 #define pdTASK_CODE TaskFunction_t 2896 #define xListItem ListItem_t 2897 #define xList List_t 2898 2899 /* For libraries that break the list data hiding, and access list structure 2900 * members directly (which is not supposed to be done). */ 2901 #define pxContainer pvContainer 2902 #endif /* configENABLE_BACKWARD_COMPATIBILITY */ 2903 2904 #if ( configUSE_ALTERNATIVE_API != 0 ) 2905 #error The alternative API was deprecated some time ago, and was removed in FreeRTOS V9.0 0 2906 #endif 2907 2908 /* Set configUSE_TASK_FPU_SUPPORT to 0 to omit floating point support even 2909 * if floating point hardware is otherwise supported by the FreeRTOS port in use. 2910 * This constant is not supported by all FreeRTOS ports that include floating 2911 * point support. */ 2912 #ifndef configUSE_TASK_FPU_SUPPORT 2913 #define configUSE_TASK_FPU_SUPPORT 1 2914 #endif 2915 2916 /* Set configENABLE_MPU to 1 to enable MPU support and 0 to disable it. This is 2917 * currently used in ARMv8M ports. */ 2918 #ifndef configENABLE_MPU 2919 #define configENABLE_MPU 0 2920 #endif 2921 2922 /* Set configENABLE_FPU to 1 to enable FPU support and 0 to disable it. This is 2923 * currently used in ARMv8M ports. */ 2924 #ifndef configENABLE_FPU 2925 #define configENABLE_FPU 1 2926 #endif 2927 2928 /* Set configENABLE_MVE to 1 to enable MVE support and 0 to disable it. This is 2929 * currently used in ARMv8M ports. */ 2930 #ifndef configENABLE_MVE 2931 #define configENABLE_MVE 0 2932 #endif 2933 2934 /* Set configENABLE_TRUSTZONE to 1 enable TrustZone support and 0 to disable it. 2935 * This is currently used in ARMv8M ports. */ 2936 #ifndef configENABLE_TRUSTZONE 2937 #define configENABLE_TRUSTZONE 1 2938 #endif 2939 2940 /* Set configRUN_FREERTOS_SECURE_ONLY to 1 to run the FreeRTOS ARMv8M port on 2941 * the Secure Side only. */ 2942 #ifndef configRUN_FREERTOS_SECURE_ONLY 2943 #define configRUN_FREERTOS_SECURE_ONLY 0 2944 #endif 2945 2946 #ifndef configRUN_ADDITIONAL_TESTS 2947 #define configRUN_ADDITIONAL_TESTS 0 2948 #endif 2949 2950 /* The following config allows infinite loop control. For example, control the 2951 * infinite loop in idle task function when performing unit tests. */ 2952 #ifndef configCONTROL_INFINITE_LOOP 2953 #define configCONTROL_INFINITE_LOOP() 2954 #endif 2955 2956 /* Sometimes the FreeRTOSConfig.h settings only allow a task to be created using 2957 * dynamically allocated RAM, in which case when any task is deleted it is known 2958 * that both the task's stack and TCB need to be freed. Sometimes the 2959 * FreeRTOSConfig.h settings only allow a task to be created using statically 2960 * allocated RAM, in which case when any task is deleted it is known that neither 2961 * the task's stack or TCB should be freed. Sometimes the FreeRTOSConfig.h 2962 * settings allow a task to be created using either statically or dynamically 2963 * allocated RAM, in which case a member of the TCB is used to record whether the 2964 * stack and/or TCB were allocated statically or dynamically, so when a task is 2965 * deleted the RAM that was allocated dynamically is freed again and no attempt is 2966 * made to free the RAM that was allocated statically. 2967 * tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is only true if it is possible for a 2968 * task to be created using either statically or dynamically allocated RAM. Note 2969 * that if portUSING_MPU_WRAPPERS is 1 then a protected task can be created with 2970 * a statically allocated stack and a dynamically allocated TCB. 2971 * 2972 * The following table lists various combinations of portUSING_MPU_WRAPPERS, 2973 * configSUPPORT_DYNAMIC_ALLOCATION and configSUPPORT_STATIC_ALLOCATION and 2974 * when it is possible to have both static and dynamic allocation: 2975 * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+ 2976 * | MPU | Dynamic | Static | Available Functions | Possible Allocations | Both Dynamic and | Need Free | 2977 * | | | | | | Static Possible | | 2978 * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+ 2979 * | 0 | 0 | 1 | xTaskCreateStatic | TCB - Static, Stack - Static | No | No | 2980 * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------| 2981 * | 0 | 1 | 0 | xTaskCreate | TCB - Dynamic, Stack - Dynamic | No | Yes | 2982 * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------| 2983 * | 0 | 1 | 1 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes | 2984 * | | | | xTaskCreateStatic | 2. TCB - Static, Stack - Static | | | 2985 * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------| 2986 * | 1 | 0 | 1 | xTaskCreateStatic, | TCB - Static, Stack - Static | No | No | 2987 * | | | | xTaskCreateRestrictedStatic | | | | 2988 * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------| 2989 * | 1 | 1 | 0 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes | 2990 * | | | | xTaskCreateRestricted | 2. TCB - Dynamic, Stack - Static | | | 2991 * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------| 2992 * | 1 | 1 | 1 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes | 2993 * | | | | xTaskCreateStatic, | 2. TCB - Dynamic, Stack - Static | | | 2994 * | | | | xTaskCreateRestricted, | 3. TCB - Static, Stack - Static | | | 2995 * | | | | xTaskCreateRestrictedStatic | | | | 2996 * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+ 2997 */ 2998 #define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE \ 2999 ( ( ( portUSING_MPU_WRAPPERS == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) || \ 3000 ( ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) ) 3001 3002 /* 3003 * In line with software engineering best practice, FreeRTOS implements a strict 3004 * data hiding policy, so the real structures used by FreeRTOS to maintain the 3005 * state of tasks, queues, semaphores, etc. are not accessible to the application 3006 * code. However, if the application writer wants to statically allocate such 3007 * an object then the size of the object needs to be known. Dummy structures 3008 * that are guaranteed to have the same size and alignment requirements of the 3009 * real objects are used for this purpose. The dummy list and list item 3010 * structures below are used for inclusion in such a dummy structure. 3011 */ 3012 struct xSTATIC_LIST_ITEM 3013 { 3014 #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 ) 3015 TickType_t xDummy1; 3016 #endif 3017 TickType_t xDummy2; 3018 void * pvDummy3[ 4 ]; 3019 #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 ) 3020 TickType_t xDummy4; 3021 #endif 3022 }; 3023 typedef struct xSTATIC_LIST_ITEM StaticListItem_t; 3024 3025 #if ( configUSE_MINI_LIST_ITEM == 1 ) 3026 /* See the comments above the struct xSTATIC_LIST_ITEM definition. */ 3027 struct xSTATIC_MINI_LIST_ITEM 3028 { 3029 #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 ) 3030 TickType_t xDummy1; 3031 #endif 3032 TickType_t xDummy2; 3033 void * pvDummy3[ 2 ]; 3034 }; 3035 typedef struct xSTATIC_MINI_LIST_ITEM StaticMiniListItem_t; 3036 #else /* if ( configUSE_MINI_LIST_ITEM == 1 ) */ 3037 typedef struct xSTATIC_LIST_ITEM StaticMiniListItem_t; 3038 #endif /* if ( configUSE_MINI_LIST_ITEM == 1 ) */ 3039 3040 /* See the comments above the struct xSTATIC_LIST_ITEM definition. */ 3041 typedef struct xSTATIC_LIST 3042 { 3043 #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 ) 3044 TickType_t xDummy1; 3045 #endif 3046 UBaseType_t uxDummy2; 3047 void * pvDummy3; 3048 StaticMiniListItem_t xDummy4; 3049 #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 ) 3050 TickType_t xDummy5; 3051 #endif 3052 } StaticList_t; 3053 3054 /* 3055 * In line with software engineering best practice, especially when supplying a 3056 * library that is likely to change in future versions, FreeRTOS implements a 3057 * strict data hiding policy. This means the Task structure used internally by 3058 * FreeRTOS is not accessible to application code. However, if the application 3059 * writer wants to statically allocate the memory required to create a task then 3060 * the size of the task object needs to be known. The StaticTask_t structure 3061 * below is provided for this purpose. Its sizes and alignment requirements are 3062 * guaranteed to match those of the genuine structure, no matter which 3063 * architecture is being used, and no matter how the values in FreeRTOSConfig.h 3064 * are set. Its contents are somewhat obfuscated in the hope users will 3065 * recognise that it would be unwise to make direct use of the structure members. 3066 */ 3067 typedef struct xSTATIC_TCB 3068 { 3069 void * pxDummy1; 3070 #if ( portUSING_MPU_WRAPPERS == 1 ) 3071 xMPU_SETTINGS xDummy2; 3072 #endif 3073 #if ( configUSE_CORE_AFFINITY == 1 ) && ( configNUMBER_OF_CORES > 1 ) 3074 UBaseType_t uxDummy26; 3075 #endif 3076 StaticListItem_t xDummy3[ 2 ]; 3077 UBaseType_t uxDummy5; 3078 void * pxDummy6; 3079 #if ( configNUMBER_OF_CORES > 1 ) 3080 BaseType_t xDummy23; 3081 UBaseType_t uxDummy24; 3082 #endif 3083 uint8_t ucDummy7[ configMAX_TASK_NAME_LEN ]; 3084 #if ( configUSE_TASK_PREEMPTION_DISABLE == 1 ) 3085 BaseType_t xDummy25; 3086 #endif 3087 #if ( ( portSTACK_GROWTH > 0 ) || ( configRECORD_STACK_HIGH_ADDRESS == 1 ) ) 3088 void * pxDummy8; 3089 #endif 3090 #if ( portCRITICAL_NESTING_IN_TCB == 1 ) 3091 UBaseType_t uxDummy9; 3092 #endif 3093 #if ( configUSE_TRACE_FACILITY == 1 ) 3094 UBaseType_t uxDummy10[ 2 ]; 3095 #endif 3096 #if ( configUSE_MUTEXES == 1 ) 3097 UBaseType_t uxDummy12[ 2 ]; 3098 #endif 3099 #if ( configUSE_APPLICATION_TASK_TAG == 1 ) 3100 void * pxDummy14; 3101 #endif 3102 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 ) 3103 void * pvDummy15[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ]; 3104 #endif 3105 #if ( configGENERATE_RUN_TIME_STATS == 1 ) 3106 configRUN_TIME_COUNTER_TYPE ulDummy16; 3107 #endif 3108 #if ( configUSE_C_RUNTIME_TLS_SUPPORT == 1 ) 3109 configTLS_BLOCK_TYPE xDummy17; 3110 #endif 3111 #if ( configUSE_TASK_NOTIFICATIONS == 1 ) 3112 uint32_t ulDummy18[ configTASK_NOTIFICATION_ARRAY_ENTRIES ]; 3113 uint8_t ucDummy19[ configTASK_NOTIFICATION_ARRAY_ENTRIES ]; 3114 #endif 3115 #if ( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) 3116 uint8_t uxDummy20; 3117 #endif 3118 3119 #if ( INCLUDE_xTaskAbortDelay == 1 ) 3120 uint8_t ucDummy21; 3121 #endif 3122 #if ( configUSE_POSIX_ERRNO == 1 ) 3123 int iDummy22; 3124 #endif 3125 } StaticTask_t; 3126 3127 /* 3128 * In line with software engineering best practice, especially when supplying a 3129 * library that is likely to change in future versions, FreeRTOS implements a 3130 * strict data hiding policy. This means the Queue structure used internally by 3131 * FreeRTOS is not accessible to application code. However, if the application 3132 * writer wants to statically allocate the memory required to create a queue 3133 * then the size of the queue object needs to be known. The StaticQueue_t 3134 * structure below is provided for this purpose. Its sizes and alignment 3135 * requirements are guaranteed to match those of the genuine structure, no 3136 * matter which architecture is being used, and no matter how the values in 3137 * FreeRTOSConfig.h are set. Its contents are somewhat obfuscated in the hope 3138 * users will recognise that it would be unwise to make direct use of the 3139 * structure members. 3140 */ 3141 typedef struct xSTATIC_QUEUE 3142 { 3143 void * pvDummy1[ 3 ]; 3144 3145 union 3146 { 3147 void * pvDummy2; 3148 UBaseType_t uxDummy2; 3149 } u; 3150 3151 StaticList_t xDummy3[ 2 ]; 3152 UBaseType_t uxDummy4[ 3 ]; 3153 uint8_t ucDummy5[ 2 ]; 3154 3155 #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) 3156 uint8_t ucDummy6; 3157 #endif 3158 3159 #if ( configUSE_QUEUE_SETS == 1 ) 3160 void * pvDummy7; 3161 #endif 3162 3163 #if ( configUSE_TRACE_FACILITY == 1 ) 3164 UBaseType_t uxDummy8; 3165 uint8_t ucDummy9; 3166 #endif 3167 } StaticQueue_t; 3168 typedef StaticQueue_t StaticSemaphore_t; 3169 3170 /* 3171 * In line with software engineering best practice, especially when supplying a 3172 * library that is likely to change in future versions, FreeRTOS implements a 3173 * strict data hiding policy. This means the event group structure used 3174 * internally by FreeRTOS is not accessible to application code. However, if 3175 * the application writer wants to statically allocate the memory required to 3176 * create an event group then the size of the event group object needs to be 3177 * know. The StaticEventGroup_t structure below is provided for this purpose. 3178 * Its sizes and alignment requirements are guaranteed to match those of the 3179 * genuine structure, no matter which architecture is being used, and no matter 3180 * how the values in FreeRTOSConfig.h are set. Its contents are somewhat 3181 * obfuscated in the hope users will recognise that it would be unwise to make 3182 * direct use of the structure members. 3183 */ 3184 typedef struct xSTATIC_EVENT_GROUP 3185 { 3186 TickType_t xDummy1; 3187 StaticList_t xDummy2; 3188 3189 #if ( configUSE_TRACE_FACILITY == 1 ) 3190 UBaseType_t uxDummy3; 3191 #endif 3192 3193 #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) 3194 uint8_t ucDummy4; 3195 #endif 3196 } StaticEventGroup_t; 3197 3198 /* 3199 * In line with software engineering best practice, especially when supplying a 3200 * library that is likely to change in future versions, FreeRTOS implements a 3201 * strict data hiding policy. This means the software timer structure used 3202 * internally by FreeRTOS is not accessible to application code. However, if 3203 * the application writer wants to statically allocate the memory required to 3204 * create a software timer then the size of the queue object needs to be known. 3205 * The StaticTimer_t structure below is provided for this purpose. Its sizes 3206 * and alignment requirements are guaranteed to match those of the genuine 3207 * structure, no matter which architecture is being used, and no matter how the 3208 * values in FreeRTOSConfig.h are set. Its contents are somewhat obfuscated in 3209 * the hope users will recognise that it would be unwise to make direct use of 3210 * the structure members. 3211 */ 3212 typedef struct xSTATIC_TIMER 3213 { 3214 void * pvDummy1; 3215 StaticListItem_t xDummy2; 3216 TickType_t xDummy3; 3217 void * pvDummy5; 3218 TaskFunction_t pvDummy6; 3219 #if ( configUSE_TRACE_FACILITY == 1 ) 3220 UBaseType_t uxDummy7; 3221 #endif 3222 uint8_t ucDummy8; 3223 } StaticTimer_t; 3224 3225 /* 3226 * In line with software engineering best practice, especially when supplying a 3227 * library that is likely to change in future versions, FreeRTOS implements a 3228 * strict data hiding policy. This means the stream buffer structure used 3229 * internally by FreeRTOS is not accessible to application code. However, if 3230 * the application writer wants to statically allocate the memory required to 3231 * create a stream buffer then the size of the stream buffer object needs to be 3232 * known. The StaticStreamBuffer_t structure below is provided for this 3233 * purpose. Its size and alignment requirements are guaranteed to match those 3234 * of the genuine structure, no matter which architecture is being used, and 3235 * no matter how the values in FreeRTOSConfig.h are set. Its contents are 3236 * somewhat obfuscated in the hope users will recognise that it would be unwise 3237 * to make direct use of the structure members. 3238 */ 3239 typedef struct xSTATIC_STREAM_BUFFER 3240 { 3241 size_t uxDummy1[ 4 ]; 3242 void * pvDummy2[ 3 ]; 3243 uint8_t ucDummy3; 3244 #if ( configUSE_TRACE_FACILITY == 1 ) 3245 UBaseType_t uxDummy4; 3246 #endif 3247 #if ( configUSE_SB_COMPLETED_CALLBACK == 1 ) 3248 void * pvDummy5[ 2 ]; 3249 #endif 3250 } StaticStreamBuffer_t; 3251 3252 /* Message buffers are built on stream buffers. */ 3253 typedef StaticStreamBuffer_t StaticMessageBuffer_t; 3254 3255 /* *INDENT-OFF* */ 3256 #ifdef __cplusplus 3257 } 3258 #endif 3259 /* *INDENT-ON* */ 3260 3261 #endif /* INC_FREERTOS_H */ 3262