Francisco Paez / freertos-cm3

Dependents:   mbed_lpc1768_freertos_lib

Committer:
fep
Date:
Wed May 31 02:36:43 2017 +0000
Revision:
0:5ff20db10a96
FreeRTOS v9.0.0 for ARM Cortex-M3 based boards.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fep 0:5ff20db10a96 1 /*
fep 0:5ff20db10a96 2 FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.
fep 0:5ff20db10a96 3 All rights reserved
fep 0:5ff20db10a96 4
fep 0:5ff20db10a96 5 VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
fep 0:5ff20db10a96 6
fep 0:5ff20db10a96 7 This file is part of the FreeRTOS distribution.
fep 0:5ff20db10a96 8
fep 0:5ff20db10a96 9 FreeRTOS is free software; you can redistribute it and/or modify it under
fep 0:5ff20db10a96 10 the terms of the GNU General Public License (version 2) as published by the
fep 0:5ff20db10a96 11 Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.
fep 0:5ff20db10a96 12
fep 0:5ff20db10a96 13 ***************************************************************************
fep 0:5ff20db10a96 14 >>! NOTE: The modification to the GPL is included to allow you to !<<
fep 0:5ff20db10a96 15 >>! distribute a combined work that includes FreeRTOS without being !<<
fep 0:5ff20db10a96 16 >>! obliged to provide the source code for proprietary components !<<
fep 0:5ff20db10a96 17 >>! outside of the FreeRTOS kernel. !<<
fep 0:5ff20db10a96 18 ***************************************************************************
fep 0:5ff20db10a96 19
fep 0:5ff20db10a96 20 FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
fep 0:5ff20db10a96 21 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
fep 0:5ff20db10a96 22 FOR A PARTICULAR PURPOSE. Full license text is available on the following
fep 0:5ff20db10a96 23 link: http://www.freertos.org/a00114.html
fep 0:5ff20db10a96 24
fep 0:5ff20db10a96 25 ***************************************************************************
fep 0:5ff20db10a96 26 * *
fep 0:5ff20db10a96 27 * FreeRTOS provides completely free yet professionally developed, *
fep 0:5ff20db10a96 28 * robust, strictly quality controlled, supported, and cross *
fep 0:5ff20db10a96 29 * platform software that is more than just the market leader, it *
fep 0:5ff20db10a96 30 * is the industry's de facto standard. *
fep 0:5ff20db10a96 31 * *
fep 0:5ff20db10a96 32 * Help yourself get started quickly while simultaneously helping *
fep 0:5ff20db10a96 33 * to support the FreeRTOS project by purchasing a FreeRTOS *
fep 0:5ff20db10a96 34 * tutorial book, reference manual, or both: *
fep 0:5ff20db10a96 35 * http://www.FreeRTOS.org/Documentation *
fep 0:5ff20db10a96 36 * *
fep 0:5ff20db10a96 37 ***************************************************************************
fep 0:5ff20db10a96 38
fep 0:5ff20db10a96 39 http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading
fep 0:5ff20db10a96 40 the FAQ page "My application does not run, what could be wrong?". Have you
fep 0:5ff20db10a96 41 defined configASSERT()?
fep 0:5ff20db10a96 42
fep 0:5ff20db10a96 43 http://www.FreeRTOS.org/support - In return for receiving this top quality
fep 0:5ff20db10a96 44 embedded software for free we request you assist our global community by
fep 0:5ff20db10a96 45 participating in the support forum.
fep 0:5ff20db10a96 46
fep 0:5ff20db10a96 47 http://www.FreeRTOS.org/training - Investing in training allows your team to
fep 0:5ff20db10a96 48 be as productive as possible as early as possible. Now you can receive
fep 0:5ff20db10a96 49 FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
fep 0:5ff20db10a96 50 Ltd, and the world's leading authority on the world's leading RTOS.
fep 0:5ff20db10a96 51
fep 0:5ff20db10a96 52 http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
fep 0:5ff20db10a96 53 including FreeRTOS+Trace - an indispensable productivity tool, a DOS
fep 0:5ff20db10a96 54 compatible FAT file system, and our tiny thread aware UDP/IP stack.
fep 0:5ff20db10a96 55
fep 0:5ff20db10a96 56 http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
fep 0:5ff20db10a96 57 Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
fep 0:5ff20db10a96 58
fep 0:5ff20db10a96 59 http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
fep 0:5ff20db10a96 60 Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS
fep 0:5ff20db10a96 61 licenses offer ticketed support, indemnification and commercial middleware.
fep 0:5ff20db10a96 62
fep 0:5ff20db10a96 63 http://www.SafeRTOS.com - High Integrity Systems also provide a safety
fep 0:5ff20db10a96 64 engineered and independently SIL3 certified version for use in safety and
fep 0:5ff20db10a96 65 mission critical applications that require provable dependability.
fep 0:5ff20db10a96 66
fep 0:5ff20db10a96 67 1 tab == 4 spaces!
fep 0:5ff20db10a96 68 */
fep 0:5ff20db10a96 69
fep 0:5ff20db10a96 70 #ifndef MPU_WRAPPERS_H
fep 0:5ff20db10a96 71 #define MPU_WRAPPERS_H
fep 0:5ff20db10a96 72
fep 0:5ff20db10a96 73 /* This file redefines API functions to be called through a wrapper macro, but
fep 0:5ff20db10a96 74 only for ports that are using the MPU. */
fep 0:5ff20db10a96 75 #ifdef portUSING_MPU_WRAPPERS
fep 0:5ff20db10a96 76
fep 0:5ff20db10a96 77 /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE will be defined when this file is
fep 0:5ff20db10a96 78 included from queue.c or task.c to prevent it from having an effect within
fep 0:5ff20db10a96 79 those files. */
fep 0:5ff20db10a96 80 #ifndef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
fep 0:5ff20db10a96 81
fep 0:5ff20db10a96 82 /*
fep 0:5ff20db10a96 83 * Map standard (non MPU) API functions to equivalents that start
fep 0:5ff20db10a96 84 * "MPU_". This will cause the application code to call the MPU_
fep 0:5ff20db10a96 85 * version, which wraps the non-MPU version with privilege promoting
fep 0:5ff20db10a96 86 * then demoting code, so the kernel code always runs will full
fep 0:5ff20db10a96 87 * privileges.
fep 0:5ff20db10a96 88 */
fep 0:5ff20db10a96 89
fep 0:5ff20db10a96 90 /* Map standard tasks.h API functions to the MPU equivalents. */
fep 0:5ff20db10a96 91 #define xTaskCreate MPU_xTaskCreate
fep 0:5ff20db10a96 92 #define xTaskCreateStatic MPU_xTaskCreateStatic
fep 0:5ff20db10a96 93 #define xTaskCreateRestricted MPU_xTaskCreateRestricted
fep 0:5ff20db10a96 94 #define vTaskAllocateMPURegions MPU_vTaskAllocateMPURegions
fep 0:5ff20db10a96 95 #define vTaskDelete MPU_vTaskDelete
fep 0:5ff20db10a96 96 #define vTaskDelay MPU_vTaskDelay
fep 0:5ff20db10a96 97 #define vTaskDelayUntil MPU_vTaskDelayUntil
fep 0:5ff20db10a96 98 #define xTaskAbortDelay MPU_xTaskAbortDelay
fep 0:5ff20db10a96 99 #define uxTaskPriorityGet MPU_uxTaskPriorityGet
fep 0:5ff20db10a96 100 #define eTaskGetState MPU_eTaskGetState
fep 0:5ff20db10a96 101 #define vTaskGetInfo MPU_vTaskGetInfo
fep 0:5ff20db10a96 102 #define vTaskPrioritySet MPU_vTaskPrioritySet
fep 0:5ff20db10a96 103 #define vTaskSuspend MPU_vTaskSuspend
fep 0:5ff20db10a96 104 #define vTaskResume MPU_vTaskResume
fep 0:5ff20db10a96 105 #define vTaskSuspendAll MPU_vTaskSuspendAll
fep 0:5ff20db10a96 106 #define xTaskResumeAll MPU_xTaskResumeAll
fep 0:5ff20db10a96 107 #define xTaskGetTickCount MPU_xTaskGetTickCount
fep 0:5ff20db10a96 108 #define uxTaskGetNumberOfTasks MPU_uxTaskGetNumberOfTasks
fep 0:5ff20db10a96 109 #define pcTaskGetName MPU_pcTaskGetName
fep 0:5ff20db10a96 110 #define xTaskGetHandle MPU_xTaskGetHandle
fep 0:5ff20db10a96 111 #define uxTaskGetStackHighWaterMark MPU_uxTaskGetStackHighWaterMark
fep 0:5ff20db10a96 112 #define vTaskSetApplicationTaskTag MPU_vTaskSetApplicationTaskTag
fep 0:5ff20db10a96 113 #define xTaskGetApplicationTaskTag MPU_xTaskGetApplicationTaskTag
fep 0:5ff20db10a96 114 #define vTaskSetThreadLocalStoragePointer MPU_vTaskSetThreadLocalStoragePointer
fep 0:5ff20db10a96 115 #define pvTaskGetThreadLocalStoragePointer MPU_pvTaskGetThreadLocalStoragePointer
fep 0:5ff20db10a96 116 #define xTaskCallApplicationTaskHook MPU_xTaskCallApplicationTaskHook
fep 0:5ff20db10a96 117 #define xTaskGetIdleTaskHandle MPU_xTaskGetIdleTaskHandle
fep 0:5ff20db10a96 118 #define uxTaskGetSystemState MPU_uxTaskGetSystemState
fep 0:5ff20db10a96 119 #define vTaskList MPU_vTaskList
fep 0:5ff20db10a96 120 #define vTaskGetRunTimeStats MPU_vTaskGetRunTimeStats
fep 0:5ff20db10a96 121 #define xTaskGenericNotify MPU_xTaskGenericNotify
fep 0:5ff20db10a96 122 #define xTaskNotifyWait MPU_xTaskNotifyWait
fep 0:5ff20db10a96 123 #define ulTaskNotifyTake MPU_ulTaskNotifyTake
fep 0:5ff20db10a96 124 #define xTaskNotifyStateClear MPU_xTaskNotifyStateClear
fep 0:5ff20db10a96 125
fep 0:5ff20db10a96 126 #define xTaskGetCurrentTaskHandle MPU_xTaskGetCurrentTaskHandle
fep 0:5ff20db10a96 127 #define vTaskSetTimeOutState MPU_vTaskSetTimeOutState
fep 0:5ff20db10a96 128 #define xTaskCheckForTimeOut MPU_xTaskCheckForTimeOut
fep 0:5ff20db10a96 129 #define xTaskGetSchedulerState MPU_xTaskGetSchedulerState
fep 0:5ff20db10a96 130
fep 0:5ff20db10a96 131 /* Map standard queue.h API functions to the MPU equivalents. */
fep 0:5ff20db10a96 132 #define xQueueGenericSend MPU_xQueueGenericSend
fep 0:5ff20db10a96 133 #define xQueueGenericReceive MPU_xQueueGenericReceive
fep 0:5ff20db10a96 134 #define uxQueueMessagesWaiting MPU_uxQueueMessagesWaiting
fep 0:5ff20db10a96 135 #define uxQueueSpacesAvailable MPU_uxQueueSpacesAvailable
fep 0:5ff20db10a96 136 #define vQueueDelete MPU_vQueueDelete
fep 0:5ff20db10a96 137 #define xQueueCreateMutex MPU_xQueueCreateMutex
fep 0:5ff20db10a96 138 #define xQueueCreateMutexStatic MPU_xQueueCreateMutexStatic
fep 0:5ff20db10a96 139 #define xQueueCreateCountingSemaphore MPU_xQueueCreateCountingSemaphore
fep 0:5ff20db10a96 140 #define xQueueCreateCountingSemaphoreStatic MPU_xQueueCreateCountingSemaphoreStatic
fep 0:5ff20db10a96 141 #define xQueueGetMutexHolder MPU_xQueueGetMutexHolder
fep 0:5ff20db10a96 142 #define xQueueTakeMutexRecursive MPU_xQueueTakeMutexRecursive
fep 0:5ff20db10a96 143 #define xQueueGiveMutexRecursive MPU_xQueueGiveMutexRecursive
fep 0:5ff20db10a96 144 #define xQueueGenericCreate MPU_xQueueGenericCreate
fep 0:5ff20db10a96 145 #define xQueueGenericCreateStatic MPU_xQueueGenericCreateStatic
fep 0:5ff20db10a96 146 #define xQueueCreateSet MPU_xQueueCreateSet
fep 0:5ff20db10a96 147 #define xQueueAddToSet MPU_xQueueAddToSet
fep 0:5ff20db10a96 148 #define xQueueRemoveFromSet MPU_xQueueRemoveFromSet
fep 0:5ff20db10a96 149 #define xQueueSelectFromSet MPU_xQueueSelectFromSet
fep 0:5ff20db10a96 150 #define xQueueGenericReset MPU_xQueueGenericReset
fep 0:5ff20db10a96 151
fep 0:5ff20db10a96 152 #if( configQUEUE_REGISTRY_SIZE > 0 )
fep 0:5ff20db10a96 153 #define vQueueAddToRegistry MPU_vQueueAddToRegistry
fep 0:5ff20db10a96 154 #define vQueueUnregisterQueue MPU_vQueueUnregisterQueue
fep 0:5ff20db10a96 155 #define pcQueueGetName MPU_pcQueueGetName
fep 0:5ff20db10a96 156 #endif
fep 0:5ff20db10a96 157
fep 0:5ff20db10a96 158 /* Map standard timer.h API functions to the MPU equivalents. */
fep 0:5ff20db10a96 159 #define xTimerCreate MPU_xTimerCreate
fep 0:5ff20db10a96 160 #define xTimerCreateStatic MPU_xTimerCreateStatic
fep 0:5ff20db10a96 161 #define pvTimerGetTimerID MPU_pvTimerGetTimerID
fep 0:5ff20db10a96 162 #define vTimerSetTimerID MPU_vTimerSetTimerID
fep 0:5ff20db10a96 163 #define xTimerIsTimerActive MPU_xTimerIsTimerActive
fep 0:5ff20db10a96 164 #define xTimerGetTimerDaemonTaskHandle MPU_xTimerGetTimerDaemonTaskHandle
fep 0:5ff20db10a96 165 #define xTimerPendFunctionCall MPU_xTimerPendFunctionCall
fep 0:5ff20db10a96 166 #define pcTimerGetName MPU_pcTimerGetName
fep 0:5ff20db10a96 167 #define xTimerGetPeriod MPU_xTimerGetPeriod
fep 0:5ff20db10a96 168 #define xTimerGetExpiryTime MPU_xTimerGetExpiryTime
fep 0:5ff20db10a96 169 #define xTimerGenericCommand MPU_xTimerGenericCommand
fep 0:5ff20db10a96 170
fep 0:5ff20db10a96 171 /* Map standard event_group.h API functions to the MPU equivalents. */
fep 0:5ff20db10a96 172 #define xEventGroupCreate MPU_xEventGroupCreate
fep 0:5ff20db10a96 173 #define xEventGroupCreateStatic MPU_xEventGroupCreateStatic
fep 0:5ff20db10a96 174 #define xEventGroupWaitBits MPU_xEventGroupWaitBits
fep 0:5ff20db10a96 175 #define xEventGroupClearBits MPU_xEventGroupClearBits
fep 0:5ff20db10a96 176 #define xEventGroupSetBits MPU_xEventGroupSetBits
fep 0:5ff20db10a96 177 #define xEventGroupSync MPU_xEventGroupSync
fep 0:5ff20db10a96 178 #define vEventGroupDelete MPU_vEventGroupDelete
fep 0:5ff20db10a96 179
fep 0:5ff20db10a96 180 /* Remove the privileged function macro. */
fep 0:5ff20db10a96 181 #define PRIVILEGED_FUNCTION
fep 0:5ff20db10a96 182
fep 0:5ff20db10a96 183 #else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */
fep 0:5ff20db10a96 184
fep 0:5ff20db10a96 185 /* Ensure API functions go in the privileged execution section. */
fep 0:5ff20db10a96 186 #define PRIVILEGED_FUNCTION __attribute__((section("privileged_functions")))
fep 0:5ff20db10a96 187 #define PRIVILEGED_DATA __attribute__((section("privileged_data")))
fep 0:5ff20db10a96 188
fep 0:5ff20db10a96 189 #endif /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */
fep 0:5ff20db10a96 190
fep 0:5ff20db10a96 191 #else /* portUSING_MPU_WRAPPERS */
fep 0:5ff20db10a96 192
fep 0:5ff20db10a96 193 #define PRIVILEGED_FUNCTION
fep 0:5ff20db10a96 194 #define PRIVILEGED_DATA
fep 0:5ff20db10a96 195 #define portUSING_MPU_WRAPPERS 0
fep 0:5ff20db10a96 196
fep 0:5ff20db10a96 197 #endif /* portUSING_MPU_WRAPPERS */
fep 0:5ff20db10a96 198
fep 0:5ff20db10a96 199
fep 0:5ff20db10a96 200 #endif /* MPU_WRAPPERS_H */
fep 0:5ff20db10a96 201
fep 0:5ff20db10a96 202