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