www.freertos.org

Dependents:   Nucleo freertos_test FreeRTOS_test freertos_bluetooth ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers mpu_wrappers.h Source File

mpu_wrappers.h

00001 /*
00002     FreeRTOS V7.6.0 - Copyright (C) 2013 Real Time Engineers Ltd. 
00003     All rights reserved
00004 
00005     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
00006 
00007     ***************************************************************************
00008      *                                                                       *
00009      *    FreeRTOS provides completely free yet professionally developed,    *
00010      *    robust, strictly quality controlled, supported, and cross          *
00011      *    platform software that has become a de facto standard.             *
00012      *                                                                       *
00013      *    Help yourself get started quickly and support the FreeRTOS         *
00014      *    project by purchasing a FreeRTOS tutorial book, reference          *
00015      *    manual, or both from: http://www.FreeRTOS.org/Documentation        *
00016      *                                                                       *
00017      *    Thank you!                                                         *
00018      *                                                                       *
00019     ***************************************************************************
00020 
00021     This file is part of the FreeRTOS distribution.
00022 
00023     FreeRTOS is free software; you can redistribute it and/or modify it under
00024     the terms of the GNU General Public License (version 2) as published by the
00025     Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
00026 
00027     >>! NOTE: The modification to the GPL is included to allow you to distribute
00028     >>! a combined work that includes FreeRTOS without being obliged to provide
00029     >>! the source code for proprietary components outside of the FreeRTOS
00030     >>! kernel.
00031 
00032     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
00033     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00034     FOR A PARTICULAR PURPOSE.  Full license text is available from the following
00035     link: http://www.freertos.org/a00114.html
00036 
00037     1 tab == 4 spaces!
00038 
00039     ***************************************************************************
00040      *                                                                       *
00041      *    Having a problem?  Start by reading the FAQ "My application does   *
00042      *    not run, what could be wrong?"                                     *
00043      *                                                                       *
00044      *    http://www.FreeRTOS.org/FAQHelp.html                               *
00045      *                                                                       *
00046     ***************************************************************************
00047 
00048     http://www.FreeRTOS.org - Documentation, books, training, latest versions,
00049     license and Real Time Engineers Ltd. contact details.
00050 
00051     http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
00052     including FreeRTOS+Trace - an indispensable productivity tool, a DOS
00053     compatible FAT file system, and our tiny thread aware UDP/IP stack.
00054 
00055     http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
00056     Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS
00057     licenses offer ticketed support, indemnification and middleware.
00058 
00059     http://www.SafeRTOS.com - High Integrity Systems also provide a safety
00060     engineered and independently SIL3 certified version for use in safety and
00061     mission critical applications that require provable dependability.
00062 
00063     1 tab == 4 spaces!
00064 */
00065 
00066 #ifndef MPU_WRAPPERS_H
00067 #define MPU_WRAPPERS_H
00068 
00069 /* This file redefines API functions to be called through a wrapper macro, but
00070 only for ports that are using the MPU. */
00071 #ifdef portUSING_MPU_WRAPPERS
00072 
00073     /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE will be defined when this file is
00074     included from queue.c or task.c to prevent it from having an effect within
00075     those files. */
00076     #ifndef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
00077 
00078         #define xTaskGenericCreate              MPU_xTaskGenericCreate
00079         #define vTaskAllocateMPURegions         MPU_vTaskAllocateMPURegions
00080         #define vTaskDelete                     MPU_vTaskDelete
00081         #define vTaskDelayUntil                 MPU_vTaskDelayUntil
00082         #define vTaskDelay                      MPU_vTaskDelay
00083         #define uxTaskPriorityGet               MPU_uxTaskPriorityGet
00084         #define vTaskPrioritySet                MPU_vTaskPrioritySet
00085         #define eTaskGetState                   MPU_eTaskGetState
00086         #define vTaskSuspend                    MPU_vTaskSuspend
00087         #define xTaskIsTaskSuspended            MPU_xTaskIsTaskSuspended
00088         #define vTaskResume                     MPU_vTaskResume
00089         #define vTaskSuspendAll                 MPU_vTaskSuspendAll
00090         #define xTaskResumeAll                  MPU_xTaskResumeAll
00091         #define xTaskGetTickCount               MPU_xTaskGetTickCount
00092         #define uxTaskGetNumberOfTasks          MPU_uxTaskGetNumberOfTasks
00093         #define vTaskList                       MPU_vTaskList
00094         #define vTaskGetRunTimeStats            MPU_vTaskGetRunTimeStats
00095         #define vTaskSetApplicationTaskTag      MPU_vTaskSetApplicationTaskTag
00096         #define xTaskGetApplicationTaskTag      MPU_xTaskGetApplicationTaskTag
00097         #define xTaskCallApplicationTaskHook    MPU_xTaskCallApplicationTaskHook
00098         #define uxTaskGetStackHighWaterMark     MPU_uxTaskGetStackHighWaterMark
00099         #define xTaskGetCurrentTaskHandle       MPU_xTaskGetCurrentTaskHandle
00100         #define xTaskGetSchedulerState          MPU_xTaskGetSchedulerState
00101         #define xTaskGetIdleTaskHandle          MPU_xTaskGetIdleTaskHandle
00102         #define uxTaskGetSystemState            MPU_uxTaskGetSystemState
00103 
00104         #define xQueueGenericCreate             MPU_xQueueGenericCreate
00105         #define xQueueCreateMutex               MPU_xQueueCreateMutex
00106         #define xQueueGiveMutexRecursive        MPU_xQueueGiveMutexRecursive
00107         #define xQueueTakeMutexRecursive        MPU_xQueueTakeMutexRecursive
00108         #define xQueueCreateCountingSemaphore   MPU_xQueueCreateCountingSemaphore
00109         #define xQueueGenericSend               MPU_xQueueGenericSend
00110         #define xQueueAltGenericSend            MPU_xQueueAltGenericSend
00111         #define xQueueAltGenericReceive         MPU_xQueueAltGenericReceive
00112         #define xQueueGenericReceive            MPU_xQueueGenericReceive
00113         #define uxQueueMessagesWaiting          MPU_uxQueueMessagesWaiting
00114         #define vQueueDelete                    MPU_vQueueDelete
00115         #define xQueueGenericReset              MPU_xQueueGenericReset
00116         #define xQueueCreateSet                 MPU_xQueueCreateSet
00117         #define xQueueSelectFromSet             MPU_xQueueSelectFromSet
00118         #define xQueueAddToSet                  MPU_xQueueAddToSet
00119         #define xQueueRemoveFromSet             MPU_xQueueRemoveFromSet
00120         #define xQueuePeekFromISR               MPU_xQueuePeekFromISR
00121 
00122         #define pvPortMalloc                    MPU_pvPortMalloc
00123         #define vPortFree                       MPU_vPortFree
00124         #define xPortGetFreeHeapSize            MPU_xPortGetFreeHeapSize
00125         #define vPortInitialiseBlocks           MPU_vPortInitialiseBlocks
00126 
00127         #if configQUEUE_REGISTRY_SIZE > 0
00128             #define vQueueAddToRegistry             MPU_vQueueAddToRegistry
00129             #define vQueueUnregisterQueue           MPU_vQueueUnregisterQueue
00130         #endif
00131 
00132         /* Remove the privileged function macro. */
00133         #define PRIVILEGED_FUNCTION
00134 
00135     #else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */
00136 
00137         /* Ensure API functions go in the privileged execution section. */
00138         #define PRIVILEGED_FUNCTION __attribute__((section("privileged_functions")))
00139         #define PRIVILEGED_DATA __attribute__((section("privileged_data")))
00140 
00141     #endif /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */
00142 
00143 #else /* portUSING_MPU_WRAPPERS */
00144 
00145     #define PRIVILEGED_FUNCTION
00146     #define PRIVILEGED_DATA
00147     #define portUSING_MPU_WRAPPERS 0
00148 
00149 #endif /* portUSING_MPU_WRAPPERS */
00150 
00151 
00152 #endif /* MPU_WRAPPERS_H */
00153