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
\r
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 configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimePercent( void ) /* FREERTOS_SYSTEM_CALL */
\r
354 configRUN_TIME_COUNTER_TYPE xReturn;
\r
355 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
357 xReturn = ulTaskGetIdleRunTimePercent();
\r
358 vPortResetPrivilege( xRunningPrivileged );
\r
362 /*-----------------------------------------------------------*/
\r
364 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
\r
365 configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimeCounter( void ) /* FREERTOS_SYSTEM_CALL */
\r
367 configRUN_TIME_COUNTER_TYPE xReturn;
\r
368 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
370 xReturn = ulTaskGetIdleRunTimeCounter();
\r
371 vPortResetPrivilege( xRunningPrivileged );
\r
375 /*-----------------------------------------------------------*/
\r
377 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
378 void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
\r
379 TaskHookFunction_t pxTagValue ) /* FREERTOS_SYSTEM_CALL */
\r
381 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
383 vTaskSetApplicationTaskTag( xTask, pxTagValue );
\r
384 vPortResetPrivilege( xRunningPrivileged );
\r
387 /*-----------------------------------------------------------*/
\r
389 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
390 TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
392 TaskHookFunction_t xReturn;
\r
393 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
395 xReturn = xTaskGetApplicationTaskTag( xTask );
\r
396 vPortResetPrivilege( xRunningPrivileged );
\r
400 /*-----------------------------------------------------------*/
\r
402 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
\r
403 void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
\r
405 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,
\r
417 BaseType_t xIndex ) /* FREERTOS_SYSTEM_CALL */
\r
420 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
422 pvReturn = pvTaskGetThreadLocalStoragePointer( xTaskToQuery, xIndex );
\r
423 vPortResetPrivilege( xRunningPrivileged );
\r
426 #endif /* if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) */
\r
427 /*-----------------------------------------------------------*/
\r
429 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
430 BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask,
\r
431 void * pvParameter ) /* FREERTOS_SYSTEM_CALL */
\r
433 BaseType_t xReturn;
\r
434 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
436 xReturn = xTaskCallApplicationTaskHook( xTask, pvParameter );
\r
437 vPortResetPrivilege( xRunningPrivileged );
\r
440 #endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
\r
441 /*-----------------------------------------------------------*/
\r
443 #if ( configUSE_TRACE_FACILITY == 1 )
\r
444 UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * pxTaskStatusArray,
\r
445 UBaseType_t uxArraySize,
\r
446 configRUN_TIME_COUNTER_TYPE * pulTotalRunTime ) /* FREERTOS_SYSTEM_CALL */
\r
448 UBaseType_t uxReturn;
\r
449 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
451 uxReturn = uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, pulTotalRunTime );
\r
452 vPortResetPrivilege( xRunningPrivileged );
\r
455 #endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
\r
456 /*-----------------------------------------------------------*/
\r
458 BaseType_t MPU_xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) /* FREERTOS_SYSTEM_CALL */
\r
460 BaseType_t xReturn;
\r
461 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
463 xReturn = xTaskCatchUpTicks( xTicksToCatchUp );
\r
464 vPortResetPrivilege( xRunningPrivileged );
\r
467 /*-----------------------------------------------------------*/
\r
469 #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
\r
470 UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
472 UBaseType_t uxReturn;
\r
473 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
475 uxReturn = uxTaskGetStackHighWaterMark( xTask );
\r
476 vPortResetPrivilege( xRunningPrivileged );
\r
480 /*-----------------------------------------------------------*/
\r
482 #if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 )
\r
483 configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
485 configSTACK_DEPTH_TYPE uxReturn;
\r
486 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
488 uxReturn = uxTaskGetStackHighWaterMark2( xTask );
\r
489 vPortResetPrivilege( xRunningPrivileged );
\r
493 /*-----------------------------------------------------------*/
\r
495 #if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ))
\r
496 TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
498 TaskHandle_t xReturn;
\r
499 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
501 xReturn = xTaskGetCurrentTaskHandle();
\r
502 vPortResetPrivilege( xRunningPrivileged );
\r
506 /*-----------------------------------------------------------*/
\r
508 #if ( INCLUDE_xTaskGetSchedulerState == 1 )
\r
509 BaseType_t MPU_xTaskGetSchedulerState( void ) /* FREERTOS_SYSTEM_CALL */
\r
511 BaseType_t xReturn;
\r
512 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
514 xReturn = xTaskGetSchedulerState();
\r
515 vPortResetPrivilege( xRunningPrivileged );
\r
519 /*-----------------------------------------------------------*/
\r
521 void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) /* FREERTOS_SYSTEM_CALL */
\r
523 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
525 vTaskSetTimeOutState( pxTimeOut );
\r
526 vPortResetPrivilege( xRunningPrivileged );
\r
528 /*-----------------------------------------------------------*/
\r
530 BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
\r
531 TickType_t * const pxTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
533 BaseType_t xReturn;
\r
534 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
536 xReturn = xTaskCheckForTimeOut( pxTimeOut, pxTicksToWait );
\r
537 vPortResetPrivilege( xRunningPrivileged );
\r
540 /*-----------------------------------------------------------*/
\r
542 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
543 BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
\r
544 UBaseType_t uxIndexToNotify,
\r
546 eNotifyAction eAction,
\r
547 uint32_t * pulPreviousNotificationValue ) /* FREERTOS_SYSTEM_CALL */
\r
549 BaseType_t xReturn;
\r
550 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
552 xReturn = xTaskGenericNotify( xTaskToNotify, uxIndexToNotify, ulValue, eAction, pulPreviousNotificationValue );
\r
553 vPortResetPrivilege( xRunningPrivileged );
\r
556 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
557 /*-----------------------------------------------------------*/
\r
559 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
560 BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
\r
561 uint32_t ulBitsToClearOnEntry,
\r
562 uint32_t ulBitsToClearOnExit,
\r
563 uint32_t * pulNotificationValue,
\r
564 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
566 BaseType_t xReturn;
\r
567 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
569 xReturn = xTaskGenericNotifyWait( uxIndexToWaitOn, ulBitsToClearOnEntry, ulBitsToClearOnExit, pulNotificationValue, xTicksToWait );
\r
570 vPortResetPrivilege( xRunningPrivileged );
\r
573 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
574 /*-----------------------------------------------------------*/
\r
576 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
577 uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
\r
578 BaseType_t xClearCountOnExit,
\r
579 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
582 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
584 ulReturn = ulTaskGenericNotifyTake( uxIndexToWaitOn, xClearCountOnExit, xTicksToWait );
\r
585 vPortResetPrivilege( xRunningPrivileged );
\r
588 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
589 /*-----------------------------------------------------------*/
\r
591 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
592 BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
\r
593 UBaseType_t uxIndexToClear ) /* FREERTOS_SYSTEM_CALL */
\r
595 BaseType_t xReturn;
\r
596 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
598 xReturn = xTaskGenericNotifyStateClear( xTask, uxIndexToClear );
\r
599 vPortResetPrivilege( xRunningPrivileged );
\r
602 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
603 /*-----------------------------------------------------------*/
\r
605 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
606 uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
\r
607 UBaseType_t uxIndexToClear,
\r
608 uint32_t ulBitsToClear ) /* FREERTOS_SYSTEM_CALL */
\r
611 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
613 ulReturn = ulTaskGenericNotifyValueClear( xTask, uxIndexToClear, ulBitsToClear );
\r
614 vPortResetPrivilege( xRunningPrivileged );
\r
617 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
618 /*-----------------------------------------------------------*/
\r
620 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
621 QueueHandle_t MPU_xQueueGenericCreate( UBaseType_t uxQueueLength,
\r
622 UBaseType_t uxItemSize,
\r
623 uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
625 QueueHandle_t xReturn;
\r
626 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
628 xReturn = xQueueGenericCreate( uxQueueLength, uxItemSize, ucQueueType );
\r
629 vPortResetPrivilege( xRunningPrivileged );
\r
632 #endif /* if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) */
\r
633 /*-----------------------------------------------------------*/
\r
635 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
636 QueueHandle_t MPU_xQueueGenericCreateStatic( const UBaseType_t uxQueueLength,
\r
637 const UBaseType_t uxItemSize,
\r
638 uint8_t * pucQueueStorage,
\r
639 StaticQueue_t * pxStaticQueue,
\r
640 const uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
642 QueueHandle_t xReturn;
\r
643 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
645 xReturn = xQueueGenericCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxStaticQueue, ucQueueType );
\r
646 vPortResetPrivilege( xRunningPrivileged );
\r
649 #endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */
\r
650 /*-----------------------------------------------------------*/
\r
652 BaseType_t MPU_xQueueGenericReset( QueueHandle_t pxQueue,
\r
653 BaseType_t xNewQueue ) /* FREERTOS_SYSTEM_CALL */
\r
655 BaseType_t xReturn;
\r
656 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
658 xReturn = xQueueGenericReset( pxQueue, xNewQueue );
\r
659 vPortResetPrivilege( xRunningPrivileged );
\r
662 /*-----------------------------------------------------------*/
\r
664 BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
\r
665 const void * const pvItemToQueue,
\r
666 TickType_t xTicksToWait,
\r
667 BaseType_t xCopyPosition ) /* FREERTOS_SYSTEM_CALL */
\r
669 BaseType_t xReturn;
\r
670 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
672 xReturn = xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, xCopyPosition );
\r
673 vPortResetPrivilege( xRunningPrivileged );
\r
676 /*-----------------------------------------------------------*/
\r
678 UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t pxQueue ) /* FREERTOS_SYSTEM_CALL */
\r
680 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
681 UBaseType_t uxReturn;
\r
683 uxReturn = uxQueueMessagesWaiting( pxQueue );
\r
684 vPortResetPrivilege( xRunningPrivileged );
\r
687 /*-----------------------------------------------------------*/
\r
689 UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
691 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
692 UBaseType_t uxReturn;
\r
694 uxReturn = uxQueueSpacesAvailable( xQueue );
\r
695 vPortResetPrivilege( xRunningPrivileged );
\r
698 /*-----------------------------------------------------------*/
\r
700 BaseType_t MPU_xQueueReceive( QueueHandle_t pxQueue,
\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 = xQueueReceive( pxQueue, pvBuffer, xTicksToWait );
\r
708 vPortResetPrivilege( xRunningPrivileged );
\r
711 /*-----------------------------------------------------------*/
\r
713 BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
\r
714 void * const pvBuffer,
\r
715 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
717 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
718 BaseType_t xReturn;
\r
720 xReturn = xQueuePeek( xQueue, pvBuffer, xTicksToWait );
\r
721 vPortResetPrivilege( xRunningPrivileged );
\r
724 /*-----------------------------------------------------------*/
\r
726 BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
\r
727 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
729 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
730 BaseType_t xReturn;
\r
732 xReturn = xQueueSemaphoreTake( xQueue, xTicksToWait );
\r
733 vPortResetPrivilege( xRunningPrivileged );
\r
736 /*-----------------------------------------------------------*/
\r
738 #if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) )
\r
739 TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) /* FREERTOS_SYSTEM_CALL */
\r
741 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
744 xReturn = xQueueGetMutexHolder( xSemaphore );
\r
745 vPortResetPrivilege( xRunningPrivileged );
\r
749 /*-----------------------------------------------------------*/
\r
751 #if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
752 QueueHandle_t MPU_xQueueCreateMutex( const uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
754 QueueHandle_t xReturn;
\r
755 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
757 xReturn = xQueueCreateMutex( ucQueueType );
\r
758 vPortResetPrivilege( xRunningPrivileged );
\r
762 /*-----------------------------------------------------------*/
\r
764 #if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
765 QueueHandle_t MPU_xQueueCreateMutexStatic( const uint8_t ucQueueType,
\r
766 StaticQueue_t * pxStaticQueue ) /* FREERTOS_SYSTEM_CALL */
\r
768 QueueHandle_t xReturn;
\r
769 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
771 xReturn = xQueueCreateMutexStatic( ucQueueType, pxStaticQueue );
\r
772 vPortResetPrivilege( xRunningPrivileged );
\r
775 #endif /* if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) */
\r
776 /*-----------------------------------------------------------*/
\r
778 #if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
779 QueueHandle_t MPU_xQueueCreateCountingSemaphore( UBaseType_t uxCountValue,
\r
780 UBaseType_t uxInitialCount ) /* FREERTOS_SYSTEM_CALL */
\r
782 QueueHandle_t xReturn;
\r
783 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
785 xReturn = xQueueCreateCountingSemaphore( uxCountValue, uxInitialCount );
\r
786 vPortResetPrivilege( xRunningPrivileged );
\r
789 #endif /* if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */
\r
790 /*-----------------------------------------------------------*/
\r
792 #if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
794 QueueHandle_t MPU_xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount,
\r
795 const UBaseType_t uxInitialCount,
\r
796 StaticQueue_t * pxStaticQueue ) /* FREERTOS_SYSTEM_CALL */
\r
798 QueueHandle_t xReturn;
\r
799 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
801 xReturn = xQueueCreateCountingSemaphoreStatic( uxMaxCount, uxInitialCount, pxStaticQueue );
\r
802 vPortResetPrivilege( xRunningPrivileged );
\r
805 #endif /* if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) */
\r
806 /*-----------------------------------------------------------*/
\r
808 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
\r
809 BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
\r
810 TickType_t xBlockTime ) /* FREERTOS_SYSTEM_CALL */
\r
812 BaseType_t xReturn;
\r
813 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
815 xReturn = xQueueTakeMutexRecursive( xMutex, xBlockTime );
\r
816 vPortResetPrivilege( xRunningPrivileged );
\r
819 #endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */
\r
820 /*-----------------------------------------------------------*/
\r
822 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
\r
823 BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t xMutex ) /* FREERTOS_SYSTEM_CALL */
\r
825 BaseType_t xReturn;
\r
826 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
828 xReturn = xQueueGiveMutexRecursive( xMutex );
\r
829 vPortResetPrivilege( xRunningPrivileged );
\r
833 /*-----------------------------------------------------------*/
\r
835 #if ( ( configUSE_QUEUE_SETS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
836 QueueSetHandle_t MPU_xQueueCreateSet( UBaseType_t uxEventQueueLength ) /* FREERTOS_SYSTEM_CALL */
\r
838 QueueSetHandle_t xReturn;
\r
839 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
841 xReturn = xQueueCreateSet( uxEventQueueLength );
\r
842 vPortResetPrivilege( xRunningPrivileged );
\r
846 /*-----------------------------------------------------------*/
\r
848 #if ( configUSE_QUEUE_SETS == 1 )
\r
849 QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
\r
850 TickType_t xBlockTimeTicks ) /* FREERTOS_SYSTEM_CALL */
\r
852 QueueSetMemberHandle_t xReturn;
\r
853 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
855 xReturn = xQueueSelectFromSet( xQueueSet, xBlockTimeTicks );
\r
856 vPortResetPrivilege( xRunningPrivileged );
\r
859 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
860 /*-----------------------------------------------------------*/
\r
862 #if ( configUSE_QUEUE_SETS == 1 )
\r
863 BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
\r
864 QueueSetHandle_t xQueueSet ) /* FREERTOS_SYSTEM_CALL */
\r
866 BaseType_t xReturn;
\r
867 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
869 xReturn = xQueueAddToSet( xQueueOrSemaphore, xQueueSet );
\r
870 vPortResetPrivilege( xRunningPrivileged );
\r
873 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
874 /*-----------------------------------------------------------*/
\r
876 #if ( configUSE_QUEUE_SETS == 1 )
\r
877 BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore,
\r
878 QueueSetHandle_t xQueueSet ) /* FREERTOS_SYSTEM_CALL */
\r
880 BaseType_t xReturn;
\r
881 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
883 xReturn = xQueueRemoveFromSet( xQueueOrSemaphore, xQueueSet );
\r
884 vPortResetPrivilege( xRunningPrivileged );
\r
887 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
888 /*-----------------------------------------------------------*/
\r
890 #if configQUEUE_REGISTRY_SIZE > 0
\r
891 void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
\r
892 const char * pcName ) /* FREERTOS_SYSTEM_CALL */
\r
894 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
896 vQueueAddToRegistry( xQueue, pcName );
\r
898 vPortResetPrivilege( xRunningPrivileged );
\r
901 /*-----------------------------------------------------------*/
\r
903 #if configQUEUE_REGISTRY_SIZE > 0
\r
904 void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
906 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
908 vQueueUnregisterQueue( xQueue );
\r
910 vPortResetPrivilege( xRunningPrivileged );
\r
913 /*-----------------------------------------------------------*/
\r
915 #if configQUEUE_REGISTRY_SIZE > 0
\r
916 const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
918 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
919 const char * pcReturn;
\r
921 pcReturn = pcQueueGetName( xQueue );
\r
923 vPortResetPrivilege( xRunningPrivileged );
\r
926 #endif /* if configQUEUE_REGISTRY_SIZE > 0 */
\r
927 /*-----------------------------------------------------------*/
\r
929 void MPU_vQueueDelete( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
931 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
933 vQueueDelete( xQueue );
\r
935 vPortResetPrivilege( xRunningPrivileged );
\r
937 /*-----------------------------------------------------------*/
\r
939 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
940 void MPU_vPortInitialiseBlocks( void ) /* FREERTOS_SYSTEM_CALL */
\r
942 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
944 vPortInitialiseBlocks();
\r
946 vPortResetPrivilege( xRunningPrivileged );
\r
948 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
949 /*-----------------------------------------------------------*/
\r
951 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
952 size_t MPU_xPortGetFreeHeapSize( void ) /* FREERTOS_SYSTEM_CALL */
\r
955 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
957 xReturn = xPortGetFreeHeapSize();
\r
959 vPortResetPrivilege( xRunningPrivileged );
\r
963 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
964 /*-----------------------------------------------------------*/
\r
966 #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
967 TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName,
\r
968 const TickType_t xTimerPeriodInTicks,
\r
969 const UBaseType_t uxAutoReload,
\r
970 void * const pvTimerID,
\r
971 TimerCallbackFunction_t pxCallbackFunction ) /* FREERTOS_SYSTEM_CALL */
\r
973 TimerHandle_t xReturn;
\r
974 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
976 xReturn = xTimerCreate( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction );
\r
977 vPortResetPrivilege( xRunningPrivileged );
\r
981 #endif /* if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
982 /*-----------------------------------------------------------*/
\r
984 #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
985 TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName,
\r
986 const TickType_t xTimerPeriodInTicks,
\r
987 const UBaseType_t uxAutoReload,
\r
988 void * const pvTimerID,
\r
989 TimerCallbackFunction_t pxCallbackFunction,
\r
990 StaticTimer_t * pxTimerBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
992 TimerHandle_t xReturn;
\r
993 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
995 xReturn = xTimerCreateStatic( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction, pxTimerBuffer );
\r
996 vPortResetPrivilege( xRunningPrivileged );
\r
1000 #endif /* if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
1001 /*-----------------------------------------------------------*/
\r
1003 #if ( configUSE_TIMERS == 1 )
\r
1004 void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1007 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1009 pvReturn = pvTimerGetTimerID( xTimer );
\r
1010 vPortResetPrivilege( xRunningPrivileged );
\r
1014 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1015 /*-----------------------------------------------------------*/
\r
1017 #if ( configUSE_TIMERS == 1 )
\r
1018 void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
\r
1019 void * pvNewID ) /* FREERTOS_SYSTEM_CALL */
\r
1021 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1023 vTimerSetTimerID( xTimer, pvNewID );
\r
1024 vPortResetPrivilege( xRunningPrivileged );
\r
1027 /*-----------------------------------------------------------*/
\r
1029 #if ( configUSE_TIMERS == 1 )
\r
1030 BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1032 BaseType_t xReturn;
\r
1033 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1035 xReturn = xTimerIsTimerActive( xTimer );
\r
1036 vPortResetPrivilege( xRunningPrivileged );
\r
1040 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1041 /*-----------------------------------------------------------*/
\r
1043 #if ( configUSE_TIMERS == 1 )
\r
1044 TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
1046 TaskHandle_t xReturn;
\r
1047 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1049 xReturn = xTimerGetTimerDaemonTaskHandle();
\r
1050 vPortResetPrivilege( xRunningPrivileged );
\r
1054 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1055 /*-----------------------------------------------------------*/
\r
1057 #if ( ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
1058 BaseType_t MPU_xTimerPendFunctionCall( PendedFunction_t xFunctionToPend,
\r
1059 void * pvParameter1,
\r
1060 uint32_t ulParameter2,
\r
1061 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1063 BaseType_t xReturn;
\r
1064 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1066 xReturn = xTimerPendFunctionCall( xFunctionToPend, pvParameter1, ulParameter2, xTicksToWait );
\r
1067 vPortResetPrivilege( xRunningPrivileged );
\r
1071 #endif /* if ( ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
1072 /*-----------------------------------------------------------*/
\r
1074 #if ( configUSE_TIMERS == 1 )
\r
1075 void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
\r
1076 const UBaseType_t uxAutoReload ) /* FREERTOS_SYSTEM_CALL */
\r
1078 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1080 vTimerSetReloadMode( xTimer, uxAutoReload );
\r
1081 vPortResetPrivilege( xRunningPrivileged );
\r
1084 /*-----------------------------------------------------------*/
\r
1086 #if ( configUSE_TIMERS == 1 )
\r
1087 UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer )
\r
1089 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1090 UBaseType_t uxReturn;
\r
1092 uxReturn = uxTimerGetReloadMode( xTimer );
\r
1093 vPortResetPrivilege( xRunningPrivileged );
\r
1097 /*-----------------------------------------------------------*/
\r
1099 #if ( configUSE_TIMERS == 1 )
\r
1100 const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1102 const char * pcReturn;
\r
1103 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1105 pcReturn = pcTimerGetName( xTimer );
\r
1106 vPortResetPrivilege( xRunningPrivileged );
\r
1110 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1111 /*-----------------------------------------------------------*/
\r
1113 #if ( configUSE_TIMERS == 1 )
\r
1114 TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1116 TickType_t xReturn;
\r
1117 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1119 xReturn = xTimerGetPeriod( xTimer );
\r
1120 vPortResetPrivilege( xRunningPrivileged );
\r
1124 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1125 /*-----------------------------------------------------------*/
\r
1127 #if ( configUSE_TIMERS == 1 )
\r
1128 TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1130 TickType_t xReturn;
\r
1131 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1133 xReturn = xTimerGetExpiryTime( xTimer );
\r
1134 vPortResetPrivilege( xRunningPrivileged );
\r
1138 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1139 /*-----------------------------------------------------------*/
\r
1141 #if ( configUSE_TIMERS == 1 )
\r
1142 BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
\r
1143 const BaseType_t xCommandID,
\r
1144 const TickType_t xOptionalValue,
\r
1145 BaseType_t * const pxHigherPriorityTaskWoken,
\r
1146 const TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1148 BaseType_t xReturn;
\r
1149 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1151 xReturn = xTimerGenericCommand( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
\r
1152 vPortResetPrivilege( xRunningPrivileged );
\r
1156 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1157 /*-----------------------------------------------------------*/
\r
1159 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
1160 EventGroupHandle_t MPU_xEventGroupCreate( void ) /* FREERTOS_SYSTEM_CALL */
\r
1162 EventGroupHandle_t xReturn;
\r
1163 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1165 xReturn = xEventGroupCreate();
\r
1166 vPortResetPrivilege( xRunningPrivileged );
\r
1170 #endif /* if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) */
\r
1171 /*-----------------------------------------------------------*/
\r
1173 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
1174 EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t * pxEventGroupBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1176 EventGroupHandle_t xReturn;
\r
1177 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1179 xReturn = xEventGroupCreateStatic( pxEventGroupBuffer );
\r
1180 vPortResetPrivilege( xRunningPrivileged );
\r
1184 #endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */
\r
1185 /*-----------------------------------------------------------*/
\r
1187 EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
\r
1188 const EventBits_t uxBitsToWaitFor,
\r
1189 const BaseType_t xClearOnExit,
\r
1190 const BaseType_t xWaitForAllBits,
\r
1191 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1193 EventBits_t xReturn;
\r
1194 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1196 xReturn = xEventGroupWaitBits( xEventGroup, uxBitsToWaitFor, xClearOnExit, xWaitForAllBits, xTicksToWait );
\r
1197 vPortResetPrivilege( xRunningPrivileged );
\r
1201 /*-----------------------------------------------------------*/
\r
1203 EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
\r
1204 const EventBits_t uxBitsToClear ) /* FREERTOS_SYSTEM_CALL */
\r
1206 EventBits_t xReturn;
\r
1207 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1209 xReturn = xEventGroupClearBits( xEventGroup, uxBitsToClear );
\r
1210 vPortResetPrivilege( xRunningPrivileged );
\r
1214 /*-----------------------------------------------------------*/
\r
1216 EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
\r
1217 const EventBits_t uxBitsToSet ) /* FREERTOS_SYSTEM_CALL */
\r
1219 EventBits_t xReturn;
\r
1220 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1222 xReturn = xEventGroupSetBits( xEventGroup, uxBitsToSet );
\r
1223 vPortResetPrivilege( xRunningPrivileged );
\r
1227 /*-----------------------------------------------------------*/
\r
1229 EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
\r
1230 const EventBits_t uxBitsToSet,
\r
1231 const EventBits_t uxBitsToWaitFor,
\r
1232 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1234 EventBits_t xReturn;
\r
1235 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1237 xReturn = xEventGroupSync( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTicksToWait );
\r
1238 vPortResetPrivilege( xRunningPrivileged );
\r
1242 /*-----------------------------------------------------------*/
\r
1244 void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) /* FREERTOS_SYSTEM_CALL */
\r
1246 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1248 vEventGroupDelete( xEventGroup );
\r
1249 vPortResetPrivilege( xRunningPrivileged );
\r
1251 /*-----------------------------------------------------------*/
\r
1253 size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
\r
1254 const void * pvTxData,
\r
1255 size_t xDataLengthBytes,
\r
1256 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1259 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1261 xReturn = xStreamBufferSend( xStreamBuffer, pvTxData, xDataLengthBytes, xTicksToWait );
\r
1262 vPortResetPrivilege( xRunningPrivileged );
\r
1266 /*-----------------------------------------------------------*/
\r
1268 size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1271 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1273 xReturn = xStreamBufferNextMessageLengthBytes( xStreamBuffer );
\r
1274 vPortResetPrivilege( xRunningPrivileged );
\r
1278 /*-----------------------------------------------------------*/
\r
1280 size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
\r
1282 size_t xBufferLengthBytes,
\r
1283 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1286 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1288 xReturn = xStreamBufferReceive( xStreamBuffer, pvRxData, xBufferLengthBytes, xTicksToWait );
\r
1289 vPortResetPrivilege( xRunningPrivileged );
\r
1293 /*-----------------------------------------------------------*/
\r
1295 void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1297 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1299 vStreamBufferDelete( xStreamBuffer );
\r
1300 vPortResetPrivilege( xRunningPrivileged );
\r
1302 /*-----------------------------------------------------------*/
\r
1304 BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1306 BaseType_t xReturn;
\r
1307 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1309 xReturn = xStreamBufferIsFull( xStreamBuffer );
\r
1310 vPortResetPrivilege( xRunningPrivileged );
\r
1314 /*-----------------------------------------------------------*/
\r
1316 BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1318 BaseType_t xReturn;
\r
1319 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1321 xReturn = xStreamBufferIsEmpty( xStreamBuffer );
\r
1322 vPortResetPrivilege( xRunningPrivileged );
\r
1326 /*-----------------------------------------------------------*/
\r
1328 BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1330 BaseType_t xReturn;
\r
1331 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1333 xReturn = xStreamBufferReset( xStreamBuffer );
\r
1334 vPortResetPrivilege( xRunningPrivileged );
\r
1338 /*-----------------------------------------------------------*/
\r
1340 size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1343 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1345 xReturn = xStreamBufferSpacesAvailable( xStreamBuffer );
\r
1346 vPortResetPrivilege( xRunningPrivileged );
\r
1350 /*-----------------------------------------------------------*/
\r
1352 size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1355 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1357 xReturn = xStreamBufferBytesAvailable( xStreamBuffer );
\r
1358 vPortResetPrivilege( xRunningPrivileged );
\r
1362 /*-----------------------------------------------------------*/
\r
1364 BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
\r
1365 size_t xTriggerLevel ) /* FREERTOS_SYSTEM_CALL */
\r
1367 BaseType_t xReturn;
\r
1368 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1370 xReturn = xStreamBufferSetTriggerLevel( xStreamBuffer, xTriggerLevel );
\r
1371 vPortResetPrivilege( xRunningPrivileged );
\r
1375 /*-----------------------------------------------------------*/
\r
1377 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
1378 StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes,
\r
1379 size_t xTriggerLevelBytes,
\r
1380 BaseType_t xIsMessageBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1382 StreamBufferHandle_t xReturn;
\r
1383 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1385 xReturn = xStreamBufferGenericCreate( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer );
\r
1386 vPortResetPrivilege( xRunningPrivileged );
\r
1390 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
1391 /*-----------------------------------------------------------*/
\r
1393 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
1394 StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes,
\r
1395 size_t xTriggerLevelBytes,
\r
1396 BaseType_t xIsMessageBuffer,
\r
1397 uint8_t * const pucStreamBufferStorageArea,
\r
1398 StaticStreamBuffer_t * const pxStaticStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1400 StreamBufferHandle_t xReturn;
\r
1401 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1403 xReturn = xStreamBufferGenericCreateStatic( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer, pucStreamBufferStorageArea, pxStaticStreamBuffer );
\r
1404 vPortResetPrivilege( xRunningPrivileged );
\r
1408 #endif /* configSUPPORT_STATIC_ALLOCATION */
\r
1409 /*-----------------------------------------------------------*/
\r
1412 /* Functions that the application writer wants to execute in privileged mode
\r
1413 * can be defined in application_defined_privileged_functions.h. The functions
\r
1414 * must take the same format as those above whereby the privilege state on exit
\r
1415 * equals the privilege state on entry. For example:
\r
1417 * void MPU_FunctionName( [parameters ] )
\r
1419 * BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1421 * FunctionName( [parameters ] );
\r
1423 * vPortResetPrivilege( xRunningPrivileged );
\r
1427 #if configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS == 1
\r
1428 #include "application_defined_privileged_functions.h"
\r