2 * FreeRTOS Kernel V10.2.1
\r
3 * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
\r
5 * Permission is hereby granted, free of charge, to any person obtaining a copy of
\r
6 * this software and associated documentation files (the "Software"), to deal in
\r
7 * the Software without restriction, including without limitation the rights to
\r
8 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
\r
9 * the Software, and to permit persons to whom the Software is furnished to do so,
\r
10 * subject to the following conditions:
\r
12 * The above copyright notice and this permission notice shall be included in all
\r
13 * copies or substantial portions of the Software.
\r
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
\r
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
\r
17 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
\r
18 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
\r
19 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
\r
20 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\r
22 * http://www.FreeRTOS.org
\r
23 * http://aws.amazon.com/freertos
\r
25 * 1 tab == 4 spaces!
\r
29 * Implementation of the wrapper functions used to raise the processor privilege
\r
30 * before calling a standard FreeRTOS API function.
\r
33 /* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
\r
34 all the API functions to use the MPU wrappers. That should only be done when
\r
35 task.h is included from an application file. */
\r
36 #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
\r
38 /* Scheduler includes. */
\r
39 #include "FreeRTOS.h"
\r
43 #include "event_groups.h"
\r
44 #include "stream_buffer.h"
\r
45 #include "mpu_prototypes.h"
\r
47 #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
\r
50 * @brief Calls the port specific code to raise the privilege.
\r
52 * @return pdFALSE if privilege was raised, pdTRUE otherwise.
\r
54 BaseType_t xPortRaisePrivilege( void ) FREERTOS_SYSTEM_CALL;
\r
57 * @brief If xRunningPrivileged is not pdTRUE, calls the port specific
\r
58 * code to reset the privilege, otherwise does nothing.
\r
60 void vPortResetPrivilege( BaseType_t xRunningPrivileged );
\r
61 /*-----------------------------------------------------------*/
\r
63 BaseType_t xPortRaisePrivilege( void ) /* FREERTOS_SYSTEM_CALL */
\r
65 BaseType_t xRunningPrivileged;
\r
67 /* Check whether the processor is already privileged. */
\r
68 xRunningPrivileged = portIS_PRIVILEGED();
\r
70 /* If the processor is not already privileged, raise privilege. */
\r
71 if( xRunningPrivileged != pdTRUE )
\r
73 portRAISE_PRIVILEGE();
\r
76 return xRunningPrivileged;
\r
78 /*-----------------------------------------------------------*/
\r
80 void vPortResetPrivilege( BaseType_t xRunningPrivileged )
\r
82 if( xRunningPrivileged != pdTRUE )
\r
84 portRESET_PRIVILEGE();
\r
87 /*-----------------------------------------------------------*/
\r
89 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
90 BaseType_t MPU_xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ) /* FREERTOS_SYSTEM_CALL */
\r
93 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
95 xReturn = xTaskCreateRestricted( pxTaskDefinition, pxCreatedTask );
\r
96 vPortResetPrivilege( xRunningPrivileged );
\r
99 #endif /* conifgSUPPORT_DYNAMIC_ALLOCATION */
\r
100 /*-----------------------------------------------------------*/
\r
102 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
103 BaseType_t MPU_xTaskCreateRestrictedStatic( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ) /* FREERTOS_SYSTEM_CALL */
\r
105 BaseType_t xReturn;
\r
106 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
108 xReturn = xTaskCreateRestrictedStatic( pxTaskDefinition, pxCreatedTask );
\r
109 vPortResetPrivilege( xRunningPrivileged );
\r
112 #endif /* conifgSUPPORT_DYNAMIC_ALLOCATION */
\r
113 /*-----------------------------------------------------------*/
\r
115 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
116 BaseType_t MPU_xTaskCreate( TaskFunction_t pvTaskCode, const char * const pcName, uint16_t usStackDepth, void *pvParameters, UBaseType_t uxPriority, TaskHandle_t *pxCreatedTask ) /* FREERTOS_SYSTEM_CALL */
\r
118 BaseType_t xReturn;
\r
119 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
121 xReturn = xTaskCreate( pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask );
\r
122 vPortResetPrivilege( xRunningPrivileged );
\r
125 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
126 /*-----------------------------------------------------------*/
\r
128 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
129 TaskHandle_t MPU_xTaskCreateStatic( TaskFunction_t pxTaskCode, const char * const pcName, const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, StackType_t * const puxStackBuffer, StaticTask_t * const pxTaskBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
131 TaskHandle_t xReturn;
\r
132 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
134 xReturn = xTaskCreateStatic( pxTaskCode, pcName, ulStackDepth, pvParameters, uxPriority, puxStackBuffer, pxTaskBuffer );
\r
135 vPortResetPrivilege( xRunningPrivileged );
\r
138 #endif /* configSUPPORT_STATIC_ALLOCATION */
\r
139 /*-----------------------------------------------------------*/
\r
141 void MPU_vTaskAllocateMPURegions( TaskHandle_t xTask, const MemoryRegion_t * const xRegions ) /* FREERTOS_SYSTEM_CALL */
\r
143 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
145 vTaskAllocateMPURegions( xTask, xRegions );
\r
146 vPortResetPrivilege( xRunningPrivileged );
\r
148 /*-----------------------------------------------------------*/
\r
150 #if ( INCLUDE_vTaskDelete == 1 )
\r
151 void MPU_vTaskDelete( TaskHandle_t pxTaskToDelete ) /* FREERTOS_SYSTEM_CALL */
\r
153 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
155 vTaskDelete( pxTaskToDelete );
\r
156 vPortResetPrivilege( xRunningPrivileged );
\r
159 /*-----------------------------------------------------------*/
\r
161 #if ( INCLUDE_vTaskDelayUntil == 1 )
\r
162 void MPU_vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, TickType_t xTimeIncrement ) /* FREERTOS_SYSTEM_CALL */
\r
164 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
166 vTaskDelayUntil( pxPreviousWakeTime, xTimeIncrement );
\r
167 vPortResetPrivilege( xRunningPrivileged );
\r
170 /*-----------------------------------------------------------*/
\r
172 #if ( INCLUDE_xTaskAbortDelay == 1 )
\r
173 BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
175 BaseType_t xReturn;
\r
176 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
178 xReturn = xTaskAbortDelay( xTask );
\r
179 vPortResetPrivilege( xRunningPrivileged );
\r
183 /*-----------------------------------------------------------*/
\r
185 #if ( INCLUDE_vTaskDelay == 1 )
\r
186 void MPU_vTaskDelay( TickType_t xTicksToDelay ) /* FREERTOS_SYSTEM_CALL */
\r
188 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
190 vTaskDelay( xTicksToDelay );
\r
191 vPortResetPrivilege( xRunningPrivileged );
\r
194 /*-----------------------------------------------------------*/
\r
196 #if ( INCLUDE_uxTaskPriorityGet == 1 )
\r
197 UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t pxTask ) /* FREERTOS_SYSTEM_CALL */
\r
199 UBaseType_t uxReturn;
\r
200 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
202 uxReturn = uxTaskPriorityGet( pxTask );
\r
203 vPortResetPrivilege( xRunningPrivileged );
\r
207 /*-----------------------------------------------------------*/
\r
209 #if ( INCLUDE_vTaskPrioritySet == 1 )
\r
210 void MPU_vTaskPrioritySet( TaskHandle_t pxTask, UBaseType_t uxNewPriority ) /* FREERTOS_SYSTEM_CALL */
\r
212 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
214 vTaskPrioritySet( pxTask, uxNewPriority );
\r
215 vPortResetPrivilege( xRunningPrivileged );
\r
218 /*-----------------------------------------------------------*/
\r
220 #if ( INCLUDE_eTaskGetState == 1 )
\r
221 eTaskState MPU_eTaskGetState( TaskHandle_t pxTask ) /* FREERTOS_SYSTEM_CALL */
\r
223 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
224 eTaskState eReturn;
\r
226 eReturn = eTaskGetState( pxTask );
\r
227 vPortResetPrivilege( xRunningPrivileged );
\r
231 /*-----------------------------------------------------------*/
\r
233 #if( configUSE_TRACE_FACILITY == 1 )
\r
234 void MPU_vTaskGetInfo( TaskHandle_t xTask, TaskStatus_t *pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState ) /* FREERTOS_SYSTEM_CALL */
\r
236 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
238 vTaskGetInfo( xTask, pxTaskStatus, xGetFreeStackSpace, eState );
\r
239 vPortResetPrivilege( xRunningPrivileged );
\r
242 /*-----------------------------------------------------------*/
\r
244 #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )
\r
245 TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
247 TaskHandle_t xReturn;
\r
248 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
250 xReturn = xTaskGetIdleTaskHandle();
\r
251 vPortResetPrivilege( xRunningPrivileged );
\r
255 /*-----------------------------------------------------------*/
\r
257 #if ( INCLUDE_vTaskSuspend == 1 )
\r
258 void MPU_vTaskSuspend( TaskHandle_t pxTaskToSuspend ) /* FREERTOS_SYSTEM_CALL */
\r
260 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
262 vTaskSuspend( pxTaskToSuspend );
\r
263 vPortResetPrivilege( xRunningPrivileged );
\r
266 /*-----------------------------------------------------------*/
\r
268 #if ( INCLUDE_vTaskSuspend == 1 )
\r
269 void MPU_vTaskResume( TaskHandle_t pxTaskToResume ) /* FREERTOS_SYSTEM_CALL */
\r
271 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
273 vTaskResume( pxTaskToResume );
\r
274 vPortResetPrivilege( xRunningPrivileged );
\r
277 /*-----------------------------------------------------------*/
\r
279 void MPU_vTaskSuspendAll( void ) /* FREERTOS_SYSTEM_CALL */
\r
281 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
284 vPortResetPrivilege( xRunningPrivileged );
\r
286 /*-----------------------------------------------------------*/
\r
288 BaseType_t MPU_xTaskResumeAll( void ) /* FREERTOS_SYSTEM_CALL */
\r
290 BaseType_t xReturn;
\r
291 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
293 xReturn = xTaskResumeAll();
\r
294 vPortResetPrivilege( xRunningPrivileged );
\r
297 /*-----------------------------------------------------------*/
\r
299 TickType_t MPU_xTaskGetTickCount( void ) /* FREERTOS_SYSTEM_CALL */
\r
301 TickType_t xReturn;
\r
302 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
304 xReturn = xTaskGetTickCount();
\r
305 vPortResetPrivilege( xRunningPrivileged );
\r
308 /*-----------------------------------------------------------*/
\r
310 UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) /* FREERTOS_SYSTEM_CALL */
\r
312 UBaseType_t uxReturn;
\r
313 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
315 uxReturn = uxTaskGetNumberOfTasks();
\r
316 vPortResetPrivilege( xRunningPrivileged );
\r
319 /*-----------------------------------------------------------*/
\r
321 char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ) /* FREERTOS_SYSTEM_CALL */
\r
324 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
326 pcReturn = pcTaskGetName( xTaskToQuery );
\r
327 vPortResetPrivilege( xRunningPrivileged );
\r
330 /*-----------------------------------------------------------*/
\r
332 #if ( INCLUDE_xTaskGetHandle == 1 )
\r
333 TaskHandle_t MPU_xTaskGetHandle( const char *pcNameToQuery ) /* FREERTOS_SYSTEM_CALL */
\r
335 TaskHandle_t xReturn;
\r
336 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
338 xReturn = xTaskGetHandle( pcNameToQuery );
\r
339 vPortResetPrivilege( xRunningPrivileged );
\r
343 /*-----------------------------------------------------------*/
\r
345 #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
346 void MPU_vTaskList( char *pcWriteBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
348 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
350 vTaskList( pcWriteBuffer );
\r
351 vPortResetPrivilege( xRunningPrivileged );
\r
354 /*-----------------------------------------------------------*/
\r
356 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
357 void MPU_vTaskGetRunTimeStats( char *pcWriteBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
359 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
361 vTaskGetRunTimeStats( pcWriteBuffer );
\r
362 vPortResetPrivilege( xRunningPrivileged );
\r
365 /*-----------------------------------------------------------*/
\r
367 #if( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
\r
368 uint32_t MPU_ulTaskGetIdleRunTimeCounter( void ) /* FREERTOS_SYSTEM_CALL */
\r
371 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
373 xReturn = ulTaskGetIdleRunTimeCounter();
\r
374 vPortResetPrivilege( xRunningPrivileged );
\r
378 /*-----------------------------------------------------------*/
\r
380 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
381 void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxTagValue ) /* FREERTOS_SYSTEM_CALL */
\r
383 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
385 vTaskSetApplicationTaskTag( xTask, pxTagValue );
\r
386 vPortResetPrivilege( xRunningPrivileged );
\r
389 /*-----------------------------------------------------------*/
\r
391 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
392 TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
394 TaskHookFunction_t xReturn;
\r
395 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
397 xReturn = xTaskGetApplicationTaskTag( xTask );
\r
398 vPortResetPrivilege( xRunningPrivileged );
\r
402 /*-----------------------------------------------------------*/
\r
404 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
\r
405 void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet, BaseType_t xIndex, void *pvValue ) /* FREERTOS_SYSTEM_CALL */
\r
407 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
409 vTaskSetThreadLocalStoragePointer( xTaskToSet, xIndex, pvValue );
\r
410 vPortResetPrivilege( xRunningPrivileged );
\r
413 /*-----------------------------------------------------------*/
\r
415 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
\r
416 void *MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery, BaseType_t xIndex ) /* FREERTOS_SYSTEM_CALL */
\r
419 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
421 pvReturn = pvTaskGetThreadLocalStoragePointer( xTaskToQuery, xIndex );
\r
422 vPortResetPrivilege( xRunningPrivileged );
\r
426 /*-----------------------------------------------------------*/
\r
428 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
429 BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter ) /* FREERTOS_SYSTEM_CALL */
\r
431 BaseType_t xReturn;
\r
432 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
434 xReturn = xTaskCallApplicationTaskHook( xTask, pvParameter );
\r
435 vPortResetPrivilege( xRunningPrivileged );
\r
439 /*-----------------------------------------------------------*/
\r
441 #if ( configUSE_TRACE_FACILITY == 1 )
\r
442 UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t *pxTaskStatusArray, UBaseType_t uxArraySize, uint32_t *pulTotalRunTime ) /* FREERTOS_SYSTEM_CALL */
\r
444 UBaseType_t uxReturn;
\r
445 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
447 uxReturn = uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, pulTotalRunTime );
\r
448 vPortResetPrivilege( xRunningPrivileged );
\r
452 /*-----------------------------------------------------------*/
\r
454 BaseType_t MPU_xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) /* FREERTOS_SYSTEM_CALL */
\r
456 BaseType_t xReturn;
\r
457 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
459 xReturn = xTaskCatchUpTicks( xTicksToCatchUp );
\r
460 vPortResetPrivilege( xRunningPrivileged );
\r
463 /*-----------------------------------------------------------*/
\r
465 #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
\r
466 UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
468 UBaseType_t uxReturn;
\r
469 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
471 uxReturn = uxTaskGetStackHighWaterMark( xTask );
\r
472 vPortResetPrivilege( xRunningPrivileged );
\r
476 /*-----------------------------------------------------------*/
\r
478 #if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 )
\r
479 configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
481 configSTACK_DEPTH_TYPE uxReturn;
\r
482 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
484 uxReturn = uxTaskGetStackHighWaterMark2( xTask );
\r
485 vPortResetPrivilege( xRunningPrivileged );
\r
489 /*-----------------------------------------------------------*/
\r
491 #if ( INCLUDE_xTaskGetCurrentTaskHandle == 1 )
\r
492 TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
494 TaskHandle_t xReturn;
\r
495 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
497 xReturn = xTaskGetCurrentTaskHandle();
\r
498 vPortResetPrivilege( xRunningPrivileged );
\r
502 /*-----------------------------------------------------------*/
\r
504 #if ( INCLUDE_xTaskGetSchedulerState == 1 )
\r
505 BaseType_t MPU_xTaskGetSchedulerState( void ) /* FREERTOS_SYSTEM_CALL */
\r
507 BaseType_t xReturn;
\r
508 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
510 xReturn = xTaskGetSchedulerState();
\r
511 vPortResetPrivilege( xRunningPrivileged );
\r
515 /*-----------------------------------------------------------*/
\r
517 void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) /* FREERTOS_SYSTEM_CALL */
\r
519 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
521 vTaskSetTimeOutState( pxTimeOut );
\r
522 vPortResetPrivilege( xRunningPrivileged );
\r
524 /*-----------------------------------------------------------*/
\r
526 BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
528 BaseType_t xReturn;
\r
529 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
531 xReturn = xTaskCheckForTimeOut( pxTimeOut, pxTicksToWait );
\r
532 vPortResetPrivilege( xRunningPrivileged );
\r
535 /*-----------------------------------------------------------*/
\r
537 #if( configUSE_TASK_NOTIFICATIONS == 1 )
\r
538 BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue ) /* FREERTOS_SYSTEM_CALL */
\r
540 BaseType_t xReturn;
\r
541 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
543 xReturn = xTaskGenericNotify( xTaskToNotify, ulValue, eAction, pulPreviousNotificationValue );
\r
544 vPortResetPrivilege( xRunningPrivileged );
\r
548 /*-----------------------------------------------------------*/
\r
550 #if( configUSE_TASK_NOTIFICATIONS == 1 )
\r
551 BaseType_t MPU_xTaskNotifyWait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
553 BaseType_t xReturn;
\r
554 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
556 xReturn = xTaskNotifyWait( ulBitsToClearOnEntry, ulBitsToClearOnExit, pulNotificationValue, xTicksToWait );
\r
557 vPortResetPrivilege( xRunningPrivileged );
\r
561 /*-----------------------------------------------------------*/
\r
563 #if( configUSE_TASK_NOTIFICATIONS == 1 )
\r
564 uint32_t MPU_ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
567 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
569 ulReturn = ulTaskNotifyTake( xClearCountOnExit, xTicksToWait );
\r
570 vPortResetPrivilege( xRunningPrivileged );
\r
574 /*-----------------------------------------------------------*/
\r
576 #if( configUSE_TASK_NOTIFICATIONS == 1 )
\r
577 BaseType_t MPU_xTaskNotifyStateClear( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
579 BaseType_t xReturn;
\r
580 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
582 xReturn = xTaskNotifyStateClear( xTask );
\r
583 vPortResetPrivilege( xRunningPrivileged );
\r
587 /*-----------------------------------------------------------*/
\r
589 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
590 QueueHandle_t MPU_xQueueGenericCreate( UBaseType_t uxQueueLength, UBaseType_t uxItemSize, uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
592 QueueHandle_t xReturn;
\r
593 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
595 xReturn = xQueueGenericCreate( uxQueueLength, uxItemSize, ucQueueType );
\r
596 vPortResetPrivilege( xRunningPrivileged );
\r
600 /*-----------------------------------------------------------*/
\r
602 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
603 QueueHandle_t MPU_xQueueGenericCreateStatic( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, StaticQueue_t *pxStaticQueue, const uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
605 QueueHandle_t xReturn;
\r
606 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
608 xReturn = xQueueGenericCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxStaticQueue, ucQueueType );
\r
609 vPortResetPrivilege( xRunningPrivileged );
\r
613 /*-----------------------------------------------------------*/
\r
615 BaseType_t MPU_xQueueGenericReset( QueueHandle_t pxQueue, BaseType_t xNewQueue ) /* FREERTOS_SYSTEM_CALL */
\r
617 BaseType_t xReturn;
\r
618 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
620 xReturn = xQueueGenericReset( pxQueue, xNewQueue );
\r
621 vPortResetPrivilege( xRunningPrivileged );
\r
624 /*-----------------------------------------------------------*/
\r
626 BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, BaseType_t xCopyPosition ) /* FREERTOS_SYSTEM_CALL */
\r
628 BaseType_t xReturn;
\r
629 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
631 xReturn = xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, xCopyPosition );
\r
632 vPortResetPrivilege( xRunningPrivileged );
\r
635 /*-----------------------------------------------------------*/
\r
637 UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t pxQueue ) /* FREERTOS_SYSTEM_CALL */
\r
639 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
640 UBaseType_t uxReturn;
\r
642 uxReturn = uxQueueMessagesWaiting( pxQueue );
\r
643 vPortResetPrivilege( xRunningPrivileged );
\r
646 /*-----------------------------------------------------------*/
\r
648 UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
650 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
651 UBaseType_t uxReturn;
\r
653 uxReturn = uxQueueSpacesAvailable( xQueue );
\r
654 vPortResetPrivilege( xRunningPrivileged );
\r
657 /*-----------------------------------------------------------*/
\r
659 BaseType_t MPU_xQueueReceive( QueueHandle_t pxQueue, void * const pvBuffer, TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
661 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
662 BaseType_t xReturn;
\r
664 xReturn = xQueueReceive( pxQueue, pvBuffer, xTicksToWait );
\r
665 vPortResetPrivilege( xRunningPrivileged );
\r
668 /*-----------------------------------------------------------*/
\r
670 BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
672 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
673 BaseType_t xReturn;
\r
675 xReturn = xQueuePeek( xQueue, pvBuffer, xTicksToWait );
\r
676 vPortResetPrivilege( xRunningPrivileged );
\r
679 /*-----------------------------------------------------------*/
\r
681 BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
683 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
684 BaseType_t xReturn;
\r
686 xReturn = xQueueSemaphoreTake( xQueue, xTicksToWait );
\r
687 vPortResetPrivilege( xRunningPrivileged );
\r
690 /*-----------------------------------------------------------*/
\r
692 #if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) )
\r
693 TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) /* FREERTOS_SYSTEM_CALL */
\r
695 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
698 xReturn = xQueueGetMutexHolder( xSemaphore );
\r
699 vPortResetPrivilege( xRunningPrivileged );
\r
703 /*-----------------------------------------------------------*/
\r
705 #if( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
706 QueueHandle_t MPU_xQueueCreateMutex( const uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
708 QueueHandle_t xReturn;
\r
709 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
711 xReturn = xQueueCreateMutex( ucQueueType );
\r
712 vPortResetPrivilege( xRunningPrivileged );
\r
716 /*-----------------------------------------------------------*/
\r
718 #if( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
719 QueueHandle_t MPU_xQueueCreateMutexStatic( const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue ) /* FREERTOS_SYSTEM_CALL */
\r
721 QueueHandle_t xReturn;
\r
722 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
724 xReturn = xQueueCreateMutexStatic( ucQueueType, pxStaticQueue );
\r
725 vPortResetPrivilege( xRunningPrivileged );
\r
729 /*-----------------------------------------------------------*/
\r
731 #if( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
732 QueueHandle_t MPU_xQueueCreateCountingSemaphore( UBaseType_t uxCountValue, UBaseType_t uxInitialCount ) /* FREERTOS_SYSTEM_CALL */
\r
734 QueueHandle_t xReturn;
\r
735 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
737 xReturn = xQueueCreateCountingSemaphore( uxCountValue, uxInitialCount );
\r
738 vPortResetPrivilege( xRunningPrivileged );
\r
742 /*-----------------------------------------------------------*/
\r
744 #if( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
746 QueueHandle_t MPU_xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue ) /* FREERTOS_SYSTEM_CALL */
\r
748 QueueHandle_t xReturn;
\r
749 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
751 xReturn = xQueueCreateCountingSemaphoreStatic( uxMaxCount, uxInitialCount, pxStaticQueue );
\r
752 vPortResetPrivilege( xRunningPrivileged );
\r
756 /*-----------------------------------------------------------*/
\r
758 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
\r
759 BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xBlockTime ) /* FREERTOS_SYSTEM_CALL */
\r
761 BaseType_t xReturn;
\r
762 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
764 xReturn = xQueueTakeMutexRecursive( xMutex, xBlockTime );
\r
765 vPortResetPrivilege( xRunningPrivileged );
\r
769 /*-----------------------------------------------------------*/
\r
771 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
\r
772 BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t xMutex ) /* FREERTOS_SYSTEM_CALL */
\r
774 BaseType_t xReturn;
\r
775 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
777 xReturn = xQueueGiveMutexRecursive( xMutex );
\r
778 vPortResetPrivilege( xRunningPrivileged );
\r
782 /*-----------------------------------------------------------*/
\r
784 #if( ( configUSE_QUEUE_SETS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
785 QueueSetHandle_t MPU_xQueueCreateSet( UBaseType_t uxEventQueueLength ) /* FREERTOS_SYSTEM_CALL */
\r
787 QueueSetHandle_t xReturn;
\r
788 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
790 xReturn = xQueueCreateSet( uxEventQueueLength );
\r
791 vPortResetPrivilege( xRunningPrivileged );
\r
795 /*-----------------------------------------------------------*/
\r
797 #if ( configUSE_QUEUE_SETS == 1 )
\r
798 QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet, TickType_t xBlockTimeTicks ) /* FREERTOS_SYSTEM_CALL */
\r
800 QueueSetMemberHandle_t xReturn;
\r
801 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
803 xReturn = xQueueSelectFromSet( xQueueSet, xBlockTimeTicks );
\r
804 vPortResetPrivilege( xRunningPrivileged );
\r
808 /*-----------------------------------------------------------*/
\r
810 #if ( configUSE_QUEUE_SETS == 1 )
\r
811 BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) /* FREERTOS_SYSTEM_CALL */
\r
813 BaseType_t xReturn;
\r
814 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
816 xReturn = xQueueAddToSet( xQueueOrSemaphore, xQueueSet );
\r
817 vPortResetPrivilege( xRunningPrivileged );
\r
821 /*-----------------------------------------------------------*/
\r
823 #if ( configUSE_QUEUE_SETS == 1 )
\r
824 BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) /* FREERTOS_SYSTEM_CALL */
\r
826 BaseType_t xReturn;
\r
827 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
829 xReturn = xQueueRemoveFromSet( xQueueOrSemaphore, xQueueSet );
\r
830 vPortResetPrivilege( xRunningPrivileged );
\r
834 /*-----------------------------------------------------------*/
\r
836 #if configQUEUE_REGISTRY_SIZE > 0
\r
837 void MPU_vQueueAddToRegistry( QueueHandle_t xQueue, const char *pcName ) /* FREERTOS_SYSTEM_CALL */
\r
839 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
841 vQueueAddToRegistry( xQueue, pcName );
\r
843 vPortResetPrivilege( xRunningPrivileged );
\r
846 /*-----------------------------------------------------------*/
\r
848 #if configQUEUE_REGISTRY_SIZE > 0
\r
849 void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
851 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
853 vQueueUnregisterQueue( xQueue );
\r
855 vPortResetPrivilege( xRunningPrivileged );
\r
858 /*-----------------------------------------------------------*/
\r
860 #if configQUEUE_REGISTRY_SIZE > 0
\r
861 const char *MPU_pcQueueGetName( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
863 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
864 const char *pcReturn;
\r
866 pcReturn = pcQueueGetName( xQueue );
\r
868 vPortResetPrivilege( xRunningPrivileged );
\r
872 /*-----------------------------------------------------------*/
\r
874 void MPU_vQueueDelete( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
876 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
878 vQueueDelete( xQueue );
\r
880 vPortResetPrivilege( xRunningPrivileged );
\r
882 /*-----------------------------------------------------------*/
\r
884 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
885 void *MPU_pvPortMalloc( size_t xSize ) /* FREERTOS_SYSTEM_CALL */
\r
888 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
890 pvReturn = pvPortMalloc( xSize );
\r
892 vPortResetPrivilege( xRunningPrivileged );
\r
896 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
897 /*-----------------------------------------------------------*/
\r
899 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
900 void MPU_vPortFree( void *pv ) /* FREERTOS_SYSTEM_CALL */
\r
902 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
906 vPortResetPrivilege( xRunningPrivileged );
\r
908 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
909 /*-----------------------------------------------------------*/
\r
911 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
912 void MPU_vPortInitialiseBlocks( void ) /* FREERTOS_SYSTEM_CALL */
\r
914 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
916 vPortInitialiseBlocks();
\r
918 vPortResetPrivilege( xRunningPrivileged );
\r
920 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
921 /*-----------------------------------------------------------*/
\r
923 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
924 size_t MPU_xPortGetFreeHeapSize( void ) /* FREERTOS_SYSTEM_CALL */
\r
927 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
929 xReturn = xPortGetFreeHeapSize();
\r
931 vPortResetPrivilege( xRunningPrivileged );
\r
935 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
936 /*-----------------------------------------------------------*/
\r
938 #if( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
939 TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction ) /* FREERTOS_SYSTEM_CALL */
\r
941 TimerHandle_t xReturn;
\r
942 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
944 xReturn = xTimerCreate( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction );
\r
945 vPortResetPrivilege( xRunningPrivileged );
\r
950 /*-----------------------------------------------------------*/
\r
952 #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
953 TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction, StaticTimer_t *pxTimerBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
955 TimerHandle_t xReturn;
\r
956 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
958 xReturn = xTimerCreateStatic( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction, pxTimerBuffer );
\r
959 vPortResetPrivilege( xRunningPrivileged );
\r
964 /*-----------------------------------------------------------*/
\r
966 #if( configUSE_TIMERS == 1 )
\r
967 void *MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
970 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
972 pvReturn = pvTimerGetTimerID( xTimer );
\r
973 vPortResetPrivilege( xRunningPrivileged );
\r
978 /*-----------------------------------------------------------*/
\r
980 #if( configUSE_TIMERS == 1 )
\r
981 void MPU_vTimerSetTimerID( TimerHandle_t xTimer, void *pvNewID ) /* FREERTOS_SYSTEM_CALL */
\r
983 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
985 vTimerSetTimerID( xTimer, pvNewID );
\r
986 vPortResetPrivilege( xRunningPrivileged );
\r
989 /*-----------------------------------------------------------*/
\r
991 #if( configUSE_TIMERS == 1 )
\r
992 BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
994 BaseType_t xReturn;
\r
995 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
997 xReturn = xTimerIsTimerActive( xTimer );
\r
998 vPortResetPrivilege( xRunningPrivileged );
\r
1003 /*-----------------------------------------------------------*/
\r
1005 #if( configUSE_TIMERS == 1 )
\r
1006 TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
1008 TaskHandle_t xReturn;
\r
1009 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1011 xReturn = xTimerGetTimerDaemonTaskHandle();
\r
1012 vPortResetPrivilege( xRunningPrivileged );
\r
1017 /*-----------------------------------------------------------*/
\r
1019 #if( ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
1020 BaseType_t MPU_xTimerPendFunctionCall( PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1022 BaseType_t xReturn;
\r
1023 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1025 xReturn = xTimerPendFunctionCall( xFunctionToPend, pvParameter1, ulParameter2, xTicksToWait );
\r
1026 vPortResetPrivilege( xRunningPrivileged );
\r
1031 /*-----------------------------------------------------------*/
\r
1033 #if( configUSE_TIMERS == 1 )
\r
1034 void MPU_vTimerSetReloadMode( TimerHandle_t xTimer, const UBaseType_t uxAutoReload ) /* FREERTOS_SYSTEM_CALL */
\r
1036 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1038 vTimerSetReloadMode( xTimer, uxAutoReload );
\r
1039 vPortResetPrivilege( xRunningPrivileged );
\r
1042 /*-----------------------------------------------------------*/
\r
1044 #if( configUSE_TIMERS == 1 )
\r
1045 const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1047 const char * pcReturn;
\r
1048 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1050 pcReturn = pcTimerGetName( xTimer );
\r
1051 vPortResetPrivilege( xRunningPrivileged );
\r
1056 /*-----------------------------------------------------------*/
\r
1058 #if( configUSE_TIMERS == 1 )
\r
1059 TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1061 TickType_t xReturn;
\r
1062 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1064 xReturn = xTimerGetPeriod( xTimer );
\r
1065 vPortResetPrivilege( xRunningPrivileged );
\r
1070 /*-----------------------------------------------------------*/
\r
1072 #if( configUSE_TIMERS == 1 )
\r
1073 TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1075 TickType_t xReturn;
\r
1076 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1078 xReturn = xTimerGetExpiryTime( xTimer );
\r
1079 vPortResetPrivilege( xRunningPrivileged );
\r
1084 /*-----------------------------------------------------------*/
\r
1086 #if( configUSE_TIMERS == 1 )
\r
1087 BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1089 BaseType_t xReturn;
\r
1090 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1092 xReturn = xTimerGenericCommand( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
\r
1093 vPortResetPrivilege( xRunningPrivileged );
\r
1098 /*-----------------------------------------------------------*/
\r
1100 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
1101 EventGroupHandle_t MPU_xEventGroupCreate( void ) /* FREERTOS_SYSTEM_CALL */
\r
1103 EventGroupHandle_t xReturn;
\r
1104 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1106 xReturn = xEventGroupCreate();
\r
1107 vPortResetPrivilege( xRunningPrivileged );
\r
1112 /*-----------------------------------------------------------*/
\r
1114 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
1115 EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t *pxEventGroupBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1117 EventGroupHandle_t xReturn;
\r
1118 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1120 xReturn = xEventGroupCreateStatic( pxEventGroupBuffer );
\r
1121 vPortResetPrivilege( xRunningPrivileged );
\r
1126 /*-----------------------------------------------------------*/
\r
1128 EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1130 EventBits_t xReturn;
\r
1131 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1133 xReturn = xEventGroupWaitBits( xEventGroup, uxBitsToWaitFor, xClearOnExit, xWaitForAllBits, xTicksToWait );
\r
1134 vPortResetPrivilege( xRunningPrivileged );
\r
1138 /*-----------------------------------------------------------*/
\r
1140 EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear ) /* FREERTOS_SYSTEM_CALL */
\r
1142 EventBits_t xReturn;
\r
1143 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1145 xReturn = xEventGroupClearBits( xEventGroup, uxBitsToClear );
\r
1146 vPortResetPrivilege( xRunningPrivileged );
\r
1150 /*-----------------------------------------------------------*/
\r
1152 EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet ) /* FREERTOS_SYSTEM_CALL */
\r
1154 EventBits_t xReturn;
\r
1155 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1157 xReturn = xEventGroupSetBits( xEventGroup, uxBitsToSet );
\r
1158 vPortResetPrivilege( xRunningPrivileged );
\r
1162 /*-----------------------------------------------------------*/
\r
1164 EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1166 EventBits_t xReturn;
\r
1167 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1169 xReturn = xEventGroupSync( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTicksToWait );
\r
1170 vPortResetPrivilege( xRunningPrivileged );
\r
1174 /*-----------------------------------------------------------*/
\r
1176 void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) /* FREERTOS_SYSTEM_CALL */
\r
1178 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1180 vEventGroupDelete( xEventGroup );
\r
1181 vPortResetPrivilege( xRunningPrivileged );
\r
1183 /*-----------------------------------------------------------*/
\r
1185 size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1188 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1190 xReturn = xStreamBufferSend( xStreamBuffer, pvTxData, xDataLengthBytes, xTicksToWait );
\r
1191 vPortResetPrivilege( xRunningPrivileged );
\r
1195 /*-----------------------------------------------------------*/
\r
1197 size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1200 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1202 xReturn = xStreamBufferNextMessageLengthBytes( xStreamBuffer );
\r
1203 vPortResetPrivilege( xRunningPrivileged );
\r
1207 /*-----------------------------------------------------------*/
\r
1209 size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer, void *pvRxData, size_t xBufferLengthBytes, TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1212 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1214 xReturn = xStreamBufferReceive( xStreamBuffer, pvRxData, xBufferLengthBytes, xTicksToWait );
\r
1215 vPortResetPrivilege( xRunningPrivileged );
\r
1219 /*-----------------------------------------------------------*/
\r
1221 void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1223 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1225 vStreamBufferDelete( xStreamBuffer );
\r
1226 vPortResetPrivilege( xRunningPrivileged );
\r
1228 /*-----------------------------------------------------------*/
\r
1230 BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1232 BaseType_t xReturn;
\r
1233 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1235 xReturn = xStreamBufferIsFull( xStreamBuffer );
\r
1236 vPortResetPrivilege( xRunningPrivileged );
\r
1240 /*-----------------------------------------------------------*/
\r
1242 BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1244 BaseType_t xReturn;
\r
1245 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1247 xReturn = xStreamBufferIsEmpty( xStreamBuffer );
\r
1248 vPortResetPrivilege( xRunningPrivileged );
\r
1252 /*-----------------------------------------------------------*/
\r
1254 BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1256 BaseType_t xReturn;
\r
1257 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1259 xReturn = xStreamBufferReset( xStreamBuffer );
\r
1260 vPortResetPrivilege( xRunningPrivileged );
\r
1264 /*-----------------------------------------------------------*/
\r
1266 size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1269 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1271 xReturn = xStreamBufferSpacesAvailable( xStreamBuffer );
\r
1272 vPortResetPrivilege( xRunningPrivileged );
\r
1276 /*-----------------------------------------------------------*/
\r
1278 size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1281 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1283 xReturn = xStreamBufferBytesAvailable( xStreamBuffer );
\r
1284 vPortResetPrivilege( xRunningPrivileged );
\r
1288 /*-----------------------------------------------------------*/
\r
1290 BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, size_t xTriggerLevel ) /* FREERTOS_SYSTEM_CALL */
\r
1292 BaseType_t xReturn;
\r
1293 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1295 xReturn = xStreamBufferSetTriggerLevel( xStreamBuffer, xTriggerLevel );
\r
1296 vPortResetPrivilege( xRunningPrivileged );
\r
1300 /*-----------------------------------------------------------*/
\r
1302 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
1303 StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1305 StreamBufferHandle_t xReturn;
\r
1306 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1308 xReturn = xStreamBufferGenericCreate( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer );
\r
1309 vPortResetPrivilege( xRunningPrivileged );
\r
1313 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
1314 /*-----------------------------------------------------------*/
\r
1316 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
1317 StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer, uint8_t * const pucStreamBufferStorageArea, StaticStreamBuffer_t * const pxStaticStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1319 StreamBufferHandle_t xReturn;
\r
1320 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1322 xReturn = xStreamBufferGenericCreateStatic( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer, pucStreamBufferStorageArea, pxStaticStreamBuffer );
\r
1323 vPortResetPrivilege( xRunningPrivileged );
\r
1327 #endif /* configSUPPORT_STATIC_ALLOCATION */
\r
1328 /*-----------------------------------------------------------*/
\r
1331 /* Functions that the application writer wants to execute in privileged mode
\r
1332 can be defined in application_defined_privileged_functions.h. The functions
\r
1333 must take the same format as those above whereby the privilege state on exit
\r
1334 equals the privilege state on entry. For example:
\r
1336 void MPU_FunctionName( [parameters ] )
\r
1338 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1340 FunctionName( [parameters ] );
\r
1342 vPortResetPrivilege( xRunningPrivileged );
\r
1346 #if configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS == 1
\r
1347 #include "application_defined_privileged_functions.h"
\r