www.freertos.org
Dependents: Nucleo freertos_test FreeRTOS_test freertos_bluetooth ... more
Source/include/mpu_wrappers.h@0:8e57f3e9cc89, 2014-01-24 (annotated)
- Committer:
- rgrover1
- Date:
- Fri Jan 24 14:56:04 2014 +0000
- Revision:
- 0:8e57f3e9cc89
Making FreeRTOS available as a library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rgrover1 | 0:8e57f3e9cc89 | 1 | /* |
rgrover1 | 0:8e57f3e9cc89 | 2 | FreeRTOS V7.6.0 - Copyright (C) 2013 Real Time Engineers Ltd. |
rgrover1 | 0:8e57f3e9cc89 | 3 | All rights reserved |
rgrover1 | 0:8e57f3e9cc89 | 4 | |
rgrover1 | 0:8e57f3e9cc89 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. |
rgrover1 | 0:8e57f3e9cc89 | 6 | |
rgrover1 | 0:8e57f3e9cc89 | 7 | *************************************************************************** |
rgrover1 | 0:8e57f3e9cc89 | 8 | * * |
rgrover1 | 0:8e57f3e9cc89 | 9 | * FreeRTOS provides completely free yet professionally developed, * |
rgrover1 | 0:8e57f3e9cc89 | 10 | * robust, strictly quality controlled, supported, and cross * |
rgrover1 | 0:8e57f3e9cc89 | 11 | * platform software that has become a de facto standard. * |
rgrover1 | 0:8e57f3e9cc89 | 12 | * * |
rgrover1 | 0:8e57f3e9cc89 | 13 | * Help yourself get started quickly and support the FreeRTOS * |
rgrover1 | 0:8e57f3e9cc89 | 14 | * project by purchasing a FreeRTOS tutorial book, reference * |
rgrover1 | 0:8e57f3e9cc89 | 15 | * manual, or both from: http://www.FreeRTOS.org/Documentation * |
rgrover1 | 0:8e57f3e9cc89 | 16 | * * |
rgrover1 | 0:8e57f3e9cc89 | 17 | * Thank you! * |
rgrover1 | 0:8e57f3e9cc89 | 18 | * * |
rgrover1 | 0:8e57f3e9cc89 | 19 | *************************************************************************** |
rgrover1 | 0:8e57f3e9cc89 | 20 | |
rgrover1 | 0:8e57f3e9cc89 | 21 | This file is part of the FreeRTOS distribution. |
rgrover1 | 0:8e57f3e9cc89 | 22 | |
rgrover1 | 0:8e57f3e9cc89 | 23 | FreeRTOS is free software; you can redistribute it and/or modify it under |
rgrover1 | 0:8e57f3e9cc89 | 24 | the terms of the GNU General Public License (version 2) as published by the |
rgrover1 | 0:8e57f3e9cc89 | 25 | Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. |
rgrover1 | 0:8e57f3e9cc89 | 26 | |
rgrover1 | 0:8e57f3e9cc89 | 27 | >>! NOTE: The modification to the GPL is included to allow you to distribute |
rgrover1 | 0:8e57f3e9cc89 | 28 | >>! a combined work that includes FreeRTOS without being obliged to provide |
rgrover1 | 0:8e57f3e9cc89 | 29 | >>! the source code for proprietary components outside of the FreeRTOS |
rgrover1 | 0:8e57f3e9cc89 | 30 | >>! kernel. |
rgrover1 | 0:8e57f3e9cc89 | 31 | |
rgrover1 | 0:8e57f3e9cc89 | 32 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY |
rgrover1 | 0:8e57f3e9cc89 | 33 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
rgrover1 | 0:8e57f3e9cc89 | 34 | FOR A PARTICULAR PURPOSE. Full license text is available from the following |
rgrover1 | 0:8e57f3e9cc89 | 35 | link: http://www.freertos.org/a00114.html |
rgrover1 | 0:8e57f3e9cc89 | 36 | |
rgrover1 | 0:8e57f3e9cc89 | 37 | 1 tab == 4 spaces! |
rgrover1 | 0:8e57f3e9cc89 | 38 | |
rgrover1 | 0:8e57f3e9cc89 | 39 | *************************************************************************** |
rgrover1 | 0:8e57f3e9cc89 | 40 | * * |
rgrover1 | 0:8e57f3e9cc89 | 41 | * Having a problem? Start by reading the FAQ "My application does * |
rgrover1 | 0:8e57f3e9cc89 | 42 | * not run, what could be wrong?" * |
rgrover1 | 0:8e57f3e9cc89 | 43 | * * |
rgrover1 | 0:8e57f3e9cc89 | 44 | * http://www.FreeRTOS.org/FAQHelp.html * |
rgrover1 | 0:8e57f3e9cc89 | 45 | * * |
rgrover1 | 0:8e57f3e9cc89 | 46 | *************************************************************************** |
rgrover1 | 0:8e57f3e9cc89 | 47 | |
rgrover1 | 0:8e57f3e9cc89 | 48 | http://www.FreeRTOS.org - Documentation, books, training, latest versions, |
rgrover1 | 0:8e57f3e9cc89 | 49 | license and Real Time Engineers Ltd. contact details. |
rgrover1 | 0:8e57f3e9cc89 | 50 | |
rgrover1 | 0:8e57f3e9cc89 | 51 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, |
rgrover1 | 0:8e57f3e9cc89 | 52 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS |
rgrover1 | 0:8e57f3e9cc89 | 53 | compatible FAT file system, and our tiny thread aware UDP/IP stack. |
rgrover1 | 0:8e57f3e9cc89 | 54 | |
rgrover1 | 0:8e57f3e9cc89 | 55 | http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High |
rgrover1 | 0:8e57f3e9cc89 | 56 | Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS |
rgrover1 | 0:8e57f3e9cc89 | 57 | licenses offer ticketed support, indemnification and middleware. |
rgrover1 | 0:8e57f3e9cc89 | 58 | |
rgrover1 | 0:8e57f3e9cc89 | 59 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety |
rgrover1 | 0:8e57f3e9cc89 | 60 | engineered and independently SIL3 certified version for use in safety and |
rgrover1 | 0:8e57f3e9cc89 | 61 | mission critical applications that require provable dependability. |
rgrover1 | 0:8e57f3e9cc89 | 62 | |
rgrover1 | 0:8e57f3e9cc89 | 63 | 1 tab == 4 spaces! |
rgrover1 | 0:8e57f3e9cc89 | 64 | */ |
rgrover1 | 0:8e57f3e9cc89 | 65 | |
rgrover1 | 0:8e57f3e9cc89 | 66 | #ifndef MPU_WRAPPERS_H |
rgrover1 | 0:8e57f3e9cc89 | 67 | #define MPU_WRAPPERS_H |
rgrover1 | 0:8e57f3e9cc89 | 68 | |
rgrover1 | 0:8e57f3e9cc89 | 69 | /* This file redefines API functions to be called through a wrapper macro, but |
rgrover1 | 0:8e57f3e9cc89 | 70 | only for ports that are using the MPU. */ |
rgrover1 | 0:8e57f3e9cc89 | 71 | #ifdef portUSING_MPU_WRAPPERS |
rgrover1 | 0:8e57f3e9cc89 | 72 | |
rgrover1 | 0:8e57f3e9cc89 | 73 | /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE will be defined when this file is |
rgrover1 | 0:8e57f3e9cc89 | 74 | included from queue.c or task.c to prevent it from having an effect within |
rgrover1 | 0:8e57f3e9cc89 | 75 | those files. */ |
rgrover1 | 0:8e57f3e9cc89 | 76 | #ifndef MPU_WRAPPERS_INCLUDED_FROM_API_FILE |
rgrover1 | 0:8e57f3e9cc89 | 77 | |
rgrover1 | 0:8e57f3e9cc89 | 78 | #define xTaskGenericCreate MPU_xTaskGenericCreate |
rgrover1 | 0:8e57f3e9cc89 | 79 | #define vTaskAllocateMPURegions MPU_vTaskAllocateMPURegions |
rgrover1 | 0:8e57f3e9cc89 | 80 | #define vTaskDelete MPU_vTaskDelete |
rgrover1 | 0:8e57f3e9cc89 | 81 | #define vTaskDelayUntil MPU_vTaskDelayUntil |
rgrover1 | 0:8e57f3e9cc89 | 82 | #define vTaskDelay MPU_vTaskDelay |
rgrover1 | 0:8e57f3e9cc89 | 83 | #define uxTaskPriorityGet MPU_uxTaskPriorityGet |
rgrover1 | 0:8e57f3e9cc89 | 84 | #define vTaskPrioritySet MPU_vTaskPrioritySet |
rgrover1 | 0:8e57f3e9cc89 | 85 | #define eTaskGetState MPU_eTaskGetState |
rgrover1 | 0:8e57f3e9cc89 | 86 | #define vTaskSuspend MPU_vTaskSuspend |
rgrover1 | 0:8e57f3e9cc89 | 87 | #define xTaskIsTaskSuspended MPU_xTaskIsTaskSuspended |
rgrover1 | 0:8e57f3e9cc89 | 88 | #define vTaskResume MPU_vTaskResume |
rgrover1 | 0:8e57f3e9cc89 | 89 | #define vTaskSuspendAll MPU_vTaskSuspendAll |
rgrover1 | 0:8e57f3e9cc89 | 90 | #define xTaskResumeAll MPU_xTaskResumeAll |
rgrover1 | 0:8e57f3e9cc89 | 91 | #define xTaskGetTickCount MPU_xTaskGetTickCount |
rgrover1 | 0:8e57f3e9cc89 | 92 | #define uxTaskGetNumberOfTasks MPU_uxTaskGetNumberOfTasks |
rgrover1 | 0:8e57f3e9cc89 | 93 | #define vTaskList MPU_vTaskList |
rgrover1 | 0:8e57f3e9cc89 | 94 | #define vTaskGetRunTimeStats MPU_vTaskGetRunTimeStats |
rgrover1 | 0:8e57f3e9cc89 | 95 | #define vTaskSetApplicationTaskTag MPU_vTaskSetApplicationTaskTag |
rgrover1 | 0:8e57f3e9cc89 | 96 | #define xTaskGetApplicationTaskTag MPU_xTaskGetApplicationTaskTag |
rgrover1 | 0:8e57f3e9cc89 | 97 | #define xTaskCallApplicationTaskHook MPU_xTaskCallApplicationTaskHook |
rgrover1 | 0:8e57f3e9cc89 | 98 | #define uxTaskGetStackHighWaterMark MPU_uxTaskGetStackHighWaterMark |
rgrover1 | 0:8e57f3e9cc89 | 99 | #define xTaskGetCurrentTaskHandle MPU_xTaskGetCurrentTaskHandle |
rgrover1 | 0:8e57f3e9cc89 | 100 | #define xTaskGetSchedulerState MPU_xTaskGetSchedulerState |
rgrover1 | 0:8e57f3e9cc89 | 101 | #define xTaskGetIdleTaskHandle MPU_xTaskGetIdleTaskHandle |
rgrover1 | 0:8e57f3e9cc89 | 102 | #define uxTaskGetSystemState MPU_uxTaskGetSystemState |
rgrover1 | 0:8e57f3e9cc89 | 103 | |
rgrover1 | 0:8e57f3e9cc89 | 104 | #define xQueueGenericCreate MPU_xQueueGenericCreate |
rgrover1 | 0:8e57f3e9cc89 | 105 | #define xQueueCreateMutex MPU_xQueueCreateMutex |
rgrover1 | 0:8e57f3e9cc89 | 106 | #define xQueueGiveMutexRecursive MPU_xQueueGiveMutexRecursive |
rgrover1 | 0:8e57f3e9cc89 | 107 | #define xQueueTakeMutexRecursive MPU_xQueueTakeMutexRecursive |
rgrover1 | 0:8e57f3e9cc89 | 108 | #define xQueueCreateCountingSemaphore MPU_xQueueCreateCountingSemaphore |
rgrover1 | 0:8e57f3e9cc89 | 109 | #define xQueueGenericSend MPU_xQueueGenericSend |
rgrover1 | 0:8e57f3e9cc89 | 110 | #define xQueueAltGenericSend MPU_xQueueAltGenericSend |
rgrover1 | 0:8e57f3e9cc89 | 111 | #define xQueueAltGenericReceive MPU_xQueueAltGenericReceive |
rgrover1 | 0:8e57f3e9cc89 | 112 | #define xQueueGenericReceive MPU_xQueueGenericReceive |
rgrover1 | 0:8e57f3e9cc89 | 113 | #define uxQueueMessagesWaiting MPU_uxQueueMessagesWaiting |
rgrover1 | 0:8e57f3e9cc89 | 114 | #define vQueueDelete MPU_vQueueDelete |
rgrover1 | 0:8e57f3e9cc89 | 115 | #define xQueueGenericReset MPU_xQueueGenericReset |
rgrover1 | 0:8e57f3e9cc89 | 116 | #define xQueueCreateSet MPU_xQueueCreateSet |
rgrover1 | 0:8e57f3e9cc89 | 117 | #define xQueueSelectFromSet MPU_xQueueSelectFromSet |
rgrover1 | 0:8e57f3e9cc89 | 118 | #define xQueueAddToSet MPU_xQueueAddToSet |
rgrover1 | 0:8e57f3e9cc89 | 119 | #define xQueueRemoveFromSet MPU_xQueueRemoveFromSet |
rgrover1 | 0:8e57f3e9cc89 | 120 | #define xQueuePeekFromISR MPU_xQueuePeekFromISR |
rgrover1 | 0:8e57f3e9cc89 | 121 | |
rgrover1 | 0:8e57f3e9cc89 | 122 | #define pvPortMalloc MPU_pvPortMalloc |
rgrover1 | 0:8e57f3e9cc89 | 123 | #define vPortFree MPU_vPortFree |
rgrover1 | 0:8e57f3e9cc89 | 124 | #define xPortGetFreeHeapSize MPU_xPortGetFreeHeapSize |
rgrover1 | 0:8e57f3e9cc89 | 125 | #define vPortInitialiseBlocks MPU_vPortInitialiseBlocks |
rgrover1 | 0:8e57f3e9cc89 | 126 | |
rgrover1 | 0:8e57f3e9cc89 | 127 | #if configQUEUE_REGISTRY_SIZE > 0 |
rgrover1 | 0:8e57f3e9cc89 | 128 | #define vQueueAddToRegistry MPU_vQueueAddToRegistry |
rgrover1 | 0:8e57f3e9cc89 | 129 | #define vQueueUnregisterQueue MPU_vQueueUnregisterQueue |
rgrover1 | 0:8e57f3e9cc89 | 130 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 131 | |
rgrover1 | 0:8e57f3e9cc89 | 132 | /* Remove the privileged function macro. */ |
rgrover1 | 0:8e57f3e9cc89 | 133 | #define PRIVILEGED_FUNCTION |
rgrover1 | 0:8e57f3e9cc89 | 134 | |
rgrover1 | 0:8e57f3e9cc89 | 135 | #else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */ |
rgrover1 | 0:8e57f3e9cc89 | 136 | |
rgrover1 | 0:8e57f3e9cc89 | 137 | /* Ensure API functions go in the privileged execution section. */ |
rgrover1 | 0:8e57f3e9cc89 | 138 | #define PRIVILEGED_FUNCTION __attribute__((section("privileged_functions"))) |
rgrover1 | 0:8e57f3e9cc89 | 139 | #define PRIVILEGED_DATA __attribute__((section("privileged_data"))) |
rgrover1 | 0:8e57f3e9cc89 | 140 | |
rgrover1 | 0:8e57f3e9cc89 | 141 | #endif /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */ |
rgrover1 | 0:8e57f3e9cc89 | 142 | |
rgrover1 | 0:8e57f3e9cc89 | 143 | #else /* portUSING_MPU_WRAPPERS */ |
rgrover1 | 0:8e57f3e9cc89 | 144 | |
rgrover1 | 0:8e57f3e9cc89 | 145 | #define PRIVILEGED_FUNCTION |
rgrover1 | 0:8e57f3e9cc89 | 146 | #define PRIVILEGED_DATA |
rgrover1 | 0:8e57f3e9cc89 | 147 | #define portUSING_MPU_WRAPPERS 0 |
rgrover1 | 0:8e57f3e9cc89 | 148 | |
rgrover1 | 0:8e57f3e9cc89 | 149 | #endif /* portUSING_MPU_WRAPPERS */ |
rgrover1 | 0:8e57f3e9cc89 | 150 | |
rgrover1 | 0:8e57f3e9cc89 | 151 | |
rgrover1 | 0:8e57f3e9cc89 | 152 | #endif /* MPU_WRAPPERS_H */ |
rgrover1 | 0:8e57f3e9cc89 | 153 |