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