Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: frdm_k64f_freertos_lib
src/include/FreeRTOS.h@0:62cd296ba2a7, 2017-05-31 (annotated)
- Committer:
- fep
- Date:
- Wed May 31 02:27:10 2017 +0000
- Revision:
- 0:62cd296ba2a7
FreeRTOS v9.0.0 for Cortex-M4F (FRDM-K64F and others...)
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| fep | 0:62cd296ba2a7 | 1 | /* |
| fep | 0:62cd296ba2a7 | 2 | FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. |
| fep | 0:62cd296ba2a7 | 3 | All rights reserved |
| fep | 0:62cd296ba2a7 | 4 | |
| fep | 0:62cd296ba2a7 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. |
| fep | 0:62cd296ba2a7 | 6 | |
| fep | 0:62cd296ba2a7 | 7 | This file is part of the FreeRTOS distribution. |
| fep | 0:62cd296ba2a7 | 8 | |
| fep | 0:62cd296ba2a7 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under |
| fep | 0:62cd296ba2a7 | 10 | the terms of the GNU General Public License (version 2) as published by the |
| fep | 0:62cd296ba2a7 | 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. |
| fep | 0:62cd296ba2a7 | 12 | |
| fep | 0:62cd296ba2a7 | 13 | *************************************************************************** |
| fep | 0:62cd296ba2a7 | 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< |
| fep | 0:62cd296ba2a7 | 15 | >>! distribute a combined work that includes FreeRTOS without being !<< |
| fep | 0:62cd296ba2a7 | 16 | >>! obliged to provide the source code for proprietary components !<< |
| fep | 0:62cd296ba2a7 | 17 | >>! outside of the FreeRTOS kernel. !<< |
| fep | 0:62cd296ba2a7 | 18 | *************************************************************************** |
| fep | 0:62cd296ba2a7 | 19 | |
| fep | 0:62cd296ba2a7 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY |
| fep | 0:62cd296ba2a7 | 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
| fep | 0:62cd296ba2a7 | 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following |
| fep | 0:62cd296ba2a7 | 23 | link: http://www.freertos.org/a00114.html |
| fep | 0:62cd296ba2a7 | 24 | |
| fep | 0:62cd296ba2a7 | 25 | *************************************************************************** |
| fep | 0:62cd296ba2a7 | 26 | * * |
| fep | 0:62cd296ba2a7 | 27 | * FreeRTOS provides completely free yet professionally developed, * |
| fep | 0:62cd296ba2a7 | 28 | * robust, strictly quality controlled, supported, and cross * |
| fep | 0:62cd296ba2a7 | 29 | * platform software that is more than just the market leader, it * |
| fep | 0:62cd296ba2a7 | 30 | * is the industry's de facto standard. * |
| fep | 0:62cd296ba2a7 | 31 | * * |
| fep | 0:62cd296ba2a7 | 32 | * Help yourself get started quickly while simultaneously helping * |
| fep | 0:62cd296ba2a7 | 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * |
| fep | 0:62cd296ba2a7 | 34 | * tutorial book, reference manual, or both: * |
| fep | 0:62cd296ba2a7 | 35 | * http://www.FreeRTOS.org/Documentation * |
| fep | 0:62cd296ba2a7 | 36 | * * |
| fep | 0:62cd296ba2a7 | 37 | *************************************************************************** |
| fep | 0:62cd296ba2a7 | 38 | |
| fep | 0:62cd296ba2a7 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading |
| fep | 0:62cd296ba2a7 | 40 | the FAQ page "My application does not run, what could be wrong?". Have you |
| fep | 0:62cd296ba2a7 | 41 | defined configASSERT()? |
| fep | 0:62cd296ba2a7 | 42 | |
| fep | 0:62cd296ba2a7 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality |
| fep | 0:62cd296ba2a7 | 44 | embedded software for free we request you assist our global community by |
| fep | 0:62cd296ba2a7 | 45 | participating in the support forum. |
| fep | 0:62cd296ba2a7 | 46 | |
| fep | 0:62cd296ba2a7 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to |
| fep | 0:62cd296ba2a7 | 48 | be as productive as possible as early as possible. Now you can receive |
| fep | 0:62cd296ba2a7 | 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers |
| fep | 0:62cd296ba2a7 | 50 | Ltd, and the world's leading authority on the world's leading RTOS. |
| fep | 0:62cd296ba2a7 | 51 | |
| fep | 0:62cd296ba2a7 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, |
| fep | 0:62cd296ba2a7 | 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS |
| fep | 0:62cd296ba2a7 | 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. |
| fep | 0:62cd296ba2a7 | 55 | |
| fep | 0:62cd296ba2a7 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. |
| fep | 0:62cd296ba2a7 | 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. |
| fep | 0:62cd296ba2a7 | 58 | |
| fep | 0:62cd296ba2a7 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High |
| fep | 0:62cd296ba2a7 | 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS |
| fep | 0:62cd296ba2a7 | 61 | licenses offer ticketed support, indemnification and commercial middleware. |
| fep | 0:62cd296ba2a7 | 62 | |
| fep | 0:62cd296ba2a7 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety |
| fep | 0:62cd296ba2a7 | 64 | engineered and independently SIL3 certified version for use in safety and |
| fep | 0:62cd296ba2a7 | 65 | mission critical applications that require provable dependability. |
| fep | 0:62cd296ba2a7 | 66 | |
| fep | 0:62cd296ba2a7 | 67 | 1 tab == 4 spaces! |
| fep | 0:62cd296ba2a7 | 68 | */ |
| fep | 0:62cd296ba2a7 | 69 | |
| fep | 0:62cd296ba2a7 | 70 | #ifndef INC_FREERTOS_H |
| fep | 0:62cd296ba2a7 | 71 | #define INC_FREERTOS_H |
| fep | 0:62cd296ba2a7 | 72 | |
| fep | 0:62cd296ba2a7 | 73 | /* |
| fep | 0:62cd296ba2a7 | 74 | * Include the generic headers required for the FreeRTOS port being used. |
| fep | 0:62cd296ba2a7 | 75 | */ |
| fep | 0:62cd296ba2a7 | 76 | #include <stddef.h> |
| fep | 0:62cd296ba2a7 | 77 | |
| fep | 0:62cd296ba2a7 | 78 | /* |
| fep | 0:62cd296ba2a7 | 79 | * If stdint.h cannot be located then: |
| fep | 0:62cd296ba2a7 | 80 | * + If using GCC ensure the -nostdint options is *not* being used. |
| fep | 0:62cd296ba2a7 | 81 | * + Ensure the project's include path includes the directory in which your |
| fep | 0:62cd296ba2a7 | 82 | * compiler stores stdint.h. |
| fep | 0:62cd296ba2a7 | 83 | * + Set any compiler options necessary for it to support C99, as technically |
| fep | 0:62cd296ba2a7 | 84 | * stdint.h is only mandatory with C99 (FreeRTOS does not require C99 in any |
| fep | 0:62cd296ba2a7 | 85 | * other way). |
| fep | 0:62cd296ba2a7 | 86 | * + The FreeRTOS download includes a simple stdint.h definition that can be |
| fep | 0:62cd296ba2a7 | 87 | * used in cases where none is provided by the compiler. The files only |
| fep | 0:62cd296ba2a7 | 88 | * contains the typedefs required to build FreeRTOS. Read the instructions |
| fep | 0:62cd296ba2a7 | 89 | * in FreeRTOS/source/stdint.readme for more information. |
| fep | 0:62cd296ba2a7 | 90 | */ |
| fep | 0:62cd296ba2a7 | 91 | #include <stdint.h> /* READ COMMENT ABOVE. */ |
| fep | 0:62cd296ba2a7 | 92 | |
| fep | 0:62cd296ba2a7 | 93 | #ifdef __cplusplus |
| fep | 0:62cd296ba2a7 | 94 | extern "C" { |
| fep | 0:62cd296ba2a7 | 95 | #endif |
| fep | 0:62cd296ba2a7 | 96 | |
| fep | 0:62cd296ba2a7 | 97 | /* Application specific configuration options. */ |
| fep | 0:62cd296ba2a7 | 98 | #include "FreeRTOSConfig.h" |
| fep | 0:62cd296ba2a7 | 99 | |
| fep | 0:62cd296ba2a7 | 100 | /* Basic FreeRTOS definitions. */ |
| fep | 0:62cd296ba2a7 | 101 | #include "projdefs.h" |
| fep | 0:62cd296ba2a7 | 102 | |
| fep | 0:62cd296ba2a7 | 103 | /* Definitions specific to the port being used. */ |
| fep | 0:62cd296ba2a7 | 104 | #include "portable.h" |
| fep | 0:62cd296ba2a7 | 105 | |
| fep | 0:62cd296ba2a7 | 106 | /* Must be defaulted before configUSE_NEWLIB_REENTRANT is used below. */ |
| fep | 0:62cd296ba2a7 | 107 | #ifndef configUSE_NEWLIB_REENTRANT |
| fep | 0:62cd296ba2a7 | 108 | #define configUSE_NEWLIB_REENTRANT 0 |
| fep | 0:62cd296ba2a7 | 109 | #endif |
| fep | 0:62cd296ba2a7 | 110 | |
| fep | 0:62cd296ba2a7 | 111 | /* Required if struct _reent is used. */ |
| fep | 0:62cd296ba2a7 | 112 | #if ( configUSE_NEWLIB_REENTRANT == 1 ) |
| fep | 0:62cd296ba2a7 | 113 | #include <reent.h> |
| fep | 0:62cd296ba2a7 | 114 | #endif |
| fep | 0:62cd296ba2a7 | 115 | /* |
| fep | 0:62cd296ba2a7 | 116 | * Check all the required application specific macros have been defined. |
| fep | 0:62cd296ba2a7 | 117 | * These macros are application specific and (as downloaded) are defined |
| fep | 0:62cd296ba2a7 | 118 | * within FreeRTOSConfig.h. |
| fep | 0:62cd296ba2a7 | 119 | */ |
| fep | 0:62cd296ba2a7 | 120 | |
| fep | 0:62cd296ba2a7 | 121 | #ifndef configMINIMAL_STACK_SIZE |
| fep | 0:62cd296ba2a7 | 122 | #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. |
| fep | 0:62cd296ba2a7 | 123 | #endif |
| fep | 0:62cd296ba2a7 | 124 | |
| fep | 0:62cd296ba2a7 | 125 | #ifndef configMAX_PRIORITIES |
| fep | 0:62cd296ba2a7 | 126 | #error Missing definition: configMAX_PRIORITIES must be defined in FreeRTOSConfig.h. See the Configuration section of the FreeRTOS API documentation for details. |
| fep | 0:62cd296ba2a7 | 127 | #endif |
| fep | 0:62cd296ba2a7 | 128 | |
| fep | 0:62cd296ba2a7 | 129 | #ifndef configUSE_PREEMPTION |
| fep | 0:62cd296ba2a7 | 130 | #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. |
| fep | 0:62cd296ba2a7 | 131 | #endif |
| fep | 0:62cd296ba2a7 | 132 | |
| fep | 0:62cd296ba2a7 | 133 | #ifndef configUSE_IDLE_HOOK |
| fep | 0:62cd296ba2a7 | 134 | #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. |
| fep | 0:62cd296ba2a7 | 135 | #endif |
| fep | 0:62cd296ba2a7 | 136 | |
| fep | 0:62cd296ba2a7 | 137 | #ifndef configUSE_TICK_HOOK |
| fep | 0:62cd296ba2a7 | 138 | #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. |
| fep | 0:62cd296ba2a7 | 139 | #endif |
| fep | 0:62cd296ba2a7 | 140 | |
| fep | 0:62cd296ba2a7 | 141 | #ifndef configUSE_16_BIT_TICKS |
| fep | 0:62cd296ba2a7 | 142 | #error Missing definition: configUSE_16_BIT_TICKS must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. |
| fep | 0:62cd296ba2a7 | 143 | #endif |
| fep | 0:62cd296ba2a7 | 144 | |
| fep | 0:62cd296ba2a7 | 145 | #ifndef configMAX_PRIORITIES |
| fep | 0:62cd296ba2a7 | 146 | #error configMAX_PRIORITIES must be defined to be greater than or equal to 1. |
| fep | 0:62cd296ba2a7 | 147 | #endif |
| fep | 0:62cd296ba2a7 | 148 | |
| fep | 0:62cd296ba2a7 | 149 | #ifndef configUSE_CO_ROUTINES |
| fep | 0:62cd296ba2a7 | 150 | #define configUSE_CO_ROUTINES 0 |
| fep | 0:62cd296ba2a7 | 151 | #endif |
| fep | 0:62cd296ba2a7 | 152 | |
| fep | 0:62cd296ba2a7 | 153 | #ifndef INCLUDE_vTaskPrioritySet |
| fep | 0:62cd296ba2a7 | 154 | #define INCLUDE_vTaskPrioritySet 0 |
| fep | 0:62cd296ba2a7 | 155 | #endif |
| fep | 0:62cd296ba2a7 | 156 | |
| fep | 0:62cd296ba2a7 | 157 | #ifndef INCLUDE_uxTaskPriorityGet |
| fep | 0:62cd296ba2a7 | 158 | #define INCLUDE_uxTaskPriorityGet 0 |
| fep | 0:62cd296ba2a7 | 159 | #endif |
| fep | 0:62cd296ba2a7 | 160 | |
| fep | 0:62cd296ba2a7 | 161 | #ifndef INCLUDE_vTaskDelete |
| fep | 0:62cd296ba2a7 | 162 | #define INCLUDE_vTaskDelete 0 |
| fep | 0:62cd296ba2a7 | 163 | #endif |
| fep | 0:62cd296ba2a7 | 164 | |
| fep | 0:62cd296ba2a7 | 165 | #ifndef INCLUDE_vTaskSuspend |
| fep | 0:62cd296ba2a7 | 166 | #define INCLUDE_vTaskSuspend 0 |
| fep | 0:62cd296ba2a7 | 167 | #endif |
| fep | 0:62cd296ba2a7 | 168 | |
| fep | 0:62cd296ba2a7 | 169 | #ifndef INCLUDE_vTaskDelayUntil |
| fep | 0:62cd296ba2a7 | 170 | #define INCLUDE_vTaskDelayUntil 0 |
| fep | 0:62cd296ba2a7 | 171 | #endif |
| fep | 0:62cd296ba2a7 | 172 | |
| fep | 0:62cd296ba2a7 | 173 | #ifndef INCLUDE_vTaskDelay |
| fep | 0:62cd296ba2a7 | 174 | #define INCLUDE_vTaskDelay 0 |
| fep | 0:62cd296ba2a7 | 175 | #endif |
| fep | 0:62cd296ba2a7 | 176 | |
| fep | 0:62cd296ba2a7 | 177 | #ifndef INCLUDE_xTaskGetIdleTaskHandle |
| fep | 0:62cd296ba2a7 | 178 | #define INCLUDE_xTaskGetIdleTaskHandle 0 |
| fep | 0:62cd296ba2a7 | 179 | #endif |
| fep | 0:62cd296ba2a7 | 180 | |
| fep | 0:62cd296ba2a7 | 181 | #ifndef INCLUDE_xTaskAbortDelay |
| fep | 0:62cd296ba2a7 | 182 | #define INCLUDE_xTaskAbortDelay 0 |
| fep | 0:62cd296ba2a7 | 183 | #endif |
| fep | 0:62cd296ba2a7 | 184 | |
| fep | 0:62cd296ba2a7 | 185 | #ifndef INCLUDE_xQueueGetMutexHolder |
| fep | 0:62cd296ba2a7 | 186 | #define INCLUDE_xQueueGetMutexHolder 0 |
| fep | 0:62cd296ba2a7 | 187 | #endif |
| fep | 0:62cd296ba2a7 | 188 | |
| fep | 0:62cd296ba2a7 | 189 | #ifndef INCLUDE_xSemaphoreGetMutexHolder |
| fep | 0:62cd296ba2a7 | 190 | #define INCLUDE_xSemaphoreGetMutexHolder INCLUDE_xQueueGetMutexHolder |
| fep | 0:62cd296ba2a7 | 191 | #endif |
| fep | 0:62cd296ba2a7 | 192 | |
| fep | 0:62cd296ba2a7 | 193 | #ifndef INCLUDE_xTaskGetHandle |
| fep | 0:62cd296ba2a7 | 194 | #define INCLUDE_xTaskGetHandle 0 |
| fep | 0:62cd296ba2a7 | 195 | #endif |
| fep | 0:62cd296ba2a7 | 196 | |
| fep | 0:62cd296ba2a7 | 197 | #ifndef INCLUDE_uxTaskGetStackHighWaterMark |
| fep | 0:62cd296ba2a7 | 198 | #define INCLUDE_uxTaskGetStackHighWaterMark 0 |
| fep | 0:62cd296ba2a7 | 199 | #endif |
| fep | 0:62cd296ba2a7 | 200 | |
| fep | 0:62cd296ba2a7 | 201 | #ifndef INCLUDE_eTaskGetState |
| fep | 0:62cd296ba2a7 | 202 | #define INCLUDE_eTaskGetState 0 |
| fep | 0:62cd296ba2a7 | 203 | #endif |
| fep | 0:62cd296ba2a7 | 204 | |
| fep | 0:62cd296ba2a7 | 205 | #ifndef INCLUDE_xTaskResumeFromISR |
| fep | 0:62cd296ba2a7 | 206 | #define INCLUDE_xTaskResumeFromISR 1 |
| fep | 0:62cd296ba2a7 | 207 | #endif |
| fep | 0:62cd296ba2a7 | 208 | |
| fep | 0:62cd296ba2a7 | 209 | #ifndef INCLUDE_xTimerPendFunctionCall |
| fep | 0:62cd296ba2a7 | 210 | #define INCLUDE_xTimerPendFunctionCall 0 |
| fep | 0:62cd296ba2a7 | 211 | #endif |
| fep | 0:62cd296ba2a7 | 212 | |
| fep | 0:62cd296ba2a7 | 213 | #ifndef INCLUDE_xTaskGetSchedulerState |
| fep | 0:62cd296ba2a7 | 214 | #define INCLUDE_xTaskGetSchedulerState 0 |
| fep | 0:62cd296ba2a7 | 215 | #endif |
| fep | 0:62cd296ba2a7 | 216 | |
| fep | 0:62cd296ba2a7 | 217 | #ifndef INCLUDE_xTaskGetCurrentTaskHandle |
| fep | 0:62cd296ba2a7 | 218 | #define INCLUDE_xTaskGetCurrentTaskHandle 0 |
| fep | 0:62cd296ba2a7 | 219 | #endif |
| fep | 0:62cd296ba2a7 | 220 | |
| fep | 0:62cd296ba2a7 | 221 | #if configUSE_CO_ROUTINES != 0 |
| fep | 0:62cd296ba2a7 | 222 | #ifndef configMAX_CO_ROUTINE_PRIORITIES |
| fep | 0:62cd296ba2a7 | 223 | #error configMAX_CO_ROUTINE_PRIORITIES must be greater than or equal to 1. |
| fep | 0:62cd296ba2a7 | 224 | #endif |
| fep | 0:62cd296ba2a7 | 225 | #endif |
| fep | 0:62cd296ba2a7 | 226 | |
| fep | 0:62cd296ba2a7 | 227 | #ifndef configUSE_DAEMON_TASK_STARTUP_HOOK |
| fep | 0:62cd296ba2a7 | 228 | #define configUSE_DAEMON_TASK_STARTUP_HOOK 0 |
| fep | 0:62cd296ba2a7 | 229 | #endif |
| fep | 0:62cd296ba2a7 | 230 | |
| fep | 0:62cd296ba2a7 | 231 | #ifndef configUSE_APPLICATION_TASK_TAG |
| fep | 0:62cd296ba2a7 | 232 | #define configUSE_APPLICATION_TASK_TAG 0 |
| fep | 0:62cd296ba2a7 | 233 | #endif |
| fep | 0:62cd296ba2a7 | 234 | |
| fep | 0:62cd296ba2a7 | 235 | #ifndef configNUM_THREAD_LOCAL_STORAGE_POINTERS |
| fep | 0:62cd296ba2a7 | 236 | #define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0 |
| fep | 0:62cd296ba2a7 | 237 | #endif |
| fep | 0:62cd296ba2a7 | 238 | |
| fep | 0:62cd296ba2a7 | 239 | #ifndef configUSE_RECURSIVE_MUTEXES |
| fep | 0:62cd296ba2a7 | 240 | #define configUSE_RECURSIVE_MUTEXES 0 |
| fep | 0:62cd296ba2a7 | 241 | #endif |
| fep | 0:62cd296ba2a7 | 242 | |
| fep | 0:62cd296ba2a7 | 243 | #ifndef configUSE_MUTEXES |
| fep | 0:62cd296ba2a7 | 244 | #define configUSE_MUTEXES 0 |
| fep | 0:62cd296ba2a7 | 245 | #endif |
| fep | 0:62cd296ba2a7 | 246 | |
| fep | 0:62cd296ba2a7 | 247 | #ifndef configUSE_TIMERS |
| fep | 0:62cd296ba2a7 | 248 | #define configUSE_TIMERS 0 |
| fep | 0:62cd296ba2a7 | 249 | #endif |
| fep | 0:62cd296ba2a7 | 250 | |
| fep | 0:62cd296ba2a7 | 251 | #ifndef configUSE_COUNTING_SEMAPHORES |
| fep | 0:62cd296ba2a7 | 252 | #define configUSE_COUNTING_SEMAPHORES 0 |
| fep | 0:62cd296ba2a7 | 253 | #endif |
| fep | 0:62cd296ba2a7 | 254 | |
| fep | 0:62cd296ba2a7 | 255 | #ifndef configUSE_ALTERNATIVE_API |
| fep | 0:62cd296ba2a7 | 256 | #define configUSE_ALTERNATIVE_API 0 |
| fep | 0:62cd296ba2a7 | 257 | #endif |
| fep | 0:62cd296ba2a7 | 258 | |
| fep | 0:62cd296ba2a7 | 259 | #ifndef portCRITICAL_NESTING_IN_TCB |
| fep | 0:62cd296ba2a7 | 260 | #define portCRITICAL_NESTING_IN_TCB 0 |
| fep | 0:62cd296ba2a7 | 261 | #endif |
| fep | 0:62cd296ba2a7 | 262 | |
| fep | 0:62cd296ba2a7 | 263 | #ifndef configMAX_TASK_NAME_LEN |
| fep | 0:62cd296ba2a7 | 264 | #define configMAX_TASK_NAME_LEN 16 |
| fep | 0:62cd296ba2a7 | 265 | #endif |
| fep | 0:62cd296ba2a7 | 266 | |
| fep | 0:62cd296ba2a7 | 267 | #ifndef configIDLE_SHOULD_YIELD |
| fep | 0:62cd296ba2a7 | 268 | #define configIDLE_SHOULD_YIELD 1 |
| fep | 0:62cd296ba2a7 | 269 | #endif |
| fep | 0:62cd296ba2a7 | 270 | |
| fep | 0:62cd296ba2a7 | 271 | #if configMAX_TASK_NAME_LEN < 1 |
| fep | 0:62cd296ba2a7 | 272 | #error configMAX_TASK_NAME_LEN must be set to a minimum of 1 in FreeRTOSConfig.h |
| fep | 0:62cd296ba2a7 | 273 | #endif |
| fep | 0:62cd296ba2a7 | 274 | |
| fep | 0:62cd296ba2a7 | 275 | #ifndef configASSERT |
| fep | 0:62cd296ba2a7 | 276 | #define configASSERT( x ) |
| fep | 0:62cd296ba2a7 | 277 | #define configASSERT_DEFINED 0 |
| fep | 0:62cd296ba2a7 | 278 | #else |
| fep | 0:62cd296ba2a7 | 279 | #define configASSERT_DEFINED 1 |
| fep | 0:62cd296ba2a7 | 280 | #endif |
| fep | 0:62cd296ba2a7 | 281 | |
| fep | 0:62cd296ba2a7 | 282 | /* The timers module relies on xTaskGetSchedulerState(). */ |
| fep | 0:62cd296ba2a7 | 283 | #if configUSE_TIMERS == 1 |
| fep | 0:62cd296ba2a7 | 284 | |
| fep | 0:62cd296ba2a7 | 285 | #ifndef configTIMER_TASK_PRIORITY |
| fep | 0:62cd296ba2a7 | 286 | #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_PRIORITY must also be defined. |
| fep | 0:62cd296ba2a7 | 287 | #endif /* configTIMER_TASK_PRIORITY */ |
| fep | 0:62cd296ba2a7 | 288 | |
| fep | 0:62cd296ba2a7 | 289 | #ifndef configTIMER_QUEUE_LENGTH |
| fep | 0:62cd296ba2a7 | 290 | #error If configUSE_TIMERS is set to 1 then configTIMER_QUEUE_LENGTH must also be defined. |
| fep | 0:62cd296ba2a7 | 291 | #endif /* configTIMER_QUEUE_LENGTH */ |
| fep | 0:62cd296ba2a7 | 292 | |
| fep | 0:62cd296ba2a7 | 293 | #ifndef configTIMER_TASK_STACK_DEPTH |
| fep | 0:62cd296ba2a7 | 294 | #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_STACK_DEPTH must also be defined. |
| fep | 0:62cd296ba2a7 | 295 | #endif /* configTIMER_TASK_STACK_DEPTH */ |
| fep | 0:62cd296ba2a7 | 296 | |
| fep | 0:62cd296ba2a7 | 297 | #endif /* configUSE_TIMERS */ |
| fep | 0:62cd296ba2a7 | 298 | |
| fep | 0:62cd296ba2a7 | 299 | #ifndef portSET_INTERRUPT_MASK_FROM_ISR |
| fep | 0:62cd296ba2a7 | 300 | #define portSET_INTERRUPT_MASK_FROM_ISR() 0 |
| fep | 0:62cd296ba2a7 | 301 | #endif |
| fep | 0:62cd296ba2a7 | 302 | |
| fep | 0:62cd296ba2a7 | 303 | #ifndef portCLEAR_INTERRUPT_MASK_FROM_ISR |
| fep | 0:62cd296ba2a7 | 304 | #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue ) ( void ) uxSavedStatusValue |
| fep | 0:62cd296ba2a7 | 305 | #endif |
| fep | 0:62cd296ba2a7 | 306 | |
| fep | 0:62cd296ba2a7 | 307 | #ifndef portCLEAN_UP_TCB |
| fep | 0:62cd296ba2a7 | 308 | #define portCLEAN_UP_TCB( pxTCB ) ( void ) pxTCB |
| fep | 0:62cd296ba2a7 | 309 | #endif |
| fep | 0:62cd296ba2a7 | 310 | |
| fep | 0:62cd296ba2a7 | 311 | #ifndef portPRE_TASK_DELETE_HOOK |
| fep | 0:62cd296ba2a7 | 312 | #define portPRE_TASK_DELETE_HOOK( pvTaskToDelete, pxYieldPending ) |
| fep | 0:62cd296ba2a7 | 313 | #endif |
| fep | 0:62cd296ba2a7 | 314 | |
| fep | 0:62cd296ba2a7 | 315 | #ifndef portSETUP_TCB |
| fep | 0:62cd296ba2a7 | 316 | #define portSETUP_TCB( pxTCB ) ( void ) pxTCB |
| fep | 0:62cd296ba2a7 | 317 | #endif |
| fep | 0:62cd296ba2a7 | 318 | |
| fep | 0:62cd296ba2a7 | 319 | #ifndef configQUEUE_REGISTRY_SIZE |
| fep | 0:62cd296ba2a7 | 320 | #define configQUEUE_REGISTRY_SIZE 0U |
| fep | 0:62cd296ba2a7 | 321 | #endif |
| fep | 0:62cd296ba2a7 | 322 | |
| fep | 0:62cd296ba2a7 | 323 | #if ( configQUEUE_REGISTRY_SIZE < 1 ) |
| fep | 0:62cd296ba2a7 | 324 | #define vQueueAddToRegistry( xQueue, pcName ) |
| fep | 0:62cd296ba2a7 | 325 | #define vQueueUnregisterQueue( xQueue ) |
| fep | 0:62cd296ba2a7 | 326 | #define pcQueueGetName( xQueue ) |
| fep | 0:62cd296ba2a7 | 327 | #endif |
| fep | 0:62cd296ba2a7 | 328 | |
| fep | 0:62cd296ba2a7 | 329 | #ifndef portPOINTER_SIZE_TYPE |
| fep | 0:62cd296ba2a7 | 330 | #define portPOINTER_SIZE_TYPE uint32_t |
| fep | 0:62cd296ba2a7 | 331 | #endif |
| fep | 0:62cd296ba2a7 | 332 | |
| fep | 0:62cd296ba2a7 | 333 | /* Remove any unused trace macros. */ |
| fep | 0:62cd296ba2a7 | 334 | #ifndef traceSTART |
| fep | 0:62cd296ba2a7 | 335 | /* Used to perform any necessary initialisation - for example, open a file |
| fep | 0:62cd296ba2a7 | 336 | into which trace is to be written. */ |
| fep | 0:62cd296ba2a7 | 337 | #define traceSTART() |
| fep | 0:62cd296ba2a7 | 338 | #endif |
| fep | 0:62cd296ba2a7 | 339 | |
| fep | 0:62cd296ba2a7 | 340 | #ifndef traceEND |
| fep | 0:62cd296ba2a7 | 341 | /* Use to close a trace, for example close a file into which trace has been |
| fep | 0:62cd296ba2a7 | 342 | written. */ |
| fep | 0:62cd296ba2a7 | 343 | #define traceEND() |
| fep | 0:62cd296ba2a7 | 344 | #endif |
| fep | 0:62cd296ba2a7 | 345 | |
| fep | 0:62cd296ba2a7 | 346 | #ifndef traceTASK_SWITCHED_IN |
| fep | 0:62cd296ba2a7 | 347 | /* Called after a task has been selected to run. pxCurrentTCB holds a pointer |
| fep | 0:62cd296ba2a7 | 348 | to the task control block of the selected task. */ |
| fep | 0:62cd296ba2a7 | 349 | #define traceTASK_SWITCHED_IN() |
| fep | 0:62cd296ba2a7 | 350 | #endif |
| fep | 0:62cd296ba2a7 | 351 | |
| fep | 0:62cd296ba2a7 | 352 | #ifndef traceINCREASE_TICK_COUNT |
| fep | 0:62cd296ba2a7 | 353 | /* Called before stepping the tick count after waking from tickless idle |
| fep | 0:62cd296ba2a7 | 354 | sleep. */ |
| fep | 0:62cd296ba2a7 | 355 | #define traceINCREASE_TICK_COUNT( x ) |
| fep | 0:62cd296ba2a7 | 356 | #endif |
| fep | 0:62cd296ba2a7 | 357 | |
| fep | 0:62cd296ba2a7 | 358 | #ifndef traceLOW_POWER_IDLE_BEGIN |
| fep | 0:62cd296ba2a7 | 359 | /* Called immediately before entering tickless idle. */ |
| fep | 0:62cd296ba2a7 | 360 | #define traceLOW_POWER_IDLE_BEGIN() |
| fep | 0:62cd296ba2a7 | 361 | #endif |
| fep | 0:62cd296ba2a7 | 362 | |
| fep | 0:62cd296ba2a7 | 363 | #ifndef traceLOW_POWER_IDLE_END |
| fep | 0:62cd296ba2a7 | 364 | /* Called when returning to the Idle task after a tickless idle. */ |
| fep | 0:62cd296ba2a7 | 365 | #define traceLOW_POWER_IDLE_END() |
| fep | 0:62cd296ba2a7 | 366 | #endif |
| fep | 0:62cd296ba2a7 | 367 | |
| fep | 0:62cd296ba2a7 | 368 | #ifndef traceTASK_SWITCHED_OUT |
| fep | 0:62cd296ba2a7 | 369 | /* Called before a task has been selected to run. pxCurrentTCB holds a pointer |
| fep | 0:62cd296ba2a7 | 370 | to the task control block of the task being switched out. */ |
| fep | 0:62cd296ba2a7 | 371 | #define traceTASK_SWITCHED_OUT() |
| fep | 0:62cd296ba2a7 | 372 | #endif |
| fep | 0:62cd296ba2a7 | 373 | |
| fep | 0:62cd296ba2a7 | 374 | #ifndef traceTASK_PRIORITY_INHERIT |
| fep | 0:62cd296ba2a7 | 375 | /* Called when a task attempts to take a mutex that is already held by a |
| fep | 0:62cd296ba2a7 | 376 | lower priority task. pxTCBOfMutexHolder is a pointer to the TCB of the task |
| fep | 0:62cd296ba2a7 | 377 | that holds the mutex. uxInheritedPriority is the priority the mutex holder |
| fep | 0:62cd296ba2a7 | 378 | will inherit (the priority of the task that is attempting to obtain the |
| fep | 0:62cd296ba2a7 | 379 | muted. */ |
| fep | 0:62cd296ba2a7 | 380 | #define traceTASK_PRIORITY_INHERIT( pxTCBOfMutexHolder, uxInheritedPriority ) |
| fep | 0:62cd296ba2a7 | 381 | #endif |
| fep | 0:62cd296ba2a7 | 382 | |
| fep | 0:62cd296ba2a7 | 383 | #ifndef traceTASK_PRIORITY_DISINHERIT |
| fep | 0:62cd296ba2a7 | 384 | /* Called when a task releases a mutex, the holding of which had resulted in |
| fep | 0:62cd296ba2a7 | 385 | the task inheriting the priority of a higher priority task. |
| fep | 0:62cd296ba2a7 | 386 | pxTCBOfMutexHolder is a pointer to the TCB of the task that is releasing the |
| fep | 0:62cd296ba2a7 | 387 | mutex. uxOriginalPriority is the task's configured (base) priority. */ |
| fep | 0:62cd296ba2a7 | 388 | #define traceTASK_PRIORITY_DISINHERIT( pxTCBOfMutexHolder, uxOriginalPriority ) |
| fep | 0:62cd296ba2a7 | 389 | #endif |
| fep | 0:62cd296ba2a7 | 390 | |
| fep | 0:62cd296ba2a7 | 391 | #ifndef traceBLOCKING_ON_QUEUE_RECEIVE |
| fep | 0:62cd296ba2a7 | 392 | /* Task is about to block because it cannot read from a |
| fep | 0:62cd296ba2a7 | 393 | queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore |
| fep | 0:62cd296ba2a7 | 394 | upon which the read was attempted. pxCurrentTCB points to the TCB of the |
| fep | 0:62cd296ba2a7 | 395 | task that attempted the read. */ |
| fep | 0:62cd296ba2a7 | 396 | #define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ) |
| fep | 0:62cd296ba2a7 | 397 | #endif |
| fep | 0:62cd296ba2a7 | 398 | |
| fep | 0:62cd296ba2a7 | 399 | #ifndef traceBLOCKING_ON_QUEUE_SEND |
| fep | 0:62cd296ba2a7 | 400 | /* Task is about to block because it cannot write to a |
| fep | 0:62cd296ba2a7 | 401 | queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore |
| fep | 0:62cd296ba2a7 | 402 | upon which the write was attempted. pxCurrentTCB points to the TCB of the |
| fep | 0:62cd296ba2a7 | 403 | task that attempted the write. */ |
| fep | 0:62cd296ba2a7 | 404 | #define traceBLOCKING_ON_QUEUE_SEND( pxQueue ) |
| fep | 0:62cd296ba2a7 | 405 | #endif |
| fep | 0:62cd296ba2a7 | 406 | |
| fep | 0:62cd296ba2a7 | 407 | #ifndef configCHECK_FOR_STACK_OVERFLOW |
| fep | 0:62cd296ba2a7 | 408 | #define configCHECK_FOR_STACK_OVERFLOW 0 |
| fep | 0:62cd296ba2a7 | 409 | #endif |
| fep | 0:62cd296ba2a7 | 410 | |
| fep | 0:62cd296ba2a7 | 411 | /* The following event macros are embedded in the kernel API calls. */ |
| fep | 0:62cd296ba2a7 | 412 | |
| fep | 0:62cd296ba2a7 | 413 | #ifndef traceMOVED_TASK_TO_READY_STATE |
| fep | 0:62cd296ba2a7 | 414 | #define traceMOVED_TASK_TO_READY_STATE( pxTCB ) |
| fep | 0:62cd296ba2a7 | 415 | #endif |
| fep | 0:62cd296ba2a7 | 416 | |
| fep | 0:62cd296ba2a7 | 417 | #ifndef tracePOST_MOVED_TASK_TO_READY_STATE |
| fep | 0:62cd296ba2a7 | 418 | #define tracePOST_MOVED_TASK_TO_READY_STATE( pxTCB ) |
| fep | 0:62cd296ba2a7 | 419 | #endif |
| fep | 0:62cd296ba2a7 | 420 | |
| fep | 0:62cd296ba2a7 | 421 | #ifndef traceQUEUE_CREATE |
| fep | 0:62cd296ba2a7 | 422 | #define traceQUEUE_CREATE( pxNewQueue ) |
| fep | 0:62cd296ba2a7 | 423 | #endif |
| fep | 0:62cd296ba2a7 | 424 | |
| fep | 0:62cd296ba2a7 | 425 | #ifndef traceQUEUE_CREATE_FAILED |
| fep | 0:62cd296ba2a7 | 426 | #define traceQUEUE_CREATE_FAILED( ucQueueType ) |
| fep | 0:62cd296ba2a7 | 427 | #endif |
| fep | 0:62cd296ba2a7 | 428 | |
| fep | 0:62cd296ba2a7 | 429 | #ifndef traceCREATE_MUTEX |
| fep | 0:62cd296ba2a7 | 430 | #define traceCREATE_MUTEX( pxNewQueue ) |
| fep | 0:62cd296ba2a7 | 431 | #endif |
| fep | 0:62cd296ba2a7 | 432 | |
| fep | 0:62cd296ba2a7 | 433 | #ifndef traceCREATE_MUTEX_FAILED |
| fep | 0:62cd296ba2a7 | 434 | #define traceCREATE_MUTEX_FAILED() |
| fep | 0:62cd296ba2a7 | 435 | #endif |
| fep | 0:62cd296ba2a7 | 436 | |
| fep | 0:62cd296ba2a7 | 437 | #ifndef traceGIVE_MUTEX_RECURSIVE |
| fep | 0:62cd296ba2a7 | 438 | #define traceGIVE_MUTEX_RECURSIVE( pxMutex ) |
| fep | 0:62cd296ba2a7 | 439 | #endif |
| fep | 0:62cd296ba2a7 | 440 | |
| fep | 0:62cd296ba2a7 | 441 | #ifndef traceGIVE_MUTEX_RECURSIVE_FAILED |
| fep | 0:62cd296ba2a7 | 442 | #define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ) |
| fep | 0:62cd296ba2a7 | 443 | #endif |
| fep | 0:62cd296ba2a7 | 444 | |
| fep | 0:62cd296ba2a7 | 445 | #ifndef traceTAKE_MUTEX_RECURSIVE |
| fep | 0:62cd296ba2a7 | 446 | #define traceTAKE_MUTEX_RECURSIVE( pxMutex ) |
| fep | 0:62cd296ba2a7 | 447 | #endif |
| fep | 0:62cd296ba2a7 | 448 | |
| fep | 0:62cd296ba2a7 | 449 | #ifndef traceTAKE_MUTEX_RECURSIVE_FAILED |
| fep | 0:62cd296ba2a7 | 450 | #define traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex ) |
| fep | 0:62cd296ba2a7 | 451 | #endif |
| fep | 0:62cd296ba2a7 | 452 | |
| fep | 0:62cd296ba2a7 | 453 | #ifndef traceCREATE_COUNTING_SEMAPHORE |
| fep | 0:62cd296ba2a7 | 454 | #define traceCREATE_COUNTING_SEMAPHORE() |
| fep | 0:62cd296ba2a7 | 455 | #endif |
| fep | 0:62cd296ba2a7 | 456 | |
| fep | 0:62cd296ba2a7 | 457 | #ifndef traceCREATE_COUNTING_SEMAPHORE_FAILED |
| fep | 0:62cd296ba2a7 | 458 | #define traceCREATE_COUNTING_SEMAPHORE_FAILED() |
| fep | 0:62cd296ba2a7 | 459 | #endif |
| fep | 0:62cd296ba2a7 | 460 | |
| fep | 0:62cd296ba2a7 | 461 | #ifndef traceQUEUE_SEND |
| fep | 0:62cd296ba2a7 | 462 | #define traceQUEUE_SEND( pxQueue ) |
| fep | 0:62cd296ba2a7 | 463 | #endif |
| fep | 0:62cd296ba2a7 | 464 | |
| fep | 0:62cd296ba2a7 | 465 | #ifndef traceQUEUE_SEND_FAILED |
| fep | 0:62cd296ba2a7 | 466 | #define traceQUEUE_SEND_FAILED( pxQueue ) |
| fep | 0:62cd296ba2a7 | 467 | #endif |
| fep | 0:62cd296ba2a7 | 468 | |
| fep | 0:62cd296ba2a7 | 469 | #ifndef traceQUEUE_RECEIVE |
| fep | 0:62cd296ba2a7 | 470 | #define traceQUEUE_RECEIVE( pxQueue ) |
| fep | 0:62cd296ba2a7 | 471 | #endif |
| fep | 0:62cd296ba2a7 | 472 | |
| fep | 0:62cd296ba2a7 | 473 | #ifndef traceQUEUE_PEEK |
| fep | 0:62cd296ba2a7 | 474 | #define traceQUEUE_PEEK( pxQueue ) |
| fep | 0:62cd296ba2a7 | 475 | #endif |
| fep | 0:62cd296ba2a7 | 476 | |
| fep | 0:62cd296ba2a7 | 477 | #ifndef traceQUEUE_PEEK_FROM_ISR |
| fep | 0:62cd296ba2a7 | 478 | #define traceQUEUE_PEEK_FROM_ISR( pxQueue ) |
| fep | 0:62cd296ba2a7 | 479 | #endif |
| fep | 0:62cd296ba2a7 | 480 | |
| fep | 0:62cd296ba2a7 | 481 | #ifndef traceQUEUE_RECEIVE_FAILED |
| fep | 0:62cd296ba2a7 | 482 | #define traceQUEUE_RECEIVE_FAILED( pxQueue ) |
| fep | 0:62cd296ba2a7 | 483 | #endif |
| fep | 0:62cd296ba2a7 | 484 | |
| fep | 0:62cd296ba2a7 | 485 | #ifndef traceQUEUE_SEND_FROM_ISR |
| fep | 0:62cd296ba2a7 | 486 | #define traceQUEUE_SEND_FROM_ISR( pxQueue ) |
| fep | 0:62cd296ba2a7 | 487 | #endif |
| fep | 0:62cd296ba2a7 | 488 | |
| fep | 0:62cd296ba2a7 | 489 | #ifndef traceQUEUE_SEND_FROM_ISR_FAILED |
| fep | 0:62cd296ba2a7 | 490 | #define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) |
| fep | 0:62cd296ba2a7 | 491 | #endif |
| fep | 0:62cd296ba2a7 | 492 | |
| fep | 0:62cd296ba2a7 | 493 | #ifndef traceQUEUE_RECEIVE_FROM_ISR |
| fep | 0:62cd296ba2a7 | 494 | #define traceQUEUE_RECEIVE_FROM_ISR( pxQueue ) |
| fep | 0:62cd296ba2a7 | 495 | #endif |
| fep | 0:62cd296ba2a7 | 496 | |
| fep | 0:62cd296ba2a7 | 497 | #ifndef traceQUEUE_RECEIVE_FROM_ISR_FAILED |
| fep | 0:62cd296ba2a7 | 498 | #define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ) |
| fep | 0:62cd296ba2a7 | 499 | #endif |
| fep | 0:62cd296ba2a7 | 500 | |
| fep | 0:62cd296ba2a7 | 501 | #ifndef traceQUEUE_PEEK_FROM_ISR_FAILED |
| fep | 0:62cd296ba2a7 | 502 | #define traceQUEUE_PEEK_FROM_ISR_FAILED( pxQueue ) |
| fep | 0:62cd296ba2a7 | 503 | #endif |
| fep | 0:62cd296ba2a7 | 504 | |
| fep | 0:62cd296ba2a7 | 505 | #ifndef traceQUEUE_DELETE |
| fep | 0:62cd296ba2a7 | 506 | #define traceQUEUE_DELETE( pxQueue ) |
| fep | 0:62cd296ba2a7 | 507 | #endif |
| fep | 0:62cd296ba2a7 | 508 | |
| fep | 0:62cd296ba2a7 | 509 | #ifndef traceTASK_CREATE |
| fep | 0:62cd296ba2a7 | 510 | #define traceTASK_CREATE( pxNewTCB ) |
| fep | 0:62cd296ba2a7 | 511 | #endif |
| fep | 0:62cd296ba2a7 | 512 | |
| fep | 0:62cd296ba2a7 | 513 | #ifndef traceTASK_CREATE_FAILED |
| fep | 0:62cd296ba2a7 | 514 | #define traceTASK_CREATE_FAILED() |
| fep | 0:62cd296ba2a7 | 515 | #endif |
| fep | 0:62cd296ba2a7 | 516 | |
| fep | 0:62cd296ba2a7 | 517 | #ifndef traceTASK_DELETE |
| fep | 0:62cd296ba2a7 | 518 | #define traceTASK_DELETE( pxTaskToDelete ) |
| fep | 0:62cd296ba2a7 | 519 | #endif |
| fep | 0:62cd296ba2a7 | 520 | |
| fep | 0:62cd296ba2a7 | 521 | #ifndef traceTASK_DELAY_UNTIL |
| fep | 0:62cd296ba2a7 | 522 | #define traceTASK_DELAY_UNTIL( x ) |
| fep | 0:62cd296ba2a7 | 523 | #endif |
| fep | 0:62cd296ba2a7 | 524 | |
| fep | 0:62cd296ba2a7 | 525 | #ifndef traceTASK_DELAY |
| fep | 0:62cd296ba2a7 | 526 | #define traceTASK_DELAY() |
| fep | 0:62cd296ba2a7 | 527 | #endif |
| fep | 0:62cd296ba2a7 | 528 | |
| fep | 0:62cd296ba2a7 | 529 | #ifndef traceTASK_PRIORITY_SET |
| fep | 0:62cd296ba2a7 | 530 | #define traceTASK_PRIORITY_SET( pxTask, uxNewPriority ) |
| fep | 0:62cd296ba2a7 | 531 | #endif |
| fep | 0:62cd296ba2a7 | 532 | |
| fep | 0:62cd296ba2a7 | 533 | #ifndef traceTASK_SUSPEND |
| fep | 0:62cd296ba2a7 | 534 | #define traceTASK_SUSPEND( pxTaskToSuspend ) |
| fep | 0:62cd296ba2a7 | 535 | #endif |
| fep | 0:62cd296ba2a7 | 536 | |
| fep | 0:62cd296ba2a7 | 537 | #ifndef traceTASK_RESUME |
| fep | 0:62cd296ba2a7 | 538 | #define traceTASK_RESUME( pxTaskToResume ) |
| fep | 0:62cd296ba2a7 | 539 | #endif |
| fep | 0:62cd296ba2a7 | 540 | |
| fep | 0:62cd296ba2a7 | 541 | #ifndef traceTASK_RESUME_FROM_ISR |
| fep | 0:62cd296ba2a7 | 542 | #define traceTASK_RESUME_FROM_ISR( pxTaskToResume ) |
| fep | 0:62cd296ba2a7 | 543 | #endif |
| fep | 0:62cd296ba2a7 | 544 | |
| fep | 0:62cd296ba2a7 | 545 | #ifndef traceTASK_INCREMENT_TICK |
| fep | 0:62cd296ba2a7 | 546 | #define traceTASK_INCREMENT_TICK( xTickCount ) |
| fep | 0:62cd296ba2a7 | 547 | #endif |
| fep | 0:62cd296ba2a7 | 548 | |
| fep | 0:62cd296ba2a7 | 549 | #ifndef traceTIMER_CREATE |
| fep | 0:62cd296ba2a7 | 550 | #define traceTIMER_CREATE( pxNewTimer ) |
| fep | 0:62cd296ba2a7 | 551 | #endif |
| fep | 0:62cd296ba2a7 | 552 | |
| fep | 0:62cd296ba2a7 | 553 | #ifndef traceTIMER_CREATE_FAILED |
| fep | 0:62cd296ba2a7 | 554 | #define traceTIMER_CREATE_FAILED() |
| fep | 0:62cd296ba2a7 | 555 | #endif |
| fep | 0:62cd296ba2a7 | 556 | |
| fep | 0:62cd296ba2a7 | 557 | #ifndef traceTIMER_COMMAND_SEND |
| fep | 0:62cd296ba2a7 | 558 | #define traceTIMER_COMMAND_SEND( xTimer, xMessageID, xMessageValueValue, xReturn ) |
| fep | 0:62cd296ba2a7 | 559 | #endif |
| fep | 0:62cd296ba2a7 | 560 | |
| fep | 0:62cd296ba2a7 | 561 | #ifndef traceTIMER_EXPIRED |
| fep | 0:62cd296ba2a7 | 562 | #define traceTIMER_EXPIRED( pxTimer ) |
| fep | 0:62cd296ba2a7 | 563 | #endif |
| fep | 0:62cd296ba2a7 | 564 | |
| fep | 0:62cd296ba2a7 | 565 | #ifndef traceTIMER_COMMAND_RECEIVED |
| fep | 0:62cd296ba2a7 | 566 | #define traceTIMER_COMMAND_RECEIVED( pxTimer, xMessageID, xMessageValue ) |
| fep | 0:62cd296ba2a7 | 567 | #endif |
| fep | 0:62cd296ba2a7 | 568 | |
| fep | 0:62cd296ba2a7 | 569 | #ifndef traceMALLOC |
| fep | 0:62cd296ba2a7 | 570 | #define traceMALLOC( pvAddress, uiSize ) |
| fep | 0:62cd296ba2a7 | 571 | #endif |
| fep | 0:62cd296ba2a7 | 572 | |
| fep | 0:62cd296ba2a7 | 573 | #ifndef traceFREE |
| fep | 0:62cd296ba2a7 | 574 | #define traceFREE( pvAddress, uiSize ) |
| fep | 0:62cd296ba2a7 | 575 | #endif |
| fep | 0:62cd296ba2a7 | 576 | |
| fep | 0:62cd296ba2a7 | 577 | #ifndef traceEVENT_GROUP_CREATE |
| fep | 0:62cd296ba2a7 | 578 | #define traceEVENT_GROUP_CREATE( xEventGroup ) |
| fep | 0:62cd296ba2a7 | 579 | #endif |
| fep | 0:62cd296ba2a7 | 580 | |
| fep | 0:62cd296ba2a7 | 581 | #ifndef traceEVENT_GROUP_CREATE_FAILED |
| fep | 0:62cd296ba2a7 | 582 | #define traceEVENT_GROUP_CREATE_FAILED() |
| fep | 0:62cd296ba2a7 | 583 | #endif |
| fep | 0:62cd296ba2a7 | 584 | |
| fep | 0:62cd296ba2a7 | 585 | #ifndef traceEVENT_GROUP_SYNC_BLOCK |
| fep | 0:62cd296ba2a7 | 586 | #define traceEVENT_GROUP_SYNC_BLOCK( xEventGroup, uxBitsToSet, uxBitsToWaitFor ) |
| fep | 0:62cd296ba2a7 | 587 | #endif |
| fep | 0:62cd296ba2a7 | 588 | |
| fep | 0:62cd296ba2a7 | 589 | #ifndef traceEVENT_GROUP_SYNC_END |
| fep | 0:62cd296ba2a7 | 590 | #define traceEVENT_GROUP_SYNC_END( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) xTimeoutOccurred |
| fep | 0:62cd296ba2a7 | 591 | #endif |
| fep | 0:62cd296ba2a7 | 592 | |
| fep | 0:62cd296ba2a7 | 593 | #ifndef traceEVENT_GROUP_WAIT_BITS_BLOCK |
| fep | 0:62cd296ba2a7 | 594 | #define traceEVENT_GROUP_WAIT_BITS_BLOCK( xEventGroup, uxBitsToWaitFor ) |
| fep | 0:62cd296ba2a7 | 595 | #endif |
| fep | 0:62cd296ba2a7 | 596 | |
| fep | 0:62cd296ba2a7 | 597 | #ifndef traceEVENT_GROUP_WAIT_BITS_END |
| fep | 0:62cd296ba2a7 | 598 | #define traceEVENT_GROUP_WAIT_BITS_END( xEventGroup, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) xTimeoutOccurred |
| fep | 0:62cd296ba2a7 | 599 | #endif |
| fep | 0:62cd296ba2a7 | 600 | |
| fep | 0:62cd296ba2a7 | 601 | #ifndef traceEVENT_GROUP_CLEAR_BITS |
| fep | 0:62cd296ba2a7 | 602 | #define traceEVENT_GROUP_CLEAR_BITS( xEventGroup, uxBitsToClear ) |
| fep | 0:62cd296ba2a7 | 603 | #endif |
| fep | 0:62cd296ba2a7 | 604 | |
| fep | 0:62cd296ba2a7 | 605 | #ifndef traceEVENT_GROUP_CLEAR_BITS_FROM_ISR |
| fep | 0:62cd296ba2a7 | 606 | #define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR( xEventGroup, uxBitsToClear ) |
| fep | 0:62cd296ba2a7 | 607 | #endif |
| fep | 0:62cd296ba2a7 | 608 | |
| fep | 0:62cd296ba2a7 | 609 | #ifndef traceEVENT_GROUP_SET_BITS |
| fep | 0:62cd296ba2a7 | 610 | #define traceEVENT_GROUP_SET_BITS( xEventGroup, uxBitsToSet ) |
| fep | 0:62cd296ba2a7 | 611 | #endif |
| fep | 0:62cd296ba2a7 | 612 | |
| fep | 0:62cd296ba2a7 | 613 | #ifndef traceEVENT_GROUP_SET_BITS_FROM_ISR |
| fep | 0:62cd296ba2a7 | 614 | #define traceEVENT_GROUP_SET_BITS_FROM_ISR( xEventGroup, uxBitsToSet ) |
| fep | 0:62cd296ba2a7 | 615 | #endif |
| fep | 0:62cd296ba2a7 | 616 | |
| fep | 0:62cd296ba2a7 | 617 | #ifndef traceEVENT_GROUP_DELETE |
| fep | 0:62cd296ba2a7 | 618 | #define traceEVENT_GROUP_DELETE( xEventGroup ) |
| fep | 0:62cd296ba2a7 | 619 | #endif |
| fep | 0:62cd296ba2a7 | 620 | |
| fep | 0:62cd296ba2a7 | 621 | #ifndef tracePEND_FUNC_CALL |
| fep | 0:62cd296ba2a7 | 622 | #define tracePEND_FUNC_CALL(xFunctionToPend, pvParameter1, ulParameter2, ret) |
| fep | 0:62cd296ba2a7 | 623 | #endif |
| fep | 0:62cd296ba2a7 | 624 | |
| fep | 0:62cd296ba2a7 | 625 | #ifndef tracePEND_FUNC_CALL_FROM_ISR |
| fep | 0:62cd296ba2a7 | 626 | #define tracePEND_FUNC_CALL_FROM_ISR(xFunctionToPend, pvParameter1, ulParameter2, ret) |
| fep | 0:62cd296ba2a7 | 627 | #endif |
| fep | 0:62cd296ba2a7 | 628 | |
| fep | 0:62cd296ba2a7 | 629 | #ifndef traceQUEUE_REGISTRY_ADD |
| fep | 0:62cd296ba2a7 | 630 | #define traceQUEUE_REGISTRY_ADD(xQueue, pcQueueName) |
| fep | 0:62cd296ba2a7 | 631 | #endif |
| fep | 0:62cd296ba2a7 | 632 | |
| fep | 0:62cd296ba2a7 | 633 | #ifndef traceTASK_NOTIFY_TAKE_BLOCK |
| fep | 0:62cd296ba2a7 | 634 | #define traceTASK_NOTIFY_TAKE_BLOCK() |
| fep | 0:62cd296ba2a7 | 635 | #endif |
| fep | 0:62cd296ba2a7 | 636 | |
| fep | 0:62cd296ba2a7 | 637 | #ifndef traceTASK_NOTIFY_TAKE |
| fep | 0:62cd296ba2a7 | 638 | #define traceTASK_NOTIFY_TAKE() |
| fep | 0:62cd296ba2a7 | 639 | #endif |
| fep | 0:62cd296ba2a7 | 640 | |
| fep | 0:62cd296ba2a7 | 641 | #ifndef traceTASK_NOTIFY_WAIT_BLOCK |
| fep | 0:62cd296ba2a7 | 642 | #define traceTASK_NOTIFY_WAIT_BLOCK() |
| fep | 0:62cd296ba2a7 | 643 | #endif |
| fep | 0:62cd296ba2a7 | 644 | |
| fep | 0:62cd296ba2a7 | 645 | #ifndef traceTASK_NOTIFY_WAIT |
| fep | 0:62cd296ba2a7 | 646 | #define traceTASK_NOTIFY_WAIT() |
| fep | 0:62cd296ba2a7 | 647 | #endif |
| fep | 0:62cd296ba2a7 | 648 | |
| fep | 0:62cd296ba2a7 | 649 | #ifndef traceTASK_NOTIFY |
| fep | 0:62cd296ba2a7 | 650 | #define traceTASK_NOTIFY() |
| fep | 0:62cd296ba2a7 | 651 | #endif |
| fep | 0:62cd296ba2a7 | 652 | |
| fep | 0:62cd296ba2a7 | 653 | #ifndef traceTASK_NOTIFY_FROM_ISR |
| fep | 0:62cd296ba2a7 | 654 | #define traceTASK_NOTIFY_FROM_ISR() |
| fep | 0:62cd296ba2a7 | 655 | #endif |
| fep | 0:62cd296ba2a7 | 656 | |
| fep | 0:62cd296ba2a7 | 657 | #ifndef traceTASK_NOTIFY_GIVE_FROM_ISR |
| fep | 0:62cd296ba2a7 | 658 | #define traceTASK_NOTIFY_GIVE_FROM_ISR() |
| fep | 0:62cd296ba2a7 | 659 | #endif |
| fep | 0:62cd296ba2a7 | 660 | |
| fep | 0:62cd296ba2a7 | 661 | #ifndef configGENERATE_RUN_TIME_STATS |
| fep | 0:62cd296ba2a7 | 662 | #define configGENERATE_RUN_TIME_STATS 0 |
| fep | 0:62cd296ba2a7 | 663 | #endif |
| fep | 0:62cd296ba2a7 | 664 | |
| fep | 0:62cd296ba2a7 | 665 | #if ( configGENERATE_RUN_TIME_STATS == 1 ) |
| fep | 0:62cd296ba2a7 | 666 | |
| fep | 0:62cd296ba2a7 | 667 | #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS |
| fep | 0:62cd296ba2a7 | 668 | #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. |
| fep | 0:62cd296ba2a7 | 669 | #endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */ |
| fep | 0:62cd296ba2a7 | 670 | |
| fep | 0:62cd296ba2a7 | 671 | #ifndef portGET_RUN_TIME_COUNTER_VALUE |
| fep | 0:62cd296ba2a7 | 672 | #ifndef portALT_GET_RUN_TIME_COUNTER_VALUE |
| fep | 0:62cd296ba2a7 | 673 | #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. |
| fep | 0:62cd296ba2a7 | 674 | #endif /* portALT_GET_RUN_TIME_COUNTER_VALUE */ |
| fep | 0:62cd296ba2a7 | 675 | #endif /* portGET_RUN_TIME_COUNTER_VALUE */ |
| fep | 0:62cd296ba2a7 | 676 | |
| fep | 0:62cd296ba2a7 | 677 | #endif /* configGENERATE_RUN_TIME_STATS */ |
| fep | 0:62cd296ba2a7 | 678 | |
| fep | 0:62cd296ba2a7 | 679 | #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS |
| fep | 0:62cd296ba2a7 | 680 | #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() |
| fep | 0:62cd296ba2a7 | 681 | #endif |
| fep | 0:62cd296ba2a7 | 682 | |
| fep | 0:62cd296ba2a7 | 683 | #ifndef configUSE_MALLOC_FAILED_HOOK |
| fep | 0:62cd296ba2a7 | 684 | #define configUSE_MALLOC_FAILED_HOOK 0 |
| fep | 0:62cd296ba2a7 | 685 | #endif |
| fep | 0:62cd296ba2a7 | 686 | |
| fep | 0:62cd296ba2a7 | 687 | #ifndef portPRIVILEGE_BIT |
| fep | 0:62cd296ba2a7 | 688 | #define portPRIVILEGE_BIT ( ( UBaseType_t ) 0x00 ) |
| fep | 0:62cd296ba2a7 | 689 | #endif |
| fep | 0:62cd296ba2a7 | 690 | |
| fep | 0:62cd296ba2a7 | 691 | #ifndef portYIELD_WITHIN_API |
| fep | 0:62cd296ba2a7 | 692 | #define portYIELD_WITHIN_API portYIELD |
| fep | 0:62cd296ba2a7 | 693 | #endif |
| fep | 0:62cd296ba2a7 | 694 | |
| fep | 0:62cd296ba2a7 | 695 | #ifndef portSUPPRESS_TICKS_AND_SLEEP |
| fep | 0:62cd296ba2a7 | 696 | #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ) |
| fep | 0:62cd296ba2a7 | 697 | #endif |
| fep | 0:62cd296ba2a7 | 698 | |
| fep | 0:62cd296ba2a7 | 699 | #ifndef configEXPECTED_IDLE_TIME_BEFORE_SLEEP |
| fep | 0:62cd296ba2a7 | 700 | #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2 |
| fep | 0:62cd296ba2a7 | 701 | #endif |
| fep | 0:62cd296ba2a7 | 702 | |
| fep | 0:62cd296ba2a7 | 703 | #if configEXPECTED_IDLE_TIME_BEFORE_SLEEP < 2 |
| fep | 0:62cd296ba2a7 | 704 | #error configEXPECTED_IDLE_TIME_BEFORE_SLEEP must not be less than 2 |
| fep | 0:62cd296ba2a7 | 705 | #endif |
| fep | 0:62cd296ba2a7 | 706 | |
| fep | 0:62cd296ba2a7 | 707 | #ifndef configUSE_TICKLESS_IDLE |
| fep | 0:62cd296ba2a7 | 708 | #define configUSE_TICKLESS_IDLE 0 |
| fep | 0:62cd296ba2a7 | 709 | #endif |
| fep | 0:62cd296ba2a7 | 710 | |
| fep | 0:62cd296ba2a7 | 711 | #ifndef configPRE_SLEEP_PROCESSING |
| fep | 0:62cd296ba2a7 | 712 | #define configPRE_SLEEP_PROCESSING( x ) |
| fep | 0:62cd296ba2a7 | 713 | #endif |
| fep | 0:62cd296ba2a7 | 714 | |
| fep | 0:62cd296ba2a7 | 715 | #ifndef configPOST_SLEEP_PROCESSING |
| fep | 0:62cd296ba2a7 | 716 | #define configPOST_SLEEP_PROCESSING( x ) |
| fep | 0:62cd296ba2a7 | 717 | #endif |
| fep | 0:62cd296ba2a7 | 718 | |
| fep | 0:62cd296ba2a7 | 719 | #ifndef configUSE_QUEUE_SETS |
| fep | 0:62cd296ba2a7 | 720 | #define configUSE_QUEUE_SETS 0 |
| fep | 0:62cd296ba2a7 | 721 | #endif |
| fep | 0:62cd296ba2a7 | 722 | |
| fep | 0:62cd296ba2a7 | 723 | #ifndef portTASK_USES_FLOATING_POINT |
| fep | 0:62cd296ba2a7 | 724 | #define portTASK_USES_FLOATING_POINT() |
| fep | 0:62cd296ba2a7 | 725 | #endif |
| fep | 0:62cd296ba2a7 | 726 | |
| fep | 0:62cd296ba2a7 | 727 | #ifndef configUSE_TIME_SLICING |
| fep | 0:62cd296ba2a7 | 728 | #define configUSE_TIME_SLICING 1 |
| fep | 0:62cd296ba2a7 | 729 | #endif |
| fep | 0:62cd296ba2a7 | 730 | |
| fep | 0:62cd296ba2a7 | 731 | #ifndef configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS |
| fep | 0:62cd296ba2a7 | 732 | #define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0 |
| fep | 0:62cd296ba2a7 | 733 | #endif |
| fep | 0:62cd296ba2a7 | 734 | |
| fep | 0:62cd296ba2a7 | 735 | #ifndef configUSE_STATS_FORMATTING_FUNCTIONS |
| fep | 0:62cd296ba2a7 | 736 | #define configUSE_STATS_FORMATTING_FUNCTIONS 0 |
| fep | 0:62cd296ba2a7 | 737 | #endif |
| fep | 0:62cd296ba2a7 | 738 | |
| fep | 0:62cd296ba2a7 | 739 | #ifndef portASSERT_IF_INTERRUPT_PRIORITY_INVALID |
| fep | 0:62cd296ba2a7 | 740 | #define portASSERT_IF_INTERRUPT_PRIORITY_INVALID() |
| fep | 0:62cd296ba2a7 | 741 | #endif |
| fep | 0:62cd296ba2a7 | 742 | |
| fep | 0:62cd296ba2a7 | 743 | #ifndef configUSE_TRACE_FACILITY |
| fep | 0:62cd296ba2a7 | 744 | #define configUSE_TRACE_FACILITY 0 |
| fep | 0:62cd296ba2a7 | 745 | #endif |
| fep | 0:62cd296ba2a7 | 746 | |
| fep | 0:62cd296ba2a7 | 747 | #ifndef mtCOVERAGE_TEST_MARKER |
| fep | 0:62cd296ba2a7 | 748 | #define mtCOVERAGE_TEST_MARKER() |
| fep | 0:62cd296ba2a7 | 749 | #endif |
| fep | 0:62cd296ba2a7 | 750 | |
| fep | 0:62cd296ba2a7 | 751 | #ifndef mtCOVERAGE_TEST_DELAY |
| fep | 0:62cd296ba2a7 | 752 | #define mtCOVERAGE_TEST_DELAY() |
| fep | 0:62cd296ba2a7 | 753 | #endif |
| fep | 0:62cd296ba2a7 | 754 | |
| fep | 0:62cd296ba2a7 | 755 | #ifndef portASSERT_IF_IN_ISR |
| fep | 0:62cd296ba2a7 | 756 | #define portASSERT_IF_IN_ISR() |
| fep | 0:62cd296ba2a7 | 757 | #endif |
| fep | 0:62cd296ba2a7 | 758 | |
| fep | 0:62cd296ba2a7 | 759 | #ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION |
| fep | 0:62cd296ba2a7 | 760 | #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 |
| fep | 0:62cd296ba2a7 | 761 | #endif |
| fep | 0:62cd296ba2a7 | 762 | |
| fep | 0:62cd296ba2a7 | 763 | #ifndef configAPPLICATION_ALLOCATED_HEAP |
| fep | 0:62cd296ba2a7 | 764 | #define configAPPLICATION_ALLOCATED_HEAP 0 |
| fep | 0:62cd296ba2a7 | 765 | #endif |
| fep | 0:62cd296ba2a7 | 766 | |
| fep | 0:62cd296ba2a7 | 767 | #ifndef configUSE_TASK_NOTIFICATIONS |
| fep | 0:62cd296ba2a7 | 768 | #define configUSE_TASK_NOTIFICATIONS 1 |
| fep | 0:62cd296ba2a7 | 769 | #endif |
| fep | 0:62cd296ba2a7 | 770 | |
| fep | 0:62cd296ba2a7 | 771 | #ifndef portTICK_TYPE_IS_ATOMIC |
| fep | 0:62cd296ba2a7 | 772 | #define portTICK_TYPE_IS_ATOMIC 0 |
| fep | 0:62cd296ba2a7 | 773 | #endif |
| fep | 0:62cd296ba2a7 | 774 | |
| fep | 0:62cd296ba2a7 | 775 | #ifndef configSUPPORT_STATIC_ALLOCATION |
| fep | 0:62cd296ba2a7 | 776 | /* Defaults to 0 for backward compatibility. */ |
| fep | 0:62cd296ba2a7 | 777 | #define configSUPPORT_STATIC_ALLOCATION 0 |
| fep | 0:62cd296ba2a7 | 778 | #endif |
| fep | 0:62cd296ba2a7 | 779 | |
| fep | 0:62cd296ba2a7 | 780 | #ifndef configSUPPORT_DYNAMIC_ALLOCATION |
| fep | 0:62cd296ba2a7 | 781 | /* Defaults to 1 for backward compatibility. */ |
| fep | 0:62cd296ba2a7 | 782 | #define configSUPPORT_DYNAMIC_ALLOCATION 1 |
| fep | 0:62cd296ba2a7 | 783 | #endif |
| fep | 0:62cd296ba2a7 | 784 | |
| fep | 0:62cd296ba2a7 | 785 | /* Sanity check the configuration. */ |
| fep | 0:62cd296ba2a7 | 786 | #if( configUSE_TICKLESS_IDLE != 0 ) |
| fep | 0:62cd296ba2a7 | 787 | #if( INCLUDE_vTaskSuspend != 1 ) |
| fep | 0:62cd296ba2a7 | 788 | #error INCLUDE_vTaskSuspend must be set to 1 if configUSE_TICKLESS_IDLE is not set to 0 |
| fep | 0:62cd296ba2a7 | 789 | #endif /* INCLUDE_vTaskSuspend */ |
| fep | 0:62cd296ba2a7 | 790 | #endif /* configUSE_TICKLESS_IDLE */ |
| fep | 0:62cd296ba2a7 | 791 | |
| fep | 0:62cd296ba2a7 | 792 | #if( ( configSUPPORT_STATIC_ALLOCATION == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 0 ) ) |
| fep | 0:62cd296ba2a7 | 793 | #error configSUPPORT_STATIC_ALLOCATION and configSUPPORT_DYNAMIC_ALLOCATION cannot both be 0, but can both be 1. |
| fep | 0:62cd296ba2a7 | 794 | #endif |
| fep | 0:62cd296ba2a7 | 795 | |
| fep | 0:62cd296ba2a7 | 796 | #if( ( configUSE_RECURSIVE_MUTEXES == 1 ) && ( configUSE_MUTEXES != 1 ) ) |
| fep | 0:62cd296ba2a7 | 797 | #error configUSE_MUTEXES must be set to 1 to use recursive mutexes |
| fep | 0:62cd296ba2a7 | 798 | #endif |
| fep | 0:62cd296ba2a7 | 799 | |
| fep | 0:62cd296ba2a7 | 800 | #if( portTICK_TYPE_IS_ATOMIC == 0 ) |
| fep | 0:62cd296ba2a7 | 801 | /* Either variables of tick type cannot be read atomically, or |
| fep | 0:62cd296ba2a7 | 802 | portTICK_TYPE_IS_ATOMIC was not set - map the critical sections used when |
| fep | 0:62cd296ba2a7 | 803 | the tick count is returned to the standard critical section macros. */ |
| fep | 0:62cd296ba2a7 | 804 | #define portTICK_TYPE_ENTER_CRITICAL() portENTER_CRITICAL() |
| fep | 0:62cd296ba2a7 | 805 | #define portTICK_TYPE_EXIT_CRITICAL() portEXIT_CRITICAL() |
| fep | 0:62cd296ba2a7 | 806 | #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() portSET_INTERRUPT_MASK_FROM_ISR() |
| fep | 0:62cd296ba2a7 | 807 | #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) portCLEAR_INTERRUPT_MASK_FROM_ISR( ( x ) ) |
| fep | 0:62cd296ba2a7 | 808 | #else |
| fep | 0:62cd296ba2a7 | 809 | /* The tick type can be read atomically, so critical sections used when the |
| fep | 0:62cd296ba2a7 | 810 | tick count is returned can be defined away. */ |
| fep | 0:62cd296ba2a7 | 811 | #define portTICK_TYPE_ENTER_CRITICAL() |
| fep | 0:62cd296ba2a7 | 812 | #define portTICK_TYPE_EXIT_CRITICAL() |
| fep | 0:62cd296ba2a7 | 813 | #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() 0 |
| fep | 0:62cd296ba2a7 | 814 | #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) ( void ) x |
| fep | 0:62cd296ba2a7 | 815 | #endif |
| fep | 0:62cd296ba2a7 | 816 | |
| fep | 0:62cd296ba2a7 | 817 | /* Definitions to allow backward compatibility with FreeRTOS versions prior to |
| fep | 0:62cd296ba2a7 | 818 | V8 if desired. */ |
| fep | 0:62cd296ba2a7 | 819 | #ifndef configENABLE_BACKWARD_COMPATIBILITY |
| fep | 0:62cd296ba2a7 | 820 | #define configENABLE_BACKWARD_COMPATIBILITY 1 |
| fep | 0:62cd296ba2a7 | 821 | #endif |
| fep | 0:62cd296ba2a7 | 822 | |
| fep | 0:62cd296ba2a7 | 823 | #if configENABLE_BACKWARD_COMPATIBILITY == 1 |
| fep | 0:62cd296ba2a7 | 824 | #define eTaskStateGet eTaskGetState |
| fep | 0:62cd296ba2a7 | 825 | #define portTickType TickType_t |
| fep | 0:62cd296ba2a7 | 826 | #define xTaskHandle TaskHandle_t |
| fep | 0:62cd296ba2a7 | 827 | #define xQueueHandle QueueHandle_t |
| fep | 0:62cd296ba2a7 | 828 | #define xSemaphoreHandle SemaphoreHandle_t |
| fep | 0:62cd296ba2a7 | 829 | #define xQueueSetHandle QueueSetHandle_t |
| fep | 0:62cd296ba2a7 | 830 | #define xQueueSetMemberHandle QueueSetMemberHandle_t |
| fep | 0:62cd296ba2a7 | 831 | #define xTimeOutType TimeOut_t |
| fep | 0:62cd296ba2a7 | 832 | #define xMemoryRegion MemoryRegion_t |
| fep | 0:62cd296ba2a7 | 833 | #define xTaskParameters TaskParameters_t |
| fep | 0:62cd296ba2a7 | 834 | #define xTaskStatusType TaskStatus_t |
| fep | 0:62cd296ba2a7 | 835 | #define xTimerHandle TimerHandle_t |
| fep | 0:62cd296ba2a7 | 836 | #define xCoRoutineHandle CoRoutineHandle_t |
| fep | 0:62cd296ba2a7 | 837 | #define pdTASK_HOOK_CODE TaskHookFunction_t |
| fep | 0:62cd296ba2a7 | 838 | #define portTICK_RATE_MS portTICK_PERIOD_MS |
| fep | 0:62cd296ba2a7 | 839 | #define pcTaskGetTaskName pcTaskGetName |
| fep | 0:62cd296ba2a7 | 840 | #define pcTimerGetTimerName pcTimerGetName |
| fep | 0:62cd296ba2a7 | 841 | #define pcQueueGetQueueName pcQueueGetName |
| fep | 0:62cd296ba2a7 | 842 | #define vTaskGetTaskInfo vTaskGetInfo |
| fep | 0:62cd296ba2a7 | 843 | |
| fep | 0:62cd296ba2a7 | 844 | /* Backward compatibility within the scheduler code only - these definitions |
| fep | 0:62cd296ba2a7 | 845 | are not really required but are included for completeness. */ |
| fep | 0:62cd296ba2a7 | 846 | #define tmrTIMER_CALLBACK TimerCallbackFunction_t |
| fep | 0:62cd296ba2a7 | 847 | #define pdTASK_CODE TaskFunction_t |
| fep | 0:62cd296ba2a7 | 848 | #define xListItem ListItem_t |
| fep | 0:62cd296ba2a7 | 849 | #define xList List_t |
| fep | 0:62cd296ba2a7 | 850 | #endif /* configENABLE_BACKWARD_COMPATIBILITY */ |
| fep | 0:62cd296ba2a7 | 851 | |
| fep | 0:62cd296ba2a7 | 852 | #if( configUSE_ALTERNATIVE_API != 0 ) |
| fep | 0:62cd296ba2a7 | 853 | #error The alternative API was deprecated some time ago, and was removed in FreeRTOS V9.0 0 |
| fep | 0:62cd296ba2a7 | 854 | #endif |
| fep | 0:62cd296ba2a7 | 855 | |
| fep | 0:62cd296ba2a7 | 856 | /* Set configUSE_TASK_FPU_SUPPORT to 0 to omit floating point support even |
| fep | 0:62cd296ba2a7 | 857 | if floating point hardware is otherwise supported by the FreeRTOS port in use. |
| fep | 0:62cd296ba2a7 | 858 | This constant is not supported by all FreeRTOS ports that include floating |
| fep | 0:62cd296ba2a7 | 859 | point support. */ |
| fep | 0:62cd296ba2a7 | 860 | #ifndef configUSE_TASK_FPU_SUPPORT |
| fep | 0:62cd296ba2a7 | 861 | #define configUSE_TASK_FPU_SUPPORT 1 |
| fep | 0:62cd296ba2a7 | 862 | #endif |
| fep | 0:62cd296ba2a7 | 863 | |
| fep | 0:62cd296ba2a7 | 864 | /* |
| fep | 0:62cd296ba2a7 | 865 | * In line with software engineering best practice, FreeRTOS implements a strict |
| fep | 0:62cd296ba2a7 | 866 | * data hiding policy, so the real structures used by FreeRTOS to maintain the |
| fep | 0:62cd296ba2a7 | 867 | * state of tasks, queues, semaphores, etc. are not accessible to the application |
| fep | 0:62cd296ba2a7 | 868 | * code. However, if the application writer wants to statically allocate such |
| fep | 0:62cd296ba2a7 | 869 | * an object then the size of the object needs to be know. Dummy structures |
| fep | 0:62cd296ba2a7 | 870 | * that are guaranteed to have the same size and alignment requirements of the |
| fep | 0:62cd296ba2a7 | 871 | * real objects are used for this purpose. The dummy list and list item |
| fep | 0:62cd296ba2a7 | 872 | * structures below are used for inclusion in such a dummy structure. |
| fep | 0:62cd296ba2a7 | 873 | */ |
| fep | 0:62cd296ba2a7 | 874 | struct xSTATIC_LIST_ITEM |
| fep | 0:62cd296ba2a7 | 875 | { |
| fep | 0:62cd296ba2a7 | 876 | TickType_t xDummy1; |
| fep | 0:62cd296ba2a7 | 877 | void *pvDummy2[ 4 ]; |
| fep | 0:62cd296ba2a7 | 878 | }; |
| fep | 0:62cd296ba2a7 | 879 | typedef struct xSTATIC_LIST_ITEM StaticListItem_t; |
| fep | 0:62cd296ba2a7 | 880 | |
| fep | 0:62cd296ba2a7 | 881 | /* See the comments above the struct xSTATIC_LIST_ITEM definition. */ |
| fep | 0:62cd296ba2a7 | 882 | struct xSTATIC_MINI_LIST_ITEM |
| fep | 0:62cd296ba2a7 | 883 | { |
| fep | 0:62cd296ba2a7 | 884 | TickType_t xDummy1; |
| fep | 0:62cd296ba2a7 | 885 | void *pvDummy2[ 2 ]; |
| fep | 0:62cd296ba2a7 | 886 | }; |
| fep | 0:62cd296ba2a7 | 887 | typedef struct xSTATIC_MINI_LIST_ITEM StaticMiniListItem_t; |
| fep | 0:62cd296ba2a7 | 888 | |
| fep | 0:62cd296ba2a7 | 889 | /* See the comments above the struct xSTATIC_LIST_ITEM definition. */ |
| fep | 0:62cd296ba2a7 | 890 | typedef struct xSTATIC_LIST |
| fep | 0:62cd296ba2a7 | 891 | { |
| fep | 0:62cd296ba2a7 | 892 | UBaseType_t uxDummy1; |
| fep | 0:62cd296ba2a7 | 893 | void *pvDummy2; |
| fep | 0:62cd296ba2a7 | 894 | StaticMiniListItem_t xDummy3; |
| fep | 0:62cd296ba2a7 | 895 | } StaticList_t; |
| fep | 0:62cd296ba2a7 | 896 | |
| fep | 0:62cd296ba2a7 | 897 | /* |
| fep | 0:62cd296ba2a7 | 898 | * In line with software engineering best practice, especially when supplying a |
| fep | 0:62cd296ba2a7 | 899 | * library that is likely to change in future versions, FreeRTOS implements a |
| fep | 0:62cd296ba2a7 | 900 | * strict data hiding policy. This means the Task structure used internally by |
| fep | 0:62cd296ba2a7 | 901 | * FreeRTOS is not accessible to application code. However, if the application |
| fep | 0:62cd296ba2a7 | 902 | * writer wants to statically allocate the memory required to create a task then |
| fep | 0:62cd296ba2a7 | 903 | * the size of the task object needs to be know. The StaticTask_t structure |
| fep | 0:62cd296ba2a7 | 904 | * below is provided for this purpose. Its sizes and alignment requirements are |
| fep | 0:62cd296ba2a7 | 905 | * guaranteed to match those of the genuine structure, no matter which |
| fep | 0:62cd296ba2a7 | 906 | * architecture is being used, and no matter how the values in FreeRTOSConfig.h |
| fep | 0:62cd296ba2a7 | 907 | * are set. Its contents are somewhat obfuscated in the hope users will |
| fep | 0:62cd296ba2a7 | 908 | * recognise that it would be unwise to make direct use of the structure members. |
| fep | 0:62cd296ba2a7 | 909 | */ |
| fep | 0:62cd296ba2a7 | 910 | typedef struct xSTATIC_TCB |
| fep | 0:62cd296ba2a7 | 911 | { |
| fep | 0:62cd296ba2a7 | 912 | void *pxDummy1; |
| fep | 0:62cd296ba2a7 | 913 | #if ( portUSING_MPU_WRAPPERS == 1 ) |
| fep | 0:62cd296ba2a7 | 914 | xMPU_SETTINGS xDummy2; |
| fep | 0:62cd296ba2a7 | 915 | #endif |
| fep | 0:62cd296ba2a7 | 916 | StaticListItem_t xDummy3[ 2 ]; |
| fep | 0:62cd296ba2a7 | 917 | UBaseType_t uxDummy5; |
| fep | 0:62cd296ba2a7 | 918 | void *pxDummy6; |
| fep | 0:62cd296ba2a7 | 919 | uint8_t ucDummy7[ configMAX_TASK_NAME_LEN ]; |
| fep | 0:62cd296ba2a7 | 920 | #if ( portSTACK_GROWTH > 0 ) |
| fep | 0:62cd296ba2a7 | 921 | void *pxDummy8; |
| fep | 0:62cd296ba2a7 | 922 | #endif |
| fep | 0:62cd296ba2a7 | 923 | #if ( portCRITICAL_NESTING_IN_TCB == 1 ) |
| fep | 0:62cd296ba2a7 | 924 | UBaseType_t uxDummy9; |
| fep | 0:62cd296ba2a7 | 925 | #endif |
| fep | 0:62cd296ba2a7 | 926 | #if ( configUSE_TRACE_FACILITY == 1 ) |
| fep | 0:62cd296ba2a7 | 927 | UBaseType_t uxDummy10[ 2 ]; |
| fep | 0:62cd296ba2a7 | 928 | #endif |
| fep | 0:62cd296ba2a7 | 929 | #if ( configUSE_MUTEXES == 1 ) |
| fep | 0:62cd296ba2a7 | 930 | UBaseType_t uxDummy12[ 2 ]; |
| fep | 0:62cd296ba2a7 | 931 | #endif |
| fep | 0:62cd296ba2a7 | 932 | #if ( configUSE_APPLICATION_TASK_TAG == 1 ) |
| fep | 0:62cd296ba2a7 | 933 | void *pxDummy14; |
| fep | 0:62cd296ba2a7 | 934 | #endif |
| fep | 0:62cd296ba2a7 | 935 | #if( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 ) |
| fep | 0:62cd296ba2a7 | 936 | void *pvDummy15[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ]; |
| fep | 0:62cd296ba2a7 | 937 | #endif |
| fep | 0:62cd296ba2a7 | 938 | #if ( configGENERATE_RUN_TIME_STATS == 1 ) |
| fep | 0:62cd296ba2a7 | 939 | uint32_t ulDummy16; |
| fep | 0:62cd296ba2a7 | 940 | #endif |
| fep | 0:62cd296ba2a7 | 941 | #if ( configUSE_NEWLIB_REENTRANT == 1 ) |
| fep | 0:62cd296ba2a7 | 942 | struct _reent xDummy17; |
| fep | 0:62cd296ba2a7 | 943 | #endif |
| fep | 0:62cd296ba2a7 | 944 | #if ( configUSE_TASK_NOTIFICATIONS == 1 ) |
| fep | 0:62cd296ba2a7 | 945 | uint32_t ulDummy18; |
| fep | 0:62cd296ba2a7 | 946 | uint8_t ucDummy19; |
| fep | 0:62cd296ba2a7 | 947 | #endif |
| fep | 0:62cd296ba2a7 | 948 | #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) |
| fep | 0:62cd296ba2a7 | 949 | uint8_t uxDummy20; |
| fep | 0:62cd296ba2a7 | 950 | #endif |
| fep | 0:62cd296ba2a7 | 951 | |
| fep | 0:62cd296ba2a7 | 952 | } StaticTask_t; |
| fep | 0:62cd296ba2a7 | 953 | |
| fep | 0:62cd296ba2a7 | 954 | /* |
| fep | 0:62cd296ba2a7 | 955 | * In line with software engineering best practice, especially when supplying a |
| fep | 0:62cd296ba2a7 | 956 | * library that is likely to change in future versions, FreeRTOS implements a |
| fep | 0:62cd296ba2a7 | 957 | * strict data hiding policy. This means the Queue structure used internally by |
| fep | 0:62cd296ba2a7 | 958 | * FreeRTOS is not accessible to application code. However, if the application |
| fep | 0:62cd296ba2a7 | 959 | * writer wants to statically allocate the memory required to create a queue |
| fep | 0:62cd296ba2a7 | 960 | * then the size of the queue object needs to be know. The StaticQueue_t |
| fep | 0:62cd296ba2a7 | 961 | * structure below is provided for this purpose. Its sizes and alignment |
| fep | 0:62cd296ba2a7 | 962 | * requirements are guaranteed to match those of the genuine structure, no |
| fep | 0:62cd296ba2a7 | 963 | * matter which architecture is being used, and no matter how the values in |
| fep | 0:62cd296ba2a7 | 964 | * FreeRTOSConfig.h are set. Its contents are somewhat obfuscated in the hope |
| fep | 0:62cd296ba2a7 | 965 | * users will recognise that it would be unwise to make direct use of the |
| fep | 0:62cd296ba2a7 | 966 | * structure members. |
| fep | 0:62cd296ba2a7 | 967 | */ |
| fep | 0:62cd296ba2a7 | 968 | typedef struct xSTATIC_QUEUE |
| fep | 0:62cd296ba2a7 | 969 | { |
| fep | 0:62cd296ba2a7 | 970 | void *pvDummy1[ 3 ]; |
| fep | 0:62cd296ba2a7 | 971 | |
| fep | 0:62cd296ba2a7 | 972 | union |
| fep | 0:62cd296ba2a7 | 973 | { |
| fep | 0:62cd296ba2a7 | 974 | void *pvDummy2; |
| fep | 0:62cd296ba2a7 | 975 | UBaseType_t uxDummy2; |
| fep | 0:62cd296ba2a7 | 976 | } u; |
| fep | 0:62cd296ba2a7 | 977 | |
| fep | 0:62cd296ba2a7 | 978 | StaticList_t xDummy3[ 2 ]; |
| fep | 0:62cd296ba2a7 | 979 | UBaseType_t uxDummy4[ 3 ]; |
| fep | 0:62cd296ba2a7 | 980 | uint8_t ucDummy5[ 2 ]; |
| fep | 0:62cd296ba2a7 | 981 | |
| fep | 0:62cd296ba2a7 | 982 | #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) |
| fep | 0:62cd296ba2a7 | 983 | uint8_t ucDummy6; |
| fep | 0:62cd296ba2a7 | 984 | #endif |
| fep | 0:62cd296ba2a7 | 985 | |
| fep | 0:62cd296ba2a7 | 986 | #if ( configUSE_QUEUE_SETS == 1 ) |
| fep | 0:62cd296ba2a7 | 987 | void *pvDummy7; |
| fep | 0:62cd296ba2a7 | 988 | #endif |
| fep | 0:62cd296ba2a7 | 989 | |
| fep | 0:62cd296ba2a7 | 990 | #if ( configUSE_TRACE_FACILITY == 1 ) |
| fep | 0:62cd296ba2a7 | 991 | UBaseType_t uxDummy8; |
| fep | 0:62cd296ba2a7 | 992 | uint8_t ucDummy9; |
| fep | 0:62cd296ba2a7 | 993 | #endif |
| fep | 0:62cd296ba2a7 | 994 | |
| fep | 0:62cd296ba2a7 | 995 | } StaticQueue_t; |
| fep | 0:62cd296ba2a7 | 996 | typedef StaticQueue_t StaticSemaphore_t; |
| fep | 0:62cd296ba2a7 | 997 | |
| fep | 0:62cd296ba2a7 | 998 | /* |
| fep | 0:62cd296ba2a7 | 999 | * In line with software engineering best practice, especially when supplying a |
| fep | 0:62cd296ba2a7 | 1000 | * library that is likely to change in future versions, FreeRTOS implements a |
| fep | 0:62cd296ba2a7 | 1001 | * strict data hiding policy. This means the event group structure used |
| fep | 0:62cd296ba2a7 | 1002 | * internally by FreeRTOS is not accessible to application code. However, if |
| fep | 0:62cd296ba2a7 | 1003 | * the application writer wants to statically allocate the memory required to |
| fep | 0:62cd296ba2a7 | 1004 | * create an event group then the size of the event group object needs to be |
| fep | 0:62cd296ba2a7 | 1005 | * know. The StaticEventGroup_t structure below is provided for this purpose. |
| fep | 0:62cd296ba2a7 | 1006 | * Its sizes and alignment requirements are guaranteed to match those of the |
| fep | 0:62cd296ba2a7 | 1007 | * genuine structure, no matter which architecture is being used, and no matter |
| fep | 0:62cd296ba2a7 | 1008 | * how the values in FreeRTOSConfig.h are set. Its contents are somewhat |
| fep | 0:62cd296ba2a7 | 1009 | * obfuscated in the hope users will recognise that it would be unwise to make |
| fep | 0:62cd296ba2a7 | 1010 | * direct use of the structure members. |
| fep | 0:62cd296ba2a7 | 1011 | */ |
| fep | 0:62cd296ba2a7 | 1012 | typedef struct xSTATIC_EVENT_GROUP |
| fep | 0:62cd296ba2a7 | 1013 | { |
| fep | 0:62cd296ba2a7 | 1014 | TickType_t xDummy1; |
| fep | 0:62cd296ba2a7 | 1015 | StaticList_t xDummy2; |
| fep | 0:62cd296ba2a7 | 1016 | |
| fep | 0:62cd296ba2a7 | 1017 | #if( configUSE_TRACE_FACILITY == 1 ) |
| fep | 0:62cd296ba2a7 | 1018 | UBaseType_t uxDummy3; |
| fep | 0:62cd296ba2a7 | 1019 | #endif |
| fep | 0:62cd296ba2a7 | 1020 | |
| fep | 0:62cd296ba2a7 | 1021 | #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) |
| fep | 0:62cd296ba2a7 | 1022 | uint8_t ucDummy4; |
| fep | 0:62cd296ba2a7 | 1023 | #endif |
| fep | 0:62cd296ba2a7 | 1024 | |
| fep | 0:62cd296ba2a7 | 1025 | } StaticEventGroup_t; |
| fep | 0:62cd296ba2a7 | 1026 | |
| fep | 0:62cd296ba2a7 | 1027 | /* |
| fep | 0:62cd296ba2a7 | 1028 | * In line with software engineering best practice, especially when supplying a |
| fep | 0:62cd296ba2a7 | 1029 | * library that is likely to change in future versions, FreeRTOS implements a |
| fep | 0:62cd296ba2a7 | 1030 | * strict data hiding policy. This means the software timer structure used |
| fep | 0:62cd296ba2a7 | 1031 | * internally by FreeRTOS is not accessible to application code. However, if |
| fep | 0:62cd296ba2a7 | 1032 | * the application writer wants to statically allocate the memory required to |
| fep | 0:62cd296ba2a7 | 1033 | * create a software timer then the size of the queue object needs to be know. |
| fep | 0:62cd296ba2a7 | 1034 | * The StaticTimer_t structure below is provided for this purpose. Its sizes |
| fep | 0:62cd296ba2a7 | 1035 | * and alignment requirements are guaranteed to match those of the genuine |
| fep | 0:62cd296ba2a7 | 1036 | * structure, no matter which architecture is being used, and no matter how the |
| fep | 0:62cd296ba2a7 | 1037 | * values in FreeRTOSConfig.h are set. Its contents are somewhat obfuscated in |
| fep | 0:62cd296ba2a7 | 1038 | * the hope users will recognise that it would be unwise to make direct use of |
| fep | 0:62cd296ba2a7 | 1039 | * the structure members. |
| fep | 0:62cd296ba2a7 | 1040 | */ |
| fep | 0:62cd296ba2a7 | 1041 | typedef struct xSTATIC_TIMER |
| fep | 0:62cd296ba2a7 | 1042 | { |
| fep | 0:62cd296ba2a7 | 1043 | void *pvDummy1; |
| fep | 0:62cd296ba2a7 | 1044 | StaticListItem_t xDummy2; |
| fep | 0:62cd296ba2a7 | 1045 | TickType_t xDummy3; |
| fep | 0:62cd296ba2a7 | 1046 | UBaseType_t uxDummy4; |
| fep | 0:62cd296ba2a7 | 1047 | void *pvDummy5[ 2 ]; |
| fep | 0:62cd296ba2a7 | 1048 | #if( configUSE_TRACE_FACILITY == 1 ) |
| fep | 0:62cd296ba2a7 | 1049 | UBaseType_t uxDummy6; |
| fep | 0:62cd296ba2a7 | 1050 | #endif |
| fep | 0:62cd296ba2a7 | 1051 | |
| fep | 0:62cd296ba2a7 | 1052 | #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) |
| fep | 0:62cd296ba2a7 | 1053 | uint8_t ucDummy7; |
| fep | 0:62cd296ba2a7 | 1054 | #endif |
| fep | 0:62cd296ba2a7 | 1055 | |
| fep | 0:62cd296ba2a7 | 1056 | } StaticTimer_t; |
| fep | 0:62cd296ba2a7 | 1057 | |
| fep | 0:62cd296ba2a7 | 1058 | #ifdef __cplusplus |
| fep | 0:62cd296ba2a7 | 1059 | } |
| fep | 0:62cd296ba2a7 | 1060 | #endif |
| fep | 0:62cd296ba2a7 | 1061 | |
| fep | 0:62cd296ba2a7 | 1062 | #endif /* INC_FREERTOS_H */ |
| fep | 0:62cd296ba2a7 | 1063 | |
| fep | 0:62cd296ba2a7 | 1064 |