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
49 /*-----------------------------------------------------------*/
\r
51 #if ( portUSING_MPU_WRAPPERS == 1 )
\r
53 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
54 BaseType_t MPU_xTaskCreate( TaskFunction_t pvTaskCode,
\r
55 const char * const pcName,
\r
56 uint16_t usStackDepth,
\r
57 void * pvParameters,
\r
58 UBaseType_t uxPriority,
\r
59 TaskHandle_t * pxCreatedTask ) /* FREERTOS_SYSTEM_CALL */
\r
61 BaseType_t xReturn, xRunningPrivileged;
\r
63 xPortRaisePrivilege( xRunningPrivileged );
\r
64 xReturn = xTaskCreate( pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask );
\r
65 vPortResetPrivilege( xRunningPrivileged );
\r
69 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
70 /*-----------------------------------------------------------*/
\r
72 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
73 TaskHandle_t MPU_xTaskCreateStatic( TaskFunction_t pxTaskCode,
\r
74 const char * const pcName,
\r
75 const uint32_t ulStackDepth,
\r
76 void * const pvParameters,
\r
77 UBaseType_t uxPriority,
\r
78 StackType_t * const puxStackBuffer,
\r
79 StaticTask_t * const pxTaskBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
81 TaskHandle_t xReturn;
\r
82 BaseType_t xRunningPrivileged;
\r
84 xPortRaisePrivilege( xRunningPrivileged );
\r
85 xReturn = xTaskCreateStatic( pxTaskCode, pcName, ulStackDepth, pvParameters, uxPriority, puxStackBuffer, pxTaskBuffer );
\r
86 vPortResetPrivilege( xRunningPrivileged );
\r
90 #endif /* configSUPPORT_STATIC_ALLOCATION */
\r
91 /*-----------------------------------------------------------*/
\r
93 #if ( INCLUDE_vTaskDelete == 1 )
\r
94 void MPU_vTaskDelete( TaskHandle_t pxTaskToDelete ) /* FREERTOS_SYSTEM_CALL */
\r
96 BaseType_t xRunningPrivileged;
\r
98 xPortRaisePrivilege( xRunningPrivileged );
\r
99 vTaskDelete( pxTaskToDelete );
\r
100 vPortResetPrivilege( xRunningPrivileged );
\r
103 /*-----------------------------------------------------------*/
\r
105 #if ( INCLUDE_xTaskDelayUntil == 1 )
\r
106 BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
\r
107 TickType_t xTimeIncrement ) /* FREERTOS_SYSTEM_CALL */
\r
109 BaseType_t xRunningPrivileged, xReturn;
\r
111 xPortRaisePrivilege( xRunningPrivileged );
\r
112 xReturn = xTaskDelayUntil( pxPreviousWakeTime, xTimeIncrement );
\r
113 vPortResetPrivilege( xRunningPrivileged );
\r
117 #endif /* if ( INCLUDE_xTaskDelayUntil == 1 ) */
\r
118 /*-----------------------------------------------------------*/
\r
120 #if ( INCLUDE_xTaskAbortDelay == 1 )
\r
121 BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
123 BaseType_t xReturn, xRunningPrivileged;
\r
125 xPortRaisePrivilege( xRunningPrivileged );
\r
126 xReturn = xTaskAbortDelay( xTask );
\r
127 vPortResetPrivilege( xRunningPrivileged );
\r
131 #endif /* if ( INCLUDE_xTaskAbortDelay == 1 ) */
\r
132 /*-----------------------------------------------------------*/
\r
134 #if ( INCLUDE_vTaskDelay == 1 )
\r
135 void MPU_vTaskDelay( TickType_t xTicksToDelay ) /* FREERTOS_SYSTEM_CALL */
\r
137 BaseType_t xRunningPrivileged;
\r
139 xPortRaisePrivilege( xRunningPrivileged );
\r
140 vTaskDelay( xTicksToDelay );
\r
141 vPortResetPrivilege( xRunningPrivileged );
\r
144 /*-----------------------------------------------------------*/
\r
146 #if ( INCLUDE_uxTaskPriorityGet == 1 )
\r
147 UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t pxTask ) /* FREERTOS_SYSTEM_CALL */
\r
149 UBaseType_t uxReturn;
\r
150 BaseType_t xRunningPrivileged;
\r
152 xPortRaisePrivilege( xRunningPrivileged );
\r
153 uxReturn = uxTaskPriorityGet( pxTask );
\r
154 vPortResetPrivilege( xRunningPrivileged );
\r
158 #endif /* if ( INCLUDE_uxTaskPriorityGet == 1 ) */
\r
159 /*-----------------------------------------------------------*/
\r
161 #if ( INCLUDE_vTaskPrioritySet == 1 )
\r
162 void MPU_vTaskPrioritySet( TaskHandle_t pxTask,
\r
163 UBaseType_t uxNewPriority ) /* FREERTOS_SYSTEM_CALL */
\r
165 BaseType_t xRunningPrivileged;
\r
167 xPortRaisePrivilege( xRunningPrivileged );
\r
168 vTaskPrioritySet( pxTask, uxNewPriority );
\r
169 vPortResetPrivilege( xRunningPrivileged );
\r
171 #endif /* if ( INCLUDE_vTaskPrioritySet == 1 ) */
\r
172 /*-----------------------------------------------------------*/
\r
174 #if ( INCLUDE_eTaskGetState == 1 )
\r
175 eTaskState MPU_eTaskGetState( TaskHandle_t pxTask ) /* FREERTOS_SYSTEM_CALL */
\r
177 eTaskState eReturn;
\r
178 BaseType_t xRunningPrivileged;
\r
180 xPortRaisePrivilege( xRunningPrivileged );
\r
181 eReturn = eTaskGetState( pxTask );
\r
182 vPortResetPrivilege( xRunningPrivileged );
\r
186 #endif /* if ( INCLUDE_eTaskGetState == 1 ) */
\r
187 /*-----------------------------------------------------------*/
\r
189 #if ( configUSE_TRACE_FACILITY == 1 )
\r
190 void MPU_vTaskGetInfo( TaskHandle_t xTask,
\r
191 TaskStatus_t * pxTaskStatus,
\r
192 BaseType_t xGetFreeStackSpace,
\r
193 eTaskState eState ) /* FREERTOS_SYSTEM_CALL */
\r
195 BaseType_t xRunningPrivileged;
\r
197 xPortRaisePrivilege( xRunningPrivileged );
\r
198 vTaskGetInfo( xTask, pxTaskStatus, xGetFreeStackSpace, eState );
\r
199 vPortResetPrivilege( xRunningPrivileged );
\r
201 #endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
\r
202 /*-----------------------------------------------------------*/
\r
204 #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )
\r
205 TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
207 TaskHandle_t xReturn;
\r
208 BaseType_t xRunningPrivileged;
\r
210 xPortRaisePrivilege( xRunningPrivileged );
\r
211 xReturn = xTaskGetIdleTaskHandle();
\r
212 vPortResetPrivilege( xRunningPrivileged );
\r
216 #endif /* if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) */
\r
217 /*-----------------------------------------------------------*/
\r
219 #if ( INCLUDE_vTaskSuspend == 1 )
\r
220 void MPU_vTaskSuspend( TaskHandle_t pxTaskToSuspend ) /* FREERTOS_SYSTEM_CALL */
\r
222 BaseType_t xRunningPrivileged;
\r
224 xPortRaisePrivilege( xRunningPrivileged );
\r
225 vTaskSuspend( pxTaskToSuspend );
\r
226 vPortResetPrivilege( xRunningPrivileged );
\r
229 /*-----------------------------------------------------------*/
\r
231 #if ( INCLUDE_vTaskSuspend == 1 )
\r
232 void MPU_vTaskResume( TaskHandle_t pxTaskToResume ) /* FREERTOS_SYSTEM_CALL */
\r
234 BaseType_t xRunningPrivileged;
\r
236 xPortRaisePrivilege( xRunningPrivileged );
\r
237 vTaskResume( pxTaskToResume );
\r
238 vPortResetPrivilege( xRunningPrivileged );
\r
241 /*-----------------------------------------------------------*/
\r
243 void MPU_vTaskSuspendAll( void ) /* FREERTOS_SYSTEM_CALL */
\r
245 BaseType_t xRunningPrivileged;
\r
247 xPortRaisePrivilege( xRunningPrivileged );
\r
249 vPortResetPrivilege( xRunningPrivileged );
\r
251 /*-----------------------------------------------------------*/
\r
253 BaseType_t MPU_xTaskResumeAll( void ) /* FREERTOS_SYSTEM_CALL */
\r
255 BaseType_t xReturn, xRunningPrivileged;
\r
257 xPortRaisePrivilege( xRunningPrivileged );
\r
258 xReturn = xTaskResumeAll();
\r
259 vPortResetPrivilege( xRunningPrivileged );
\r
263 /*-----------------------------------------------------------*/
\r
265 TickType_t MPU_xTaskGetTickCount( void ) /* FREERTOS_SYSTEM_CALL */
\r
267 TickType_t xReturn;
\r
268 BaseType_t xRunningPrivileged;
\r
270 xPortRaisePrivilege( xRunningPrivileged );
\r
271 xReturn = xTaskGetTickCount();
\r
272 vPortResetPrivilege( xRunningPrivileged );
\r
276 /*-----------------------------------------------------------*/
\r
278 UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) /* FREERTOS_SYSTEM_CALL */
\r
280 UBaseType_t uxReturn;
\r
281 BaseType_t xRunningPrivileged;
\r
283 xPortRaisePrivilege( xRunningPrivileged );
\r
284 uxReturn = uxTaskGetNumberOfTasks();
\r
285 vPortResetPrivilege( xRunningPrivileged );
\r
289 /*-----------------------------------------------------------*/
\r
291 char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ) /* FREERTOS_SYSTEM_CALL */
\r
294 BaseType_t xRunningPrivileged;
\r
296 xPortRaisePrivilege( xRunningPrivileged );
\r
297 pcReturn = pcTaskGetName( xTaskToQuery );
\r
298 vPortResetPrivilege( xRunningPrivileged );
\r
302 /*-----------------------------------------------------------*/
\r
304 #if ( INCLUDE_xTaskGetHandle == 1 )
\r
305 TaskHandle_t MPU_xTaskGetHandle( const char * pcNameToQuery ) /* FREERTOS_SYSTEM_CALL */
\r
307 TaskHandle_t xReturn;
\r
308 BaseType_t xRunningPrivileged;
\r
310 xPortRaisePrivilege( xRunningPrivileged );
\r
311 xReturn = xTaskGetHandle( pcNameToQuery );
\r
312 vPortResetPrivilege( xRunningPrivileged );
\r
316 #endif /* if ( INCLUDE_xTaskGetHandle == 1 ) */
\r
317 /*-----------------------------------------------------------*/
\r
319 #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
320 void MPU_vTaskList( char * pcWriteBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
322 BaseType_t xRunningPrivileged;
\r
324 xPortRaisePrivilege( xRunningPrivileged );
\r
325 vTaskList( pcWriteBuffer );
\r
326 vPortResetPrivilege( xRunningPrivileged );
\r
329 /*-----------------------------------------------------------*/
\r
331 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
332 void MPU_vTaskGetRunTimeStats( char * pcWriteBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
334 BaseType_t xRunningPrivileged;
\r
336 xPortRaisePrivilege( xRunningPrivileged );
\r
337 vTaskGetRunTimeStats( pcWriteBuffer );
\r
338 vPortResetPrivilege( xRunningPrivileged );
\r
341 /*-----------------------------------------------------------*/
\r
343 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
\r
344 configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimePercent( void ) /* FREERTOS_SYSTEM_CALL */
\r
346 configRUN_TIME_COUNTER_TYPE xReturn;
\r
347 BaseType_t xRunningPrivileged;
\r
349 xPortRaisePrivilege( xRunningPrivileged );
\r
350 xReturn = ulTaskGetIdleRunTimePercent();
\r
351 vPortResetPrivilege( xRunningPrivileged );
\r
355 #endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) ) */
\r
356 /*-----------------------------------------------------------*/
\r
358 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
\r
359 configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimeCounter( void ) /* FREERTOS_SYSTEM_CALL */
\r
361 configRUN_TIME_COUNTER_TYPE xReturn;
\r
362 BaseType_t xRunningPrivileged;
\r
364 xPortRaisePrivilege( xRunningPrivileged );
\r
365 xReturn = ulTaskGetIdleRunTimeCounter();
\r
366 vPortResetPrivilege( xRunningPrivileged );
\r
370 #endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) ) */
\r
371 /*-----------------------------------------------------------*/
\r
373 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
374 void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
\r
375 TaskHookFunction_t pxTagValue ) /* FREERTOS_SYSTEM_CALL */
\r
377 BaseType_t xRunningPrivileged;
\r
379 xPortRaisePrivilege( xRunningPrivileged );
\r
380 vTaskSetApplicationTaskTag( xTask, pxTagValue );
\r
381 vPortResetPrivilege( xRunningPrivileged );
\r
383 #endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
\r
384 /*-----------------------------------------------------------*/
\r
386 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
387 TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
389 TaskHookFunction_t xReturn;
\r
390 BaseType_t xRunningPrivileged;
\r
392 xPortRaisePrivilege( xRunningPrivileged );
\r
393 xReturn = xTaskGetApplicationTaskTag( xTask );
\r
394 vPortResetPrivilege( xRunningPrivileged );
\r
398 #endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
\r
399 /*-----------------------------------------------------------*/
\r
401 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
\r
402 void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
\r
404 void * pvValue ) /* FREERTOS_SYSTEM_CALL */
\r
406 BaseType_t xRunningPrivileged;
\r
408 xPortRaisePrivilege( xRunningPrivileged );
\r
409 vTaskSetThreadLocalStoragePointer( xTaskToSet, xIndex, pvValue );
\r
410 vPortResetPrivilege( xRunningPrivileged );
\r
412 #endif /* if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) */
\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;
\r
422 xPortRaisePrivilege( xRunningPrivileged );
\r
423 pvReturn = pvTaskGetThreadLocalStoragePointer( xTaskToQuery, xIndex );
\r
424 vPortResetPrivilege( xRunningPrivileged );
\r
428 #endif /* if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) */
\r
429 /*-----------------------------------------------------------*/
\r
431 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
432 BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask,
\r
433 void * pvParameter ) /* FREERTOS_SYSTEM_CALL */
\r
435 BaseType_t xReturn, xRunningPrivileged;
\r
437 xPortRaisePrivilege( xRunningPrivileged );
\r
438 xReturn = xTaskCallApplicationTaskHook( xTask, pvParameter );
\r
439 vPortResetPrivilege( xRunningPrivileged );
\r
443 #endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
\r
444 /*-----------------------------------------------------------*/
\r
446 #if ( configUSE_TRACE_FACILITY == 1 )
\r
447 UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * pxTaskStatusArray,
\r
448 UBaseType_t uxArraySize,
\r
449 configRUN_TIME_COUNTER_TYPE * pulTotalRunTime ) /* FREERTOS_SYSTEM_CALL */
\r
451 UBaseType_t uxReturn;
\r
452 BaseType_t xRunningPrivileged;
\r
454 xPortRaisePrivilege( xRunningPrivileged );
\r
455 uxReturn = uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, pulTotalRunTime );
\r
456 vPortResetPrivilege( xRunningPrivileged );
\r
460 #endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
\r
461 /*-----------------------------------------------------------*/
\r
463 BaseType_t MPU_xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) /* FREERTOS_SYSTEM_CALL */
\r
465 BaseType_t xReturn, xRunningPrivileged;
\r
467 xPortRaisePrivilege( xRunningPrivileged );
\r
468 xReturn = xTaskCatchUpTicks( xTicksToCatchUp );
\r
469 vPortResetPrivilege( xRunningPrivileged );
\r
473 /*-----------------------------------------------------------*/
\r
475 #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
\r
476 UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
478 UBaseType_t uxReturn;
\r
479 BaseType_t xRunningPrivileged;
\r
481 xPortRaisePrivilege( xRunningPrivileged );
\r
482 uxReturn = uxTaskGetStackHighWaterMark( xTask );
\r
483 vPortResetPrivilege( xRunningPrivileged );
\r
487 #endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) */
\r
488 /*-----------------------------------------------------------*/
\r
490 #if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 )
\r
491 configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
493 configSTACK_DEPTH_TYPE uxReturn;
\r
494 BaseType_t xRunningPrivileged;
\r
496 xPortRaisePrivilege( xRunningPrivileged );
\r
497 uxReturn = uxTaskGetStackHighWaterMark2( xTask );
\r
498 vPortResetPrivilege( xRunningPrivileged );
\r
502 #endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) */
\r
503 /*-----------------------------------------------------------*/
\r
505 #if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) )
\r
506 TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
508 TaskHandle_t xReturn;
\r
509 BaseType_t xRunningPrivileged;
\r
511 xPortRaisePrivilege( xRunningPrivileged );
\r
512 xReturn = xTaskGetCurrentTaskHandle();
\r
513 vPortResetPrivilege( xRunningPrivileged );
\r
517 #endif /* if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) */
\r
518 /*-----------------------------------------------------------*/
\r
520 #if ( INCLUDE_xTaskGetSchedulerState == 1 )
\r
521 BaseType_t MPU_xTaskGetSchedulerState( void ) /* FREERTOS_SYSTEM_CALL */
\r
523 BaseType_t xReturn, xRunningPrivileged;
\r
525 xPortRaisePrivilege( xRunningPrivileged );
\r
526 xReturn = xTaskGetSchedulerState();
\r
527 vPortResetPrivilege( xRunningPrivileged );
\r
531 #endif /* if ( INCLUDE_xTaskGetSchedulerState == 1 ) */
\r
532 /*-----------------------------------------------------------*/
\r
534 void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) /* FREERTOS_SYSTEM_CALL */
\r
536 BaseType_t xRunningPrivileged;
\r
538 xPortRaisePrivilege( xRunningPrivileged );
\r
539 vTaskSetTimeOutState( pxTimeOut );
\r
540 vPortResetPrivilege( xRunningPrivileged );
\r
542 /*-----------------------------------------------------------*/
\r
544 BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
\r
545 TickType_t * const pxTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
547 BaseType_t xReturn, xRunningPrivileged;
\r
549 xPortRaisePrivilege( xRunningPrivileged );
\r
550 xReturn = xTaskCheckForTimeOut( pxTimeOut, pxTicksToWait );
\r
551 vPortResetPrivilege( xRunningPrivileged );
\r
555 /*-----------------------------------------------------------*/
\r
557 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
558 BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
\r
559 UBaseType_t uxIndexToNotify,
\r
561 eNotifyAction eAction,
\r
562 uint32_t * pulPreviousNotificationValue ) /* FREERTOS_SYSTEM_CALL */
\r
564 BaseType_t xReturn, xRunningPrivileged;
\r
566 xPortRaisePrivilege( xRunningPrivileged );
\r
567 xReturn = xTaskGenericNotify( xTaskToNotify, uxIndexToNotify, ulValue, eAction, pulPreviousNotificationValue );
\r
568 vPortResetPrivilege( xRunningPrivileged );
\r
572 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
573 /*-----------------------------------------------------------*/
\r
575 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
576 BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
\r
577 uint32_t ulBitsToClearOnEntry,
\r
578 uint32_t ulBitsToClearOnExit,
\r
579 uint32_t * pulNotificationValue,
\r
580 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
582 BaseType_t xReturn, xRunningPrivileged;
\r
584 xPortRaisePrivilege( xRunningPrivileged );
\r
585 xReturn = xTaskGenericNotifyWait( uxIndexToWaitOn, ulBitsToClearOnEntry, ulBitsToClearOnExit, pulNotificationValue, xTicksToWait );
\r
586 vPortResetPrivilege( xRunningPrivileged );
\r
590 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
591 /*-----------------------------------------------------------*/
\r
593 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
594 uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
\r
595 BaseType_t xClearCountOnExit,
\r
596 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
599 BaseType_t xRunningPrivileged;
\r
601 xPortRaisePrivilege( xRunningPrivileged );
\r
602 ulReturn = ulTaskGenericNotifyTake( uxIndexToWaitOn, xClearCountOnExit, xTicksToWait );
\r
603 vPortResetPrivilege( xRunningPrivileged );
\r
607 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
608 /*-----------------------------------------------------------*/
\r
610 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
611 BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
\r
612 UBaseType_t uxIndexToClear ) /* FREERTOS_SYSTEM_CALL */
\r
614 BaseType_t xReturn, xRunningPrivileged;
\r
616 xPortRaisePrivilege( xRunningPrivileged );
\r
617 xReturn = xTaskGenericNotifyStateClear( xTask, uxIndexToClear );
\r
618 vPortResetPrivilege( xRunningPrivileged );
\r
622 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
623 /*-----------------------------------------------------------*/
\r
625 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
626 uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
\r
627 UBaseType_t uxIndexToClear,
\r
628 uint32_t ulBitsToClear ) /* FREERTOS_SYSTEM_CALL */
\r
631 BaseType_t xRunningPrivileged;
\r
633 xPortRaisePrivilege( xRunningPrivileged );
\r
634 ulReturn = ulTaskGenericNotifyValueClear( xTask, uxIndexToClear, ulBitsToClear );
\r
635 vPortResetPrivilege( xRunningPrivileged );
\r
639 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
640 /*-----------------------------------------------------------*/
\r
642 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
643 QueueHandle_t MPU_xQueueGenericCreate( UBaseType_t uxQueueLength,
\r
644 UBaseType_t uxItemSize,
\r
645 uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
647 QueueHandle_t xReturn;
\r
648 BaseType_t xRunningPrivileged;
\r
650 xPortRaisePrivilege( xRunningPrivileged );
\r
651 xReturn = xQueueGenericCreate( uxQueueLength, uxItemSize, ucQueueType );
\r
652 vPortResetPrivilege( xRunningPrivileged );
\r
656 #endif /* if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) */
\r
657 /*-----------------------------------------------------------*/
\r
659 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
660 QueueHandle_t MPU_xQueueGenericCreateStatic( const UBaseType_t uxQueueLength,
\r
661 const UBaseType_t uxItemSize,
\r
662 uint8_t * pucQueueStorage,
\r
663 StaticQueue_t * pxStaticQueue,
\r
664 const uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
666 QueueHandle_t xReturn;
\r
667 BaseType_t xRunningPrivileged;
\r
669 xPortRaisePrivilege( xRunningPrivileged );
\r
670 xReturn = xQueueGenericCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxStaticQueue, ucQueueType );
\r
671 vPortResetPrivilege( xRunningPrivileged );
\r
675 #endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */
\r
676 /*-----------------------------------------------------------*/
\r
678 BaseType_t MPU_xQueueGenericReset( QueueHandle_t pxQueue,
\r
679 BaseType_t xNewQueue ) /* FREERTOS_SYSTEM_CALL */
\r
681 BaseType_t xReturn, xRunningPrivileged;
\r
683 xPortRaisePrivilege( xRunningPrivileged );
\r
684 xReturn = xQueueGenericReset( pxQueue, xNewQueue );
\r
685 vPortResetPrivilege( xRunningPrivileged );
\r
689 /*-----------------------------------------------------------*/
\r
691 BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
\r
692 const void * const pvItemToQueue,
\r
693 TickType_t xTicksToWait,
\r
694 BaseType_t xCopyPosition ) /* FREERTOS_SYSTEM_CALL */
\r
696 BaseType_t xReturn, xRunningPrivileged;
\r
698 xPortRaisePrivilege( xRunningPrivileged );
\r
699 xReturn = xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, xCopyPosition );
\r
700 vPortResetPrivilege( xRunningPrivileged );
\r
704 /*-----------------------------------------------------------*/
\r
706 UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t pxQueue ) /* FREERTOS_SYSTEM_CALL */
\r
708 UBaseType_t uxReturn;
\r
709 BaseType_t xRunningPrivileged;
\r
711 xPortRaisePrivilege( xRunningPrivileged );
\r
712 uxReturn = uxQueueMessagesWaiting( pxQueue );
\r
713 vPortResetPrivilege( xRunningPrivileged );
\r
717 /*-----------------------------------------------------------*/
\r
719 UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
721 UBaseType_t uxReturn;
\r
722 BaseType_t xRunningPrivileged;
\r
724 xPortRaisePrivilege( xRunningPrivileged );
\r
725 uxReturn = uxQueueSpacesAvailable( xQueue );
\r
726 vPortResetPrivilege( xRunningPrivileged );
\r
730 /*-----------------------------------------------------------*/
\r
732 BaseType_t MPU_xQueueReceive( QueueHandle_t pxQueue,
\r
733 void * const pvBuffer,
\r
734 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
736 BaseType_t xReturn, xRunningPrivileged;
\r
738 xPortRaisePrivilege( xRunningPrivileged );
\r
739 xReturn = xQueueReceive( pxQueue, pvBuffer, xTicksToWait );
\r
740 vPortResetPrivilege( xRunningPrivileged );
\r
744 /*-----------------------------------------------------------*/
\r
746 BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
\r
747 void * const pvBuffer,
\r
748 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
750 BaseType_t xReturn, xRunningPrivileged;
\r
752 xPortRaisePrivilege( xRunningPrivileged );
\r
753 xReturn = xQueuePeek( xQueue, pvBuffer, xTicksToWait );
\r
754 vPortResetPrivilege( xRunningPrivileged );
\r
758 /*-----------------------------------------------------------*/
\r
760 BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
\r
761 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
763 BaseType_t xReturn, xRunningPrivileged;
\r
765 xPortRaisePrivilege( xRunningPrivileged );
\r
766 xReturn = xQueueSemaphoreTake( xQueue, xTicksToWait );
\r
767 vPortResetPrivilege( xRunningPrivileged );
\r
771 /*-----------------------------------------------------------*/
\r
773 #if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) )
\r
774 TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) /* FREERTOS_SYSTEM_CALL */
\r
777 BaseType_t xRunningPrivileged;
\r
779 xPortRaisePrivilege( xRunningPrivileged );
\r
780 xReturn = xQueueGetMutexHolder( xSemaphore );
\r
781 vPortResetPrivilege( xRunningPrivileged );
\r
785 #endif /* if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) ) */
\r
786 /*-----------------------------------------------------------*/
\r
788 #if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
789 QueueHandle_t MPU_xQueueCreateMutex( const uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
791 QueueHandle_t xReturn;
\r
792 BaseType_t xRunningPrivileged;
\r
794 xPortRaisePrivilege( xRunningPrivileged );
\r
795 xReturn = xQueueCreateMutex( ucQueueType );
\r
796 vPortResetPrivilege( xRunningPrivileged );
\r
800 #endif /* if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */
\r
801 /*-----------------------------------------------------------*/
\r
803 #if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
804 QueueHandle_t MPU_xQueueCreateMutexStatic( const uint8_t ucQueueType,
\r
805 StaticQueue_t * pxStaticQueue ) /* FREERTOS_SYSTEM_CALL */
\r
807 QueueHandle_t xReturn;
\r
808 BaseType_t xRunningPrivileged;
\r
810 xPortRaisePrivilege( xRunningPrivileged );
\r
811 xReturn = xQueueCreateMutexStatic( ucQueueType, pxStaticQueue );
\r
812 vPortResetPrivilege( xRunningPrivileged );
\r
816 #endif /* if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) */
\r
817 /*-----------------------------------------------------------*/
\r
819 #if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
820 QueueHandle_t MPU_xQueueCreateCountingSemaphore( UBaseType_t uxCountValue,
\r
821 UBaseType_t uxInitialCount ) /* FREERTOS_SYSTEM_CALL */
\r
823 QueueHandle_t xReturn;
\r
824 BaseType_t xRunningPrivileged;
\r
826 xPortRaisePrivilege( xRunningPrivileged );
\r
827 xReturn = xQueueCreateCountingSemaphore( uxCountValue, uxInitialCount );
\r
828 vPortResetPrivilege( xRunningPrivileged );
\r
832 #endif /* if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */
\r
833 /*-----------------------------------------------------------*/
\r
835 #if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
837 QueueHandle_t MPU_xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount,
\r
838 const UBaseType_t uxInitialCount,
\r
839 StaticQueue_t * pxStaticQueue ) /* FREERTOS_SYSTEM_CALL */
\r
841 QueueHandle_t xReturn;
\r
842 BaseType_t xRunningPrivileged;
\r
844 xPortRaisePrivilege( xRunningPrivileged );
\r
845 xReturn = xQueueCreateCountingSemaphoreStatic( uxMaxCount, uxInitialCount, pxStaticQueue );
\r
846 vPortResetPrivilege( xRunningPrivileged );
\r
850 #endif /* if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) */
\r
851 /*-----------------------------------------------------------*/
\r
853 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
\r
854 BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
\r
855 TickType_t xBlockTime ) /* FREERTOS_SYSTEM_CALL */
\r
857 BaseType_t xReturn, xRunningPrivileged;
\r
859 xPortRaisePrivilege( xRunningPrivileged );
\r
860 xReturn = xQueueTakeMutexRecursive( xMutex, xBlockTime );
\r
861 vPortResetPrivilege( xRunningPrivileged );
\r
865 #endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */
\r
866 /*-----------------------------------------------------------*/
\r
868 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
\r
869 BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t xMutex ) /* FREERTOS_SYSTEM_CALL */
\r
871 BaseType_t xReturn, xRunningPrivileged;
\r
873 xPortRaisePrivilege( xRunningPrivileged );
\r
874 xReturn = xQueueGiveMutexRecursive( xMutex );
\r
875 vPortResetPrivilege( xRunningPrivileged );
\r
879 #endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */
\r
880 /*-----------------------------------------------------------*/
\r
882 #if ( ( configUSE_QUEUE_SETS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
883 QueueSetHandle_t MPU_xQueueCreateSet( UBaseType_t uxEventQueueLength ) /* FREERTOS_SYSTEM_CALL */
\r
885 QueueSetHandle_t xReturn;
\r
886 BaseType_t xRunningPrivileged;
\r
888 xPortRaisePrivilege( xRunningPrivileged );
\r
889 xReturn = xQueueCreateSet( uxEventQueueLength );
\r
890 vPortResetPrivilege( xRunningPrivileged );
\r
894 #endif /* if ( ( configUSE_QUEUE_SETS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */
\r
895 /*-----------------------------------------------------------*/
\r
897 #if ( configUSE_QUEUE_SETS == 1 )
\r
898 QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
\r
899 TickType_t xBlockTimeTicks ) /* FREERTOS_SYSTEM_CALL */
\r
901 QueueSetMemberHandle_t xReturn;
\r
902 BaseType_t xRunningPrivileged;
\r
904 xPortRaisePrivilege( xRunningPrivileged );
\r
905 xReturn = xQueueSelectFromSet( xQueueSet, xBlockTimeTicks );
\r
906 vPortResetPrivilege( xRunningPrivileged );
\r
910 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
911 /*-----------------------------------------------------------*/
\r
913 #if ( configUSE_QUEUE_SETS == 1 )
\r
914 BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
\r
915 QueueSetHandle_t xQueueSet ) /* FREERTOS_SYSTEM_CALL */
\r
917 BaseType_t xReturn, xRunningPrivileged;
\r
919 xPortRaisePrivilege( xRunningPrivileged );
\r
920 xReturn = xQueueAddToSet( xQueueOrSemaphore, xQueueSet );
\r
921 vPortResetPrivilege( xRunningPrivileged );
\r
925 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
926 /*-----------------------------------------------------------*/
\r
928 #if ( configUSE_QUEUE_SETS == 1 )
\r
929 BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore,
\r
930 QueueSetHandle_t xQueueSet ) /* FREERTOS_SYSTEM_CALL */
\r
932 BaseType_t xReturn, xRunningPrivileged;
\r
934 xPortRaisePrivilege( xRunningPrivileged );
\r
935 xReturn = xQueueRemoveFromSet( xQueueOrSemaphore, xQueueSet );
\r
936 vPortResetPrivilege( xRunningPrivileged );
\r
940 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
941 /*-----------------------------------------------------------*/
\r
943 #if configQUEUE_REGISTRY_SIZE > 0
\r
944 void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
\r
945 const char * pcName ) /* FREERTOS_SYSTEM_CALL */
\r
947 BaseType_t xRunningPrivileged;
\r
949 xPortRaisePrivilege( xRunningPrivileged );
\r
950 vQueueAddToRegistry( xQueue, pcName );
\r
951 vPortResetPrivilege( xRunningPrivileged );
\r
953 #endif /* if configQUEUE_REGISTRY_SIZE > 0 */
\r
954 /*-----------------------------------------------------------*/
\r
956 #if configQUEUE_REGISTRY_SIZE > 0
\r
957 void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
959 BaseType_t xRunningPrivileged;
\r
961 xPortRaisePrivilege( xRunningPrivileged );
\r
962 vQueueUnregisterQueue( xQueue );
\r
963 vPortResetPrivilege( xRunningPrivileged );
\r
965 #endif /* if configQUEUE_REGISTRY_SIZE > 0 */
\r
966 /*-----------------------------------------------------------*/
\r
968 #if configQUEUE_REGISTRY_SIZE > 0
\r
969 const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
971 const char * pcReturn;
\r
972 BaseType_t xRunningPrivileged;
\r
974 xPortRaisePrivilege( xRunningPrivileged );
\r
975 pcReturn = pcQueueGetName( xQueue );
\r
976 vPortResetPrivilege( xRunningPrivileged );
\r
980 #endif /* if configQUEUE_REGISTRY_SIZE > 0 */
\r
981 /*-----------------------------------------------------------*/
\r
983 void MPU_vQueueDelete( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
985 BaseType_t xRunningPrivileged;
\r
987 xPortRaisePrivilege( xRunningPrivileged );
\r
988 vQueueDelete( xQueue );
\r
989 vPortResetPrivilege( xRunningPrivileged );
\r
991 /*-----------------------------------------------------------*/
\r
993 #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
994 TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName,
\r
995 const TickType_t xTimerPeriodInTicks,
\r
996 const UBaseType_t uxAutoReload,
\r
997 void * const pvTimerID,
\r
998 TimerCallbackFunction_t pxCallbackFunction ) /* FREERTOS_SYSTEM_CALL */
\r
1000 TimerHandle_t xReturn;
\r
1001 BaseType_t xRunningPrivileged;
\r
1003 xPortRaisePrivilege( xRunningPrivileged );
\r
1004 xReturn = xTimerCreate( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction );
\r
1005 vPortResetPrivilege( xRunningPrivileged );
\r
1009 #endif /* if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
1010 /*-----------------------------------------------------------*/
\r
1012 #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
1013 TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName,
\r
1014 const TickType_t xTimerPeriodInTicks,
\r
1015 const UBaseType_t uxAutoReload,
\r
1016 void * const pvTimerID,
\r
1017 TimerCallbackFunction_t pxCallbackFunction,
\r
1018 StaticTimer_t * pxTimerBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1020 TimerHandle_t xReturn;
\r
1021 BaseType_t xRunningPrivileged;
\r
1023 xPortRaisePrivilege( xRunningPrivileged );
\r
1024 xReturn = xTimerCreateStatic( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction, pxTimerBuffer );
\r
1025 vPortResetPrivilege( xRunningPrivileged );
\r
1029 #endif /* if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
1030 /*-----------------------------------------------------------*/
\r
1032 #if ( configUSE_TIMERS == 1 )
\r
1033 void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1036 BaseType_t xRunningPrivileged;
\r
1038 xPortRaisePrivilege( xRunningPrivileged );
\r
1039 pvReturn = pvTimerGetTimerID( xTimer );
\r
1040 vPortResetPrivilege( xRunningPrivileged );
\r
1044 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1045 /*-----------------------------------------------------------*/
\r
1047 #if ( configUSE_TIMERS == 1 )
\r
1048 void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
\r
1049 void * pvNewID ) /* FREERTOS_SYSTEM_CALL */
\r
1051 BaseType_t xRunningPrivileged;
\r
1053 xPortRaisePrivilege( xRunningPrivileged );
\r
1054 vTimerSetTimerID( xTimer, pvNewID );
\r
1055 vPortResetPrivilege( xRunningPrivileged );
\r
1057 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1058 /*-----------------------------------------------------------*/
\r
1060 #if ( configUSE_TIMERS == 1 )
\r
1061 BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1063 BaseType_t xReturn, xRunningPrivileged;
\r
1065 xPortRaisePrivilege( xRunningPrivileged );
\r
1066 xReturn = xTimerIsTimerActive( xTimer );
\r
1067 vPortResetPrivilege( xRunningPrivileged );
\r
1071 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1072 /*-----------------------------------------------------------*/
\r
1074 #if ( configUSE_TIMERS == 1 )
\r
1075 TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
1077 TaskHandle_t xReturn;
\r
1078 BaseType_t xRunningPrivileged;
\r
1080 xPortRaisePrivilege( xRunningPrivileged );
\r
1081 xReturn = xTimerGetTimerDaemonTaskHandle();
\r
1082 vPortResetPrivilege( xRunningPrivileged );
\r
1086 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1087 /*-----------------------------------------------------------*/
\r
1089 #if ( ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
1090 BaseType_t MPU_xTimerPendFunctionCall( PendedFunction_t xFunctionToPend,
\r
1091 void * pvParameter1,
\r
1092 uint32_t ulParameter2,
\r
1093 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1095 BaseType_t xReturn, xRunningPrivileged;
\r
1097 xPortRaisePrivilege( xRunningPrivileged );
\r
1098 xReturn = xTimerPendFunctionCall( xFunctionToPend, pvParameter1, ulParameter2, xTicksToWait );
\r
1099 vPortResetPrivilege( xRunningPrivileged );
\r
1103 #endif /* if ( ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
1104 /*-----------------------------------------------------------*/
\r
1106 #if ( configUSE_TIMERS == 1 )
\r
1107 void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
\r
1108 const UBaseType_t uxAutoReload ) /* FREERTOS_SYSTEM_CALL */
\r
1110 BaseType_t xRunningPrivileged;
\r
1112 xPortRaisePrivilege( xRunningPrivileged );
\r
1113 vTimerSetReloadMode( xTimer, uxAutoReload );
\r
1114 vPortResetPrivilege( xRunningPrivileged );
\r
1116 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1117 /*-----------------------------------------------------------*/
\r
1119 #if ( configUSE_TIMERS == 1 )
\r
1120 UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer )
\r
1122 UBaseType_t uxReturn;
\r
1123 BaseType_t xRunningPrivileged;
\r
1125 xPortRaisePrivilege( xRunningPrivileged );
\r
1126 uxReturn = uxTimerGetReloadMode( xTimer );
\r
1127 vPortResetPrivilege( xRunningPrivileged );
\r
1131 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1132 /*-----------------------------------------------------------*/
\r
1134 #if ( configUSE_TIMERS == 1 )
\r
1135 const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1137 const char * pcReturn;
\r
1138 BaseType_t xRunningPrivileged;
\r
1140 xPortRaisePrivilege( xRunningPrivileged );
\r
1141 pcReturn = pcTimerGetName( xTimer );
\r
1142 vPortResetPrivilege( xRunningPrivileged );
\r
1146 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1147 /*-----------------------------------------------------------*/
\r
1149 #if ( configUSE_TIMERS == 1 )
\r
1150 TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1152 TickType_t xReturn;
\r
1153 BaseType_t xRunningPrivileged;
\r
1155 xPortRaisePrivilege( xRunningPrivileged );
\r
1156 xReturn = xTimerGetPeriod( xTimer );
\r
1157 vPortResetPrivilege( xRunningPrivileged );
\r
1161 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1162 /*-----------------------------------------------------------*/
\r
1164 #if ( configUSE_TIMERS == 1 )
\r
1165 TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1167 TickType_t xReturn;
\r
1168 BaseType_t xRunningPrivileged;
\r
1170 xPortRaisePrivilege( xRunningPrivileged );
\r
1171 xReturn = xTimerGetExpiryTime( xTimer );
\r
1172 vPortResetPrivilege( xRunningPrivileged );
\r
1176 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1177 /*-----------------------------------------------------------*/
\r
1179 #if ( configUSE_TIMERS == 1 )
\r
1180 BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
\r
1181 const BaseType_t xCommandID,
\r
1182 const TickType_t xOptionalValue,
\r
1183 BaseType_t * const pxHigherPriorityTaskWoken,
\r
1184 const TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1186 BaseType_t xReturn;
\r
1187 BaseType_t xRunningPrivileged;
\r
1189 xPortRaisePrivilege( xRunningPrivileged );
\r
1190 xReturn = xTimerGenericCommand( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
\r
1191 vPortResetPrivilege( xRunningPrivileged );
\r
1195 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1196 /*-----------------------------------------------------------*/
\r
1198 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
1199 EventGroupHandle_t MPU_xEventGroupCreate( void ) /* FREERTOS_SYSTEM_CALL */
\r
1201 EventGroupHandle_t xReturn;
\r
1202 BaseType_t xRunningPrivileged;
\r
1204 xPortRaisePrivilege( xRunningPrivileged );
\r
1205 xReturn = xEventGroupCreate();
\r
1206 vPortResetPrivilege( xRunningPrivileged );
\r
1210 #endif /* if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) */
\r
1211 /*-----------------------------------------------------------*/
\r
1213 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
1214 EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t * pxEventGroupBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1216 EventGroupHandle_t xReturn;
\r
1217 BaseType_t xRunningPrivileged;
\r
1219 xPortRaisePrivilege( xRunningPrivileged );
\r
1220 xReturn = xEventGroupCreateStatic( pxEventGroupBuffer );
\r
1221 vPortResetPrivilege( xRunningPrivileged );
\r
1225 #endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */
\r
1226 /*-----------------------------------------------------------*/
\r
1228 EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
\r
1229 const EventBits_t uxBitsToWaitFor,
\r
1230 const BaseType_t xClearOnExit,
\r
1231 const BaseType_t xWaitForAllBits,
\r
1232 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1234 EventBits_t xReturn;
\r
1235 BaseType_t xRunningPrivileged;
\r
1237 xPortRaisePrivilege( xRunningPrivileged );
\r
1238 xReturn = xEventGroupWaitBits( xEventGroup, uxBitsToWaitFor, xClearOnExit, xWaitForAllBits, xTicksToWait );
\r
1239 vPortResetPrivilege( xRunningPrivileged );
\r
1243 /*-----------------------------------------------------------*/
\r
1245 EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
\r
1246 const EventBits_t uxBitsToClear ) /* FREERTOS_SYSTEM_CALL */
\r
1248 EventBits_t xReturn;
\r
1249 BaseType_t xRunningPrivileged;
\r
1251 xPortRaisePrivilege( xRunningPrivileged );
\r
1252 xReturn = xEventGroupClearBits( xEventGroup, uxBitsToClear );
\r
1253 vPortResetPrivilege( xRunningPrivileged );
\r
1257 /*-----------------------------------------------------------*/
\r
1259 EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
\r
1260 const EventBits_t uxBitsToSet ) /* FREERTOS_SYSTEM_CALL */
\r
1262 EventBits_t xReturn;
\r
1263 BaseType_t xRunningPrivileged;
\r
1265 xPortRaisePrivilege( xRunningPrivileged );
\r
1266 xReturn = xEventGroupSetBits( xEventGroup, uxBitsToSet );
\r
1267 vPortResetPrivilege( xRunningPrivileged );
\r
1271 /*-----------------------------------------------------------*/
\r
1273 EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
\r
1274 const EventBits_t uxBitsToSet,
\r
1275 const EventBits_t uxBitsToWaitFor,
\r
1276 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1278 EventBits_t xReturn;
\r
1279 BaseType_t xRunningPrivileged;
\r
1281 xPortRaisePrivilege( xRunningPrivileged );
\r
1282 xReturn = xEventGroupSync( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTicksToWait );
\r
1283 vPortResetPrivilege( xRunningPrivileged );
\r
1287 /*-----------------------------------------------------------*/
\r
1289 void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) /* FREERTOS_SYSTEM_CALL */
\r
1291 BaseType_t xRunningPrivileged;
\r
1293 xPortRaisePrivilege( xRunningPrivileged );
\r
1294 vEventGroupDelete( xEventGroup );
\r
1295 vPortResetPrivilege( xRunningPrivileged );
\r
1297 /*-----------------------------------------------------------*/
\r
1299 size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
\r
1300 const void * pvTxData,
\r
1301 size_t xDataLengthBytes,
\r
1302 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1305 BaseType_t xRunningPrivileged;
\r
1307 xPortRaisePrivilege( xRunningPrivileged );
\r
1308 xReturn = xStreamBufferSend( xStreamBuffer, pvTxData, xDataLengthBytes, xTicksToWait );
\r
1309 vPortResetPrivilege( xRunningPrivileged );
\r
1313 /*-----------------------------------------------------------*/
\r
1315 size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1318 BaseType_t xRunningPrivileged;
\r
1320 xPortRaisePrivilege( xRunningPrivileged );
\r
1321 xReturn = xStreamBufferNextMessageLengthBytes( xStreamBuffer );
\r
1322 vPortResetPrivilege( xRunningPrivileged );
\r
1326 /*-----------------------------------------------------------*/
\r
1328 size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
\r
1330 size_t xBufferLengthBytes,
\r
1331 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1334 BaseType_t xRunningPrivileged;
\r
1336 xPortRaisePrivilege( xRunningPrivileged );
\r
1337 xReturn = xStreamBufferReceive( xStreamBuffer, pvRxData, xBufferLengthBytes, xTicksToWait );
\r
1338 vPortResetPrivilege( xRunningPrivileged );
\r
1342 /*-----------------------------------------------------------*/
\r
1344 void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1346 BaseType_t xRunningPrivileged;
\r
1348 xPortRaisePrivilege( xRunningPrivileged );
\r
1349 vStreamBufferDelete( xStreamBuffer );
\r
1350 vPortResetPrivilege( xRunningPrivileged );
\r
1352 /*-----------------------------------------------------------*/
\r
1354 BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1356 BaseType_t xReturn, xRunningPrivileged;
\r
1358 xPortRaisePrivilege( xRunningPrivileged );
\r
1359 xReturn = xStreamBufferIsFull( xStreamBuffer );
\r
1360 vPortResetPrivilege( xRunningPrivileged );
\r
1364 /*-----------------------------------------------------------*/
\r
1366 BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1368 BaseType_t xReturn, xRunningPrivileged;
\r
1370 xPortRaisePrivilege( xRunningPrivileged );
\r
1371 xReturn = xStreamBufferIsEmpty( xStreamBuffer );
\r
1372 vPortResetPrivilege( xRunningPrivileged );
\r
1376 /*-----------------------------------------------------------*/
\r
1378 BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1380 BaseType_t xReturn, xRunningPrivileged;
\r
1382 xPortRaisePrivilege( xRunningPrivileged );
\r
1383 xReturn = xStreamBufferReset( xStreamBuffer );
\r
1384 vPortResetPrivilege( xRunningPrivileged );
\r
1388 /*-----------------------------------------------------------*/
\r
1390 size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1393 BaseType_t xRunningPrivileged;
\r
1395 xPortRaisePrivilege( xRunningPrivileged );
\r
1396 xReturn = xStreamBufferSpacesAvailable( xStreamBuffer );
\r
1397 vPortResetPrivilege( xRunningPrivileged );
\r
1401 /*-----------------------------------------------------------*/
\r
1403 size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1406 BaseType_t xRunningPrivileged;
\r
1408 xPortRaisePrivilege( xRunningPrivileged );
\r
1409 xReturn = xStreamBufferBytesAvailable( xStreamBuffer );
\r
1410 vPortResetPrivilege( xRunningPrivileged );
\r
1414 /*-----------------------------------------------------------*/
\r
1416 BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
\r
1417 size_t xTriggerLevel ) /* FREERTOS_SYSTEM_CALL */
\r
1419 BaseType_t xReturn, xRunningPrivileged;
\r
1421 xPortRaisePrivilege( xRunningPrivileged );
\r
1422 xReturn = xStreamBufferSetTriggerLevel( xStreamBuffer, xTriggerLevel );
\r
1423 vPortResetPrivilege( xRunningPrivileged );
\r
1427 /*-----------------------------------------------------------*/
\r
1429 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
1430 StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes,
\r
1431 size_t xTriggerLevelBytes,
\r
1432 BaseType_t xIsMessageBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1434 StreamBufferHandle_t xReturn;
\r
1435 BaseType_t xRunningPrivileged;
\r
1437 xPortRaisePrivilege( xRunningPrivileged );
\r
1438 xReturn = xStreamBufferGenericCreate( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer );
\r
1439 vPortResetPrivilege( xRunningPrivileged );
\r
1443 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
1444 /*-----------------------------------------------------------*/
\r
1446 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
1447 StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes,
\r
1448 size_t xTriggerLevelBytes,
\r
1449 BaseType_t xIsMessageBuffer,
\r
1450 uint8_t * const pucStreamBufferStorageArea,
\r
1451 StaticStreamBuffer_t * const pxStaticStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1453 StreamBufferHandle_t xReturn;
\r
1454 BaseType_t xRunningPrivileged;
\r
1456 xPortRaisePrivilege( xRunningPrivileged );
\r
1457 xReturn = xStreamBufferGenericCreateStatic( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer, pucStreamBufferStorageArea, pxStaticStreamBuffer );
\r
1458 vPortResetPrivilege( xRunningPrivileged );
\r
1462 #endif /* configSUPPORT_STATIC_ALLOCATION */
\r
1463 /*-----------------------------------------------------------*/
\r
1466 /* Functions that the application writer wants to execute in privileged mode
\r
1467 * can be defined in application_defined_privileged_functions.h. The functions
\r
1468 * must take the same format as those above whereby the privilege state on exit
\r
1469 * equals the privilege state on entry. For example:
\r
1471 * void MPU_FunctionName( [parameters ] ) FREERTOS_SYSTEM_CALL;
\r
1472 * void MPU_FunctionName( [parameters ] )
\r
1474 * BaseType_t xRunningPrivileged;
\r
1476 * xPortRaisePrivilege( xRunningPrivileged );
\r
1477 * FunctionName( [parameters ] );
\r
1478 * vPortResetPrivilege( xRunningPrivileged );
\r
1482 #if configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS == 1
\r
1483 #include "application_defined_privileged_functions.h"
\r
1485 /*-----------------------------------------------------------*/
\r
1487 #endif /* portUSING_MPU_WRAPPERS == 1 */
\r
1488 /*-----------------------------------------------------------*/
\r