2 * FreeRTOS Kernel <DEVELOPMENT BRANCH>
\r
3 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
\r
5 * SPDX-License-Identifier: MIT
7 * Permission is hereby granted, free of charge, to any person obtaining a copy of
\r
8 * this software and associated documentation files (the "Software"), to deal in
\r
9 * the Software without restriction, including without limitation the rights to
\r
10 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
\r
11 * the Software, and to permit persons to whom the Software is furnished to do so,
\r
12 * subject to the following conditions:
\r
14 * The above copyright notice and this permission notice shall be included in all
\r
15 * copies or substantial portions of the Software.
\r
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
\r
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
\r
19 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
\r
20 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
\r
21 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
\r
22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\r
24 * https://www.FreeRTOS.org
\r
25 * https://github.com/FreeRTOS
\r
30 * Implementation of the wrapper functions used to raise the processor privilege
\r
31 * before calling a standard FreeRTOS API function.
\r
34 /* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
\r
35 * all the API functions to use the MPU wrappers. That should only be done when
\r
36 * task.h is included from an application file. */
\r
37 #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
\r
39 /* Scheduler includes. */
\r
40 #include "FreeRTOS.h"
\r
44 #include "event_groups.h"
\r
45 #include "stream_buffer.h"
\r
46 #include "mpu_prototypes.h"
\r
48 #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
\r
51 * @brief Calls the port specific code to raise the privilege.
\r
53 * @return pdFALSE if privilege was raised, pdTRUE otherwise.
\r
55 BaseType_t xPortRaisePrivilege( void ) FREERTOS_SYSTEM_CALL;
\r
58 * @brief If xRunningPrivileged is not pdTRUE, calls the port specific
\r
59 * code to reset the privilege, otherwise does nothing.
\r
61 void vPortResetPrivilege( BaseType_t xRunningPrivileged );
\r
62 /*-----------------------------------------------------------*/
\r
64 BaseType_t xPortRaisePrivilege( void ) /* FREERTOS_SYSTEM_CALL */
\r
66 BaseType_t xRunningPrivileged;
\r
68 /* Check whether the processor is already privileged. */
\r
69 xRunningPrivileged = portIS_PRIVILEGED();
\r
71 /* If the processor is not already privileged, raise privilege. */
\r
72 if( xRunningPrivileged == pdFALSE )
\r
74 portRAISE_PRIVILEGE();
\r
77 return xRunningPrivileged;
\r
79 /*-----------------------------------------------------------*/
\r
81 void vPortResetPrivilege( BaseType_t xRunningPrivileged )
\r
83 if( xRunningPrivileged == pdFALSE )
\r
85 portRESET_PRIVILEGE();
\r
88 /*-----------------------------------------------------------*/
\r
90 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
91 BaseType_t MPU_xTaskCreate( TaskFunction_t pvTaskCode,
\r
92 const char * const pcName,
\r
93 uint16_t usStackDepth,
\r
94 void * pvParameters,
\r
95 UBaseType_t uxPriority,
\r
96 TaskHandle_t * pxCreatedTask ) /* FREERTOS_SYSTEM_CALL */
\r
99 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
101 xReturn = xTaskCreate( pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask );
\r
102 vPortResetPrivilege( xRunningPrivileged );
\r
105 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
106 /*-----------------------------------------------------------*/
\r
108 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
109 TaskHandle_t MPU_xTaskCreateStatic( TaskFunction_t pxTaskCode,
\r
110 const char * const pcName,
\r
111 const uint32_t ulStackDepth,
\r
112 void * const pvParameters,
\r
113 UBaseType_t uxPriority,
\r
114 StackType_t * const puxStackBuffer,
\r
115 StaticTask_t * const pxTaskBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
117 TaskHandle_t xReturn;
\r
118 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
120 xReturn = xTaskCreateStatic( pxTaskCode, pcName, ulStackDepth, pvParameters, uxPriority, puxStackBuffer, pxTaskBuffer );
\r
121 vPortResetPrivilege( xRunningPrivileged );
\r
124 #endif /* configSUPPORT_STATIC_ALLOCATION */
\r
125 /*-----------------------------------------------------------*/
\r
127 #if ( INCLUDE_vTaskDelete == 1 )
\r
128 void MPU_vTaskDelete( TaskHandle_t pxTaskToDelete ) /* FREERTOS_SYSTEM_CALL */
\r
130 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
132 vTaskDelete( pxTaskToDelete );
\r
133 vPortResetPrivilege( xRunningPrivileged );
\r
136 /*-----------------------------------------------------------*/
\r
138 #if ( INCLUDE_xTaskDelayUntil == 1 )
\r
139 BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
\r
140 TickType_t xTimeIncrement ) /* FREERTOS_SYSTEM_CALL */
\r
142 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
143 BaseType_t xReturn;
\r
145 xReturn = xTaskDelayUntil( pxPreviousWakeTime, xTimeIncrement );
\r
146 vPortResetPrivilege( xRunningPrivileged );
\r
150 /*-----------------------------------------------------------*/
\r
152 #if ( INCLUDE_xTaskAbortDelay == 1 )
\r
153 BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
155 BaseType_t xReturn;
\r
156 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
158 xReturn = xTaskAbortDelay( xTask );
\r
159 vPortResetPrivilege( xRunningPrivileged );
\r
163 /*-----------------------------------------------------------*/
\r
165 #if ( INCLUDE_vTaskDelay == 1 )
\r
166 void MPU_vTaskDelay( TickType_t xTicksToDelay ) /* FREERTOS_SYSTEM_CALL */
\r
168 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
170 vTaskDelay( xTicksToDelay );
\r
171 vPortResetPrivilege( xRunningPrivileged );
\r
174 /*-----------------------------------------------------------*/
\r
176 #if ( INCLUDE_uxTaskPriorityGet == 1 )
\r
177 UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t pxTask ) /* FREERTOS_SYSTEM_CALL */
\r
179 UBaseType_t uxReturn;
\r
180 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
182 uxReturn = uxTaskPriorityGet( pxTask );
\r
183 vPortResetPrivilege( xRunningPrivileged );
\r
187 /*-----------------------------------------------------------*/
\r
189 #if ( INCLUDE_vTaskPrioritySet == 1 )
\r
190 void MPU_vTaskPrioritySet( TaskHandle_t pxTask,
\r
191 UBaseType_t uxNewPriority ) /* FREERTOS_SYSTEM_CALL */
\r
193 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
195 vTaskPrioritySet( pxTask, uxNewPriority );
\r
196 vPortResetPrivilege( xRunningPrivileged );
\r
199 /*-----------------------------------------------------------*/
\r
201 #if ( INCLUDE_eTaskGetState == 1 )
\r
202 eTaskState MPU_eTaskGetState( TaskHandle_t pxTask ) /* FREERTOS_SYSTEM_CALL */
\r
204 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
205 eTaskState eReturn;
\r
207 eReturn = eTaskGetState( pxTask );
\r
208 vPortResetPrivilege( xRunningPrivileged );
\r
212 /*-----------------------------------------------------------*/
\r
214 #if ( configUSE_TRACE_FACILITY == 1 )
\r
215 void MPU_vTaskGetInfo( TaskHandle_t xTask,
\r
216 TaskStatus_t * pxTaskStatus,
\r
217 BaseType_t xGetFreeStackSpace,
\r
218 eTaskState eState ) /* FREERTOS_SYSTEM_CALL */
\r
220 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
222 vTaskGetInfo( xTask, pxTaskStatus, xGetFreeStackSpace, eState );
\r
223 vPortResetPrivilege( xRunningPrivileged );
\r
225 #endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
\r
226 /*-----------------------------------------------------------*/
\r
228 #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )
\r
229 TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
231 TaskHandle_t xReturn;
\r
232 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
234 xReturn = xTaskGetIdleTaskHandle();
\r
235 vPortResetPrivilege( xRunningPrivileged );
\r
239 /*-----------------------------------------------------------*/
\r
241 #if ( INCLUDE_vTaskSuspend == 1 )
\r
242 void MPU_vTaskSuspend( TaskHandle_t pxTaskToSuspend ) /* FREERTOS_SYSTEM_CALL */
\r
244 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
246 vTaskSuspend( pxTaskToSuspend );
\r
247 vPortResetPrivilege( xRunningPrivileged );
\r
250 /*-----------------------------------------------------------*/
\r
252 #if ( INCLUDE_vTaskSuspend == 1 )
\r
253 void MPU_vTaskResume( TaskHandle_t pxTaskToResume ) /* FREERTOS_SYSTEM_CALL */
\r
255 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
257 vTaskResume( pxTaskToResume );
\r
258 vPortResetPrivilege( xRunningPrivileged );
\r
261 /*-----------------------------------------------------------*/
\r
263 void MPU_vTaskSuspendAll( void ) /* FREERTOS_SYSTEM_CALL */
\r
265 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
268 vPortResetPrivilege( xRunningPrivileged );
\r
270 /*-----------------------------------------------------------*/
\r
272 BaseType_t MPU_xTaskResumeAll( void ) /* FREERTOS_SYSTEM_CALL */
\r
274 BaseType_t xReturn;
\r
275 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
277 xReturn = xTaskResumeAll();
\r
278 vPortResetPrivilege( xRunningPrivileged );
\r
281 /*-----------------------------------------------------------*/
\r
283 TickType_t MPU_xTaskGetTickCount( void ) /* FREERTOS_SYSTEM_CALL */
\r
285 TickType_t xReturn;
\r
286 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
288 xReturn = xTaskGetTickCount();
\r
289 vPortResetPrivilege( xRunningPrivileged );
\r
292 /*-----------------------------------------------------------*/
\r
294 UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) /* FREERTOS_SYSTEM_CALL */
\r
296 UBaseType_t uxReturn;
\r
297 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
299 uxReturn = uxTaskGetNumberOfTasks();
\r
300 vPortResetPrivilege( xRunningPrivileged );
\r
303 /*-----------------------------------------------------------*/
\r
305 char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ) /* FREERTOS_SYSTEM_CALL */
\r
308 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
310 pcReturn = pcTaskGetName( xTaskToQuery );
\r
311 vPortResetPrivilege( xRunningPrivileged );
\r
314 /*-----------------------------------------------------------*/
\r
316 #if ( INCLUDE_xTaskGetHandle == 1 )
\r
317 TaskHandle_t MPU_xTaskGetHandle( const char * pcNameToQuery ) /* FREERTOS_SYSTEM_CALL */
\r
319 TaskHandle_t xReturn;
\r
320 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
322 xReturn = xTaskGetHandle( pcNameToQuery );
\r
323 vPortResetPrivilege( xRunningPrivileged );
\r
327 /*-----------------------------------------------------------*/
\r
329 #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
330 void MPU_vTaskList( char * pcWriteBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
332 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
334 vTaskList( pcWriteBuffer );
\r
335 vPortResetPrivilege( xRunningPrivileged );
\r
338 /*-----------------------------------------------------------*/
\r
340 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
341 void MPU_vTaskGetRunTimeStats( char * pcWriteBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
343 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
345 vTaskGetRunTimeStats( pcWriteBuffer );
\r
346 vPortResetPrivilege( xRunningPrivileged );
\r
349 /*-----------------------------------------------------------*/
\r
351 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
\r
352 uint32_t MPU_ulTaskGetIdleRunTimeCounter( void ) /* FREERTOS_SYSTEM_CALL */
\r
355 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
357 xReturn = ulTaskGetIdleRunTimeCounter();
\r
358 vPortResetPrivilege( xRunningPrivileged );
\r
362 /*-----------------------------------------------------------*/
\r
364 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
365 void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
\r
366 TaskHookFunction_t pxTagValue ) /* FREERTOS_SYSTEM_CALL */
\r
368 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
370 vTaskSetApplicationTaskTag( xTask, pxTagValue );
\r
371 vPortResetPrivilege( xRunningPrivileged );
\r
374 /*-----------------------------------------------------------*/
\r
376 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
377 TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
379 TaskHookFunction_t xReturn;
\r
380 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
382 xReturn = xTaskGetApplicationTaskTag( xTask );
\r
383 vPortResetPrivilege( xRunningPrivileged );
\r
387 /*-----------------------------------------------------------*/
\r
389 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
\r
390 void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
\r
392 void * pvValue ) /* FREERTOS_SYSTEM_CALL */
\r
394 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
396 vTaskSetThreadLocalStoragePointer( xTaskToSet, xIndex, pvValue );
\r
397 vPortResetPrivilege( xRunningPrivileged );
\r
400 /*-----------------------------------------------------------*/
\r
402 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
\r
403 void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,
\r
404 BaseType_t xIndex ) /* FREERTOS_SYSTEM_CALL */
\r
407 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
409 pvReturn = pvTaskGetThreadLocalStoragePointer( xTaskToQuery, xIndex );
\r
410 vPortResetPrivilege( xRunningPrivileged );
\r
413 #endif /* if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) */
\r
414 /*-----------------------------------------------------------*/
\r
416 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
417 BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask,
\r
418 void * pvParameter ) /* FREERTOS_SYSTEM_CALL */
\r
420 BaseType_t xReturn;
\r
421 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
423 xReturn = xTaskCallApplicationTaskHook( xTask, pvParameter );
\r
424 vPortResetPrivilege( xRunningPrivileged );
\r
427 #endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
\r
428 /*-----------------------------------------------------------*/
\r
430 #if ( configUSE_TRACE_FACILITY == 1 )
\r
431 UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * pxTaskStatusArray,
\r
432 UBaseType_t uxArraySize,
\r
433 uint32_t * pulTotalRunTime ) /* FREERTOS_SYSTEM_CALL */
\r
435 UBaseType_t uxReturn;
\r
436 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
438 uxReturn = uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, pulTotalRunTime );
\r
439 vPortResetPrivilege( xRunningPrivileged );
\r
442 #endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
\r
443 /*-----------------------------------------------------------*/
\r
445 BaseType_t MPU_xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) /* FREERTOS_SYSTEM_CALL */
\r
447 BaseType_t xReturn;
\r
448 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
450 xReturn = xTaskCatchUpTicks( xTicksToCatchUp );
\r
451 vPortResetPrivilege( xRunningPrivileged );
\r
454 /*-----------------------------------------------------------*/
\r
456 #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
\r
457 UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
459 UBaseType_t uxReturn;
\r
460 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
462 uxReturn = uxTaskGetStackHighWaterMark( xTask );
\r
463 vPortResetPrivilege( xRunningPrivileged );
\r
467 /*-----------------------------------------------------------*/
\r
469 #if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 )
\r
470 configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
472 configSTACK_DEPTH_TYPE uxReturn;
\r
473 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
475 uxReturn = uxTaskGetStackHighWaterMark2( xTask );
\r
476 vPortResetPrivilege( xRunningPrivileged );
\r
480 /*-----------------------------------------------------------*/
\r
482 #if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ))
\r
483 TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
485 TaskHandle_t xReturn;
\r
486 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
488 xReturn = xTaskGetCurrentTaskHandle();
\r
489 vPortResetPrivilege( xRunningPrivileged );
\r
493 /*-----------------------------------------------------------*/
\r
495 #if ( INCLUDE_xTaskGetSchedulerState == 1 )
\r
496 BaseType_t MPU_xTaskGetSchedulerState( void ) /* FREERTOS_SYSTEM_CALL */
\r
498 BaseType_t xReturn;
\r
499 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
501 xReturn = xTaskGetSchedulerState();
\r
502 vPortResetPrivilege( xRunningPrivileged );
\r
506 /*-----------------------------------------------------------*/
\r
508 void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) /* FREERTOS_SYSTEM_CALL */
\r
510 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
512 vTaskSetTimeOutState( pxTimeOut );
\r
513 vPortResetPrivilege( xRunningPrivileged );
\r
515 /*-----------------------------------------------------------*/
\r
517 BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
\r
518 TickType_t * const pxTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
520 BaseType_t xReturn;
\r
521 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
523 xReturn = xTaskCheckForTimeOut( pxTimeOut, pxTicksToWait );
\r
524 vPortResetPrivilege( xRunningPrivileged );
\r
527 /*-----------------------------------------------------------*/
\r
529 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
530 BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
\r
531 UBaseType_t uxIndexToNotify,
\r
533 eNotifyAction eAction,
\r
534 uint32_t * pulPreviousNotificationValue ) /* FREERTOS_SYSTEM_CALL */
\r
536 BaseType_t xReturn;
\r
537 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
539 xReturn = xTaskGenericNotify( xTaskToNotify, uxIndexToNotify, ulValue, eAction, pulPreviousNotificationValue );
\r
540 vPortResetPrivilege( xRunningPrivileged );
\r
543 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
544 /*-----------------------------------------------------------*/
\r
546 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
547 BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
\r
548 uint32_t ulBitsToClearOnEntry,
\r
549 uint32_t ulBitsToClearOnExit,
\r
550 uint32_t * pulNotificationValue,
\r
551 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
553 BaseType_t xReturn;
\r
554 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
556 xReturn = xTaskGenericNotifyWait( uxIndexToWaitOn, ulBitsToClearOnEntry, ulBitsToClearOnExit, pulNotificationValue, xTicksToWait );
\r
557 vPortResetPrivilege( xRunningPrivileged );
\r
560 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
561 /*-----------------------------------------------------------*/
\r
563 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
564 uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
\r
565 BaseType_t xClearCountOnExit,
\r
566 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
569 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
571 ulReturn = ulTaskGenericNotifyTake( uxIndexToWaitOn, xClearCountOnExit, xTicksToWait );
\r
572 vPortResetPrivilege( xRunningPrivileged );
\r
575 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
576 /*-----------------------------------------------------------*/
\r
578 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
579 BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
\r
580 UBaseType_t uxIndexToClear ) /* FREERTOS_SYSTEM_CALL */
\r
582 BaseType_t xReturn;
\r
583 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
585 xReturn = xTaskGenericNotifyStateClear( xTask, uxIndexToClear );
\r
586 vPortResetPrivilege( xRunningPrivileged );
\r
589 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
590 /*-----------------------------------------------------------*/
\r
592 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
593 uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
\r
594 UBaseType_t uxIndexToClear,
\r
595 uint32_t ulBitsToClear ) /* FREERTOS_SYSTEM_CALL */
\r
598 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
600 ulReturn = ulTaskGenericNotifyValueClear( xTask, uxIndexToClear, ulBitsToClear );
\r
601 vPortResetPrivilege( xRunningPrivileged );
\r
604 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
605 /*-----------------------------------------------------------*/
\r
607 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
608 QueueHandle_t MPU_xQueueGenericCreate( UBaseType_t uxQueueLength,
\r
609 UBaseType_t uxItemSize,
\r
610 uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
612 QueueHandle_t xReturn;
\r
613 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
615 xReturn = xQueueGenericCreate( uxQueueLength, uxItemSize, ucQueueType );
\r
616 vPortResetPrivilege( xRunningPrivileged );
\r
619 #endif /* if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) */
\r
620 /*-----------------------------------------------------------*/
\r
622 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
623 QueueHandle_t MPU_xQueueGenericCreateStatic( const UBaseType_t uxQueueLength,
\r
624 const UBaseType_t uxItemSize,
\r
625 uint8_t * pucQueueStorage,
\r
626 StaticQueue_t * pxStaticQueue,
\r
627 const uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
629 QueueHandle_t xReturn;
\r
630 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
632 xReturn = xQueueGenericCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxStaticQueue, ucQueueType );
\r
633 vPortResetPrivilege( xRunningPrivileged );
\r
636 #endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */
\r
637 /*-----------------------------------------------------------*/
\r
639 BaseType_t MPU_xQueueGenericReset( QueueHandle_t pxQueue,
\r
640 BaseType_t xNewQueue ) /* FREERTOS_SYSTEM_CALL */
\r
642 BaseType_t xReturn;
\r
643 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
645 xReturn = xQueueGenericReset( pxQueue, xNewQueue );
\r
646 vPortResetPrivilege( xRunningPrivileged );
\r
649 /*-----------------------------------------------------------*/
\r
651 BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
\r
652 const void * const pvItemToQueue,
\r
653 TickType_t xTicksToWait,
\r
654 BaseType_t xCopyPosition ) /* FREERTOS_SYSTEM_CALL */
\r
656 BaseType_t xReturn;
\r
657 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
659 xReturn = xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, xCopyPosition );
\r
660 vPortResetPrivilege( xRunningPrivileged );
\r
663 /*-----------------------------------------------------------*/
\r
665 UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t pxQueue ) /* FREERTOS_SYSTEM_CALL */
\r
667 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
668 UBaseType_t uxReturn;
\r
670 uxReturn = uxQueueMessagesWaiting( pxQueue );
\r
671 vPortResetPrivilege( xRunningPrivileged );
\r
674 /*-----------------------------------------------------------*/
\r
676 UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
678 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
679 UBaseType_t uxReturn;
\r
681 uxReturn = uxQueueSpacesAvailable( xQueue );
\r
682 vPortResetPrivilege( xRunningPrivileged );
\r
685 /*-----------------------------------------------------------*/
\r
687 BaseType_t MPU_xQueueReceive( QueueHandle_t pxQueue,
\r
688 void * const pvBuffer,
\r
689 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
691 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
692 BaseType_t xReturn;
\r
694 xReturn = xQueueReceive( pxQueue, pvBuffer, xTicksToWait );
\r
695 vPortResetPrivilege( xRunningPrivileged );
\r
698 /*-----------------------------------------------------------*/
\r
700 BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
\r
701 void * const pvBuffer,
\r
702 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
704 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
705 BaseType_t xReturn;
\r
707 xReturn = xQueuePeek( xQueue, pvBuffer, xTicksToWait );
\r
708 vPortResetPrivilege( xRunningPrivileged );
\r
711 /*-----------------------------------------------------------*/
\r
713 BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
\r
714 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
716 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
717 BaseType_t xReturn;
\r
719 xReturn = xQueueSemaphoreTake( xQueue, xTicksToWait );
\r
720 vPortResetPrivilege( xRunningPrivileged );
\r
723 /*-----------------------------------------------------------*/
\r
725 #if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) )
\r
726 TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) /* FREERTOS_SYSTEM_CALL */
\r
728 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
731 xReturn = xQueueGetMutexHolder( xSemaphore );
\r
732 vPortResetPrivilege( xRunningPrivileged );
\r
736 /*-----------------------------------------------------------*/
\r
738 #if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
739 QueueHandle_t MPU_xQueueCreateMutex( const uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
741 QueueHandle_t xReturn;
\r
742 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
744 xReturn = xQueueCreateMutex( ucQueueType );
\r
745 vPortResetPrivilege( xRunningPrivileged );
\r
749 /*-----------------------------------------------------------*/
\r
751 #if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
752 QueueHandle_t MPU_xQueueCreateMutexStatic( const uint8_t ucQueueType,
\r
753 StaticQueue_t * pxStaticQueue ) /* FREERTOS_SYSTEM_CALL */
\r
755 QueueHandle_t xReturn;
\r
756 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
758 xReturn = xQueueCreateMutexStatic( ucQueueType, pxStaticQueue );
\r
759 vPortResetPrivilege( xRunningPrivileged );
\r
762 #endif /* if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) */
\r
763 /*-----------------------------------------------------------*/
\r
765 #if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
766 QueueHandle_t MPU_xQueueCreateCountingSemaphore( UBaseType_t uxCountValue,
\r
767 UBaseType_t uxInitialCount ) /* FREERTOS_SYSTEM_CALL */
\r
769 QueueHandle_t xReturn;
\r
770 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
772 xReturn = xQueueCreateCountingSemaphore( uxCountValue, uxInitialCount );
\r
773 vPortResetPrivilege( xRunningPrivileged );
\r
776 #endif /* if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */
\r
777 /*-----------------------------------------------------------*/
\r
779 #if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
781 QueueHandle_t MPU_xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount,
\r
782 const UBaseType_t uxInitialCount,
\r
783 StaticQueue_t * pxStaticQueue ) /* FREERTOS_SYSTEM_CALL */
\r
785 QueueHandle_t xReturn;
\r
786 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
788 xReturn = xQueueCreateCountingSemaphoreStatic( uxMaxCount, uxInitialCount, pxStaticQueue );
\r
789 vPortResetPrivilege( xRunningPrivileged );
\r
792 #endif /* if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) */
\r
793 /*-----------------------------------------------------------*/
\r
795 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
\r
796 BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
\r
797 TickType_t xBlockTime ) /* FREERTOS_SYSTEM_CALL */
\r
799 BaseType_t xReturn;
\r
800 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
802 xReturn = xQueueTakeMutexRecursive( xMutex, xBlockTime );
\r
803 vPortResetPrivilege( xRunningPrivileged );
\r
806 #endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */
\r
807 /*-----------------------------------------------------------*/
\r
809 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
\r
810 BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t xMutex ) /* FREERTOS_SYSTEM_CALL */
\r
812 BaseType_t xReturn;
\r
813 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
815 xReturn = xQueueGiveMutexRecursive( xMutex );
\r
816 vPortResetPrivilege( xRunningPrivileged );
\r
820 /*-----------------------------------------------------------*/
\r
822 #if ( ( configUSE_QUEUE_SETS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
823 QueueSetHandle_t MPU_xQueueCreateSet( UBaseType_t uxEventQueueLength ) /* FREERTOS_SYSTEM_CALL */
\r
825 QueueSetHandle_t xReturn;
\r
826 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
828 xReturn = xQueueCreateSet( uxEventQueueLength );
\r
829 vPortResetPrivilege( xRunningPrivileged );
\r
833 /*-----------------------------------------------------------*/
\r
835 #if ( configUSE_QUEUE_SETS == 1 )
\r
836 QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
\r
837 TickType_t xBlockTimeTicks ) /* FREERTOS_SYSTEM_CALL */
\r
839 QueueSetMemberHandle_t xReturn;
\r
840 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
842 xReturn = xQueueSelectFromSet( xQueueSet, xBlockTimeTicks );
\r
843 vPortResetPrivilege( xRunningPrivileged );
\r
846 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
847 /*-----------------------------------------------------------*/
\r
849 #if ( configUSE_QUEUE_SETS == 1 )
\r
850 BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
\r
851 QueueSetHandle_t xQueueSet ) /* FREERTOS_SYSTEM_CALL */
\r
853 BaseType_t xReturn;
\r
854 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
856 xReturn = xQueueAddToSet( xQueueOrSemaphore, xQueueSet );
\r
857 vPortResetPrivilege( xRunningPrivileged );
\r
860 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
861 /*-----------------------------------------------------------*/
\r
863 #if ( configUSE_QUEUE_SETS == 1 )
\r
864 BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore,
\r
865 QueueSetHandle_t xQueueSet ) /* FREERTOS_SYSTEM_CALL */
\r
867 BaseType_t xReturn;
\r
868 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
870 xReturn = xQueueRemoveFromSet( xQueueOrSemaphore, xQueueSet );
\r
871 vPortResetPrivilege( xRunningPrivileged );
\r
874 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
875 /*-----------------------------------------------------------*/
\r
877 #if configQUEUE_REGISTRY_SIZE > 0
\r
878 void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
\r
879 const char * pcName ) /* FREERTOS_SYSTEM_CALL */
\r
881 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
883 vQueueAddToRegistry( xQueue, pcName );
\r
885 vPortResetPrivilege( xRunningPrivileged );
\r
888 /*-----------------------------------------------------------*/
\r
890 #if configQUEUE_REGISTRY_SIZE > 0
\r
891 void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
893 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
895 vQueueUnregisterQueue( xQueue );
\r
897 vPortResetPrivilege( xRunningPrivileged );
\r
900 /*-----------------------------------------------------------*/
\r
902 #if configQUEUE_REGISTRY_SIZE > 0
\r
903 const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
905 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
906 const char * pcReturn;
\r
908 pcReturn = pcQueueGetName( xQueue );
\r
910 vPortResetPrivilege( xRunningPrivileged );
\r
913 #endif /* if configQUEUE_REGISTRY_SIZE > 0 */
\r
914 /*-----------------------------------------------------------*/
\r
916 void MPU_vQueueDelete( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
918 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
920 vQueueDelete( xQueue );
\r
922 vPortResetPrivilege( xRunningPrivileged );
\r
924 /*-----------------------------------------------------------*/
\r
926 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
927 void MPU_vPortInitialiseBlocks( void ) /* FREERTOS_SYSTEM_CALL */
\r
929 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
931 vPortInitialiseBlocks();
\r
933 vPortResetPrivilege( xRunningPrivileged );
\r
935 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
936 /*-----------------------------------------------------------*/
\r
938 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
939 size_t MPU_xPortGetFreeHeapSize( void ) /* FREERTOS_SYSTEM_CALL */
\r
942 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
944 xReturn = xPortGetFreeHeapSize();
\r
946 vPortResetPrivilege( xRunningPrivileged );
\r
950 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
951 /*-----------------------------------------------------------*/
\r
953 #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
954 TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName,
\r
955 const TickType_t xTimerPeriodInTicks,
\r
956 const UBaseType_t uxAutoReload,
\r
957 void * const pvTimerID,
\r
958 TimerCallbackFunction_t pxCallbackFunction ) /* FREERTOS_SYSTEM_CALL */
\r
960 TimerHandle_t xReturn;
\r
961 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
963 xReturn = xTimerCreate( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction );
\r
964 vPortResetPrivilege( xRunningPrivileged );
\r
968 #endif /* if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
969 /*-----------------------------------------------------------*/
\r
971 #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
972 TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName,
\r
973 const TickType_t xTimerPeriodInTicks,
\r
974 const UBaseType_t uxAutoReload,
\r
975 void * const pvTimerID,
\r
976 TimerCallbackFunction_t pxCallbackFunction,
\r
977 StaticTimer_t * pxTimerBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
979 TimerHandle_t xReturn;
\r
980 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
982 xReturn = xTimerCreateStatic( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction, pxTimerBuffer );
\r
983 vPortResetPrivilege( xRunningPrivileged );
\r
987 #endif /* if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
988 /*-----------------------------------------------------------*/
\r
990 #if ( configUSE_TIMERS == 1 )
\r
991 void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
994 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
996 pvReturn = pvTimerGetTimerID( xTimer );
\r
997 vPortResetPrivilege( xRunningPrivileged );
\r
1001 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1002 /*-----------------------------------------------------------*/
\r
1004 #if ( configUSE_TIMERS == 1 )
\r
1005 void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
\r
1006 void * pvNewID ) /* FREERTOS_SYSTEM_CALL */
\r
1008 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1010 vTimerSetTimerID( xTimer, pvNewID );
\r
1011 vPortResetPrivilege( xRunningPrivileged );
\r
1014 /*-----------------------------------------------------------*/
\r
1016 #if ( configUSE_TIMERS == 1 )
\r
1017 BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1019 BaseType_t xReturn;
\r
1020 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1022 xReturn = xTimerIsTimerActive( xTimer );
\r
1023 vPortResetPrivilege( xRunningPrivileged );
\r
1027 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1028 /*-----------------------------------------------------------*/
\r
1030 #if ( configUSE_TIMERS == 1 )
\r
1031 TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
1033 TaskHandle_t xReturn;
\r
1034 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1036 xReturn = xTimerGetTimerDaemonTaskHandle();
\r
1037 vPortResetPrivilege( xRunningPrivileged );
\r
1041 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1042 /*-----------------------------------------------------------*/
\r
1044 #if ( ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
1045 BaseType_t MPU_xTimerPendFunctionCall( PendedFunction_t xFunctionToPend,
\r
1046 void * pvParameter1,
\r
1047 uint32_t ulParameter2,
\r
1048 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1050 BaseType_t xReturn;
\r
1051 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1053 xReturn = xTimerPendFunctionCall( xFunctionToPend, pvParameter1, ulParameter2, xTicksToWait );
\r
1054 vPortResetPrivilege( xRunningPrivileged );
\r
1058 #endif /* if ( ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
1059 /*-----------------------------------------------------------*/
\r
1061 #if ( configUSE_TIMERS == 1 )
\r
1062 void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
\r
1063 const UBaseType_t uxAutoReload ) /* FREERTOS_SYSTEM_CALL */
\r
1065 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1067 vTimerSetReloadMode( xTimer, uxAutoReload );
\r
1068 vPortResetPrivilege( xRunningPrivileged );
\r
1071 /*-----------------------------------------------------------*/
\r
1073 #if ( configUSE_TIMERS == 1 )
\r
1074 UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer )
\r
1076 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1077 UBaseType_t uxReturn;
\r
1079 uxReturn = uxTimerGetReloadMode( xTimer );
\r
1080 vPortResetPrivilege( xRunningPrivileged );
\r
1084 /*-----------------------------------------------------------*/
\r
1086 #if ( configUSE_TIMERS == 1 )
\r
1087 const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1089 const char * pcReturn;
\r
1090 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1092 pcReturn = pcTimerGetName( xTimer );
\r
1093 vPortResetPrivilege( xRunningPrivileged );
\r
1097 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1098 /*-----------------------------------------------------------*/
\r
1100 #if ( configUSE_TIMERS == 1 )
\r
1101 TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1103 TickType_t xReturn;
\r
1104 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1106 xReturn = xTimerGetPeriod( xTimer );
\r
1107 vPortResetPrivilege( xRunningPrivileged );
\r
1111 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1112 /*-----------------------------------------------------------*/
\r
1114 #if ( configUSE_TIMERS == 1 )
\r
1115 TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1117 TickType_t xReturn;
\r
1118 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1120 xReturn = xTimerGetExpiryTime( xTimer );
\r
1121 vPortResetPrivilege( xRunningPrivileged );
\r
1125 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1126 /*-----------------------------------------------------------*/
\r
1128 #if ( configUSE_TIMERS == 1 )
\r
1129 BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
\r
1130 const BaseType_t xCommandID,
\r
1131 const TickType_t xOptionalValue,
\r
1132 BaseType_t * const pxHigherPriorityTaskWoken,
\r
1133 const TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1135 BaseType_t xReturn;
\r
1136 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1138 xReturn = xTimerGenericCommand( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
\r
1139 vPortResetPrivilege( xRunningPrivileged );
\r
1143 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1144 /*-----------------------------------------------------------*/
\r
1146 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
1147 EventGroupHandle_t MPU_xEventGroupCreate( void ) /* FREERTOS_SYSTEM_CALL */
\r
1149 EventGroupHandle_t xReturn;
\r
1150 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1152 xReturn = xEventGroupCreate();
\r
1153 vPortResetPrivilege( xRunningPrivileged );
\r
1157 #endif /* if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) */
\r
1158 /*-----------------------------------------------------------*/
\r
1160 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
1161 EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t * pxEventGroupBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1163 EventGroupHandle_t xReturn;
\r
1164 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1166 xReturn = xEventGroupCreateStatic( pxEventGroupBuffer );
\r
1167 vPortResetPrivilege( xRunningPrivileged );
\r
1171 #endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */
\r
1172 /*-----------------------------------------------------------*/
\r
1174 EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
\r
1175 const EventBits_t uxBitsToWaitFor,
\r
1176 const BaseType_t xClearOnExit,
\r
1177 const BaseType_t xWaitForAllBits,
\r
1178 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1180 EventBits_t xReturn;
\r
1181 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1183 xReturn = xEventGroupWaitBits( xEventGroup, uxBitsToWaitFor, xClearOnExit, xWaitForAllBits, xTicksToWait );
\r
1184 vPortResetPrivilege( xRunningPrivileged );
\r
1188 /*-----------------------------------------------------------*/
\r
1190 EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
\r
1191 const EventBits_t uxBitsToClear ) /* FREERTOS_SYSTEM_CALL */
\r
1193 EventBits_t xReturn;
\r
1194 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1196 xReturn = xEventGroupClearBits( xEventGroup, uxBitsToClear );
\r
1197 vPortResetPrivilege( xRunningPrivileged );
\r
1201 /*-----------------------------------------------------------*/
\r
1203 EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
\r
1204 const EventBits_t uxBitsToSet ) /* FREERTOS_SYSTEM_CALL */
\r
1206 EventBits_t xReturn;
\r
1207 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1209 xReturn = xEventGroupSetBits( xEventGroup, uxBitsToSet );
\r
1210 vPortResetPrivilege( xRunningPrivileged );
\r
1214 /*-----------------------------------------------------------*/
\r
1216 EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
\r
1217 const EventBits_t uxBitsToSet,
\r
1218 const EventBits_t uxBitsToWaitFor,
\r
1219 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1221 EventBits_t xReturn;
\r
1222 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1224 xReturn = xEventGroupSync( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTicksToWait );
\r
1225 vPortResetPrivilege( xRunningPrivileged );
\r
1229 /*-----------------------------------------------------------*/
\r
1231 void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) /* FREERTOS_SYSTEM_CALL */
\r
1233 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1235 vEventGroupDelete( xEventGroup );
\r
1236 vPortResetPrivilege( xRunningPrivileged );
\r
1238 /*-----------------------------------------------------------*/
\r
1240 size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
\r
1241 const void * pvTxData,
\r
1242 size_t xDataLengthBytes,
\r
1243 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1246 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1248 xReturn = xStreamBufferSend( xStreamBuffer, pvTxData, xDataLengthBytes, xTicksToWait );
\r
1249 vPortResetPrivilege( xRunningPrivileged );
\r
1253 /*-----------------------------------------------------------*/
\r
1255 size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1258 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1260 xReturn = xStreamBufferNextMessageLengthBytes( xStreamBuffer );
\r
1261 vPortResetPrivilege( xRunningPrivileged );
\r
1265 /*-----------------------------------------------------------*/
\r
1267 size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
\r
1269 size_t xBufferLengthBytes,
\r
1270 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1273 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1275 xReturn = xStreamBufferReceive( xStreamBuffer, pvRxData, xBufferLengthBytes, xTicksToWait );
\r
1276 vPortResetPrivilege( xRunningPrivileged );
\r
1280 /*-----------------------------------------------------------*/
\r
1282 void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1284 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1286 vStreamBufferDelete( xStreamBuffer );
\r
1287 vPortResetPrivilege( xRunningPrivileged );
\r
1289 /*-----------------------------------------------------------*/
\r
1291 BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1293 BaseType_t xReturn;
\r
1294 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1296 xReturn = xStreamBufferIsFull( xStreamBuffer );
\r
1297 vPortResetPrivilege( xRunningPrivileged );
\r
1301 /*-----------------------------------------------------------*/
\r
1303 BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1305 BaseType_t xReturn;
\r
1306 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1308 xReturn = xStreamBufferIsEmpty( xStreamBuffer );
\r
1309 vPortResetPrivilege( xRunningPrivileged );
\r
1313 /*-----------------------------------------------------------*/
\r
1315 BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1317 BaseType_t xReturn;
\r
1318 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1320 xReturn = xStreamBufferReset( xStreamBuffer );
\r
1321 vPortResetPrivilege( xRunningPrivileged );
\r
1325 /*-----------------------------------------------------------*/
\r
1327 size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1330 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1332 xReturn = xStreamBufferSpacesAvailable( xStreamBuffer );
\r
1333 vPortResetPrivilege( xRunningPrivileged );
\r
1337 /*-----------------------------------------------------------*/
\r
1339 size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1342 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1344 xReturn = xStreamBufferBytesAvailable( xStreamBuffer );
\r
1345 vPortResetPrivilege( xRunningPrivileged );
\r
1349 /*-----------------------------------------------------------*/
\r
1351 BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
\r
1352 size_t xTriggerLevel ) /* FREERTOS_SYSTEM_CALL */
\r
1354 BaseType_t xReturn;
\r
1355 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1357 xReturn = xStreamBufferSetTriggerLevel( xStreamBuffer, xTriggerLevel );
\r
1358 vPortResetPrivilege( xRunningPrivileged );
\r
1362 /*-----------------------------------------------------------*/
\r
1364 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
1365 StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes,
\r
1366 size_t xTriggerLevelBytes,
\r
1367 BaseType_t xIsMessageBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1369 StreamBufferHandle_t xReturn;
\r
1370 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1372 xReturn = xStreamBufferGenericCreate( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer );
\r
1373 vPortResetPrivilege( xRunningPrivileged );
\r
1377 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
1378 /*-----------------------------------------------------------*/
\r
1380 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
1381 StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes,
\r
1382 size_t xTriggerLevelBytes,
\r
1383 BaseType_t xIsMessageBuffer,
\r
1384 uint8_t * const pucStreamBufferStorageArea,
\r
1385 StaticStreamBuffer_t * const pxStaticStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1387 StreamBufferHandle_t xReturn;
\r
1388 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1390 xReturn = xStreamBufferGenericCreateStatic( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer, pucStreamBufferStorageArea, pxStaticStreamBuffer );
\r
1391 vPortResetPrivilege( xRunningPrivileged );
\r
1395 #endif /* configSUPPORT_STATIC_ALLOCATION */
\r
1396 /*-----------------------------------------------------------*/
\r
1399 /* Functions that the application writer wants to execute in privileged mode
\r
1400 * can be defined in application_defined_privileged_functions.h. The functions
\r
1401 * must take the same format as those above whereby the privilege state on exit
\r
1402 * equals the privilege state on entry. For example:
\r
1404 * void MPU_FunctionName( [parameters ] )
\r
1406 * BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1408 * FunctionName( [parameters ] );
\r
1410 * vPortResetPrivilege( xRunningPrivileged );
\r
1414 #if configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS == 1
\r
1415 #include "application_defined_privileged_functions.h"
\r