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 ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
52 BaseType_t MPU_xTaskCreate( TaskFunction_t pvTaskCode,
\r
53 const char * const pcName,
\r
54 uint16_t usStackDepth,
\r
55 void * pvParameters,
\r
56 UBaseType_t uxPriority,
\r
57 TaskHandle_t * pxCreatedTask ) /* FREERTOS_SYSTEM_CALL */
\r
59 BaseType_t xReturn, xRunningPrivileged;
\r
61 xPortRaisePrivilege( xRunningPrivileged );
\r
62 xReturn = xTaskCreate( pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask );
\r
63 vPortResetPrivilege( xRunningPrivileged );
\r
67 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
68 /*-----------------------------------------------------------*/
\r
70 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
71 TaskHandle_t MPU_xTaskCreateStatic( TaskFunction_t pxTaskCode,
\r
72 const char * const pcName,
\r
73 const uint32_t ulStackDepth,
\r
74 void * const pvParameters,
\r
75 UBaseType_t uxPriority,
\r
76 StackType_t * const puxStackBuffer,
\r
77 StaticTask_t * const pxTaskBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
79 TaskHandle_t xReturn;
\r
80 BaseType_t xRunningPrivileged;
\r
82 xPortRaisePrivilege( xRunningPrivileged );
\r
83 xReturn = xTaskCreateStatic( pxTaskCode, pcName, ulStackDepth, pvParameters, uxPriority, puxStackBuffer, pxTaskBuffer );
\r
84 vPortResetPrivilege( xRunningPrivileged );
\r
88 #endif /* configSUPPORT_STATIC_ALLOCATION */
\r
89 /*-----------------------------------------------------------*/
\r
91 #if ( INCLUDE_vTaskDelete == 1 )
\r
92 void MPU_vTaskDelete( TaskHandle_t pxTaskToDelete ) /* FREERTOS_SYSTEM_CALL */
\r
94 BaseType_t xRunningPrivileged;
\r
96 xPortRaisePrivilege( xRunningPrivileged );
\r
97 vTaskDelete( pxTaskToDelete );
\r
98 vPortResetPrivilege( xRunningPrivileged );
\r
101 /*-----------------------------------------------------------*/
\r
103 #if ( INCLUDE_xTaskDelayUntil == 1 )
\r
104 BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
\r
105 TickType_t xTimeIncrement ) /* FREERTOS_SYSTEM_CALL */
\r
107 BaseType_t xRunningPrivileged, xReturn;
\r
109 xPortRaisePrivilege( xRunningPrivileged );
\r
110 xReturn = xTaskDelayUntil( pxPreviousWakeTime, xTimeIncrement );
\r
111 vPortResetPrivilege( xRunningPrivileged );
\r
115 #endif /* if ( INCLUDE_xTaskDelayUntil == 1 ) */
\r
116 /*-----------------------------------------------------------*/
\r
118 #if ( INCLUDE_xTaskAbortDelay == 1 )
\r
119 BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
121 BaseType_t xReturn, xRunningPrivileged;
\r
123 xPortRaisePrivilege( xRunningPrivileged );
\r
124 xReturn = xTaskAbortDelay( xTask );
\r
125 vPortResetPrivilege( xRunningPrivileged );
\r
129 #endif /* if ( INCLUDE_xTaskAbortDelay == 1 ) */
\r
130 /*-----------------------------------------------------------*/
\r
132 #if ( INCLUDE_vTaskDelay == 1 )
\r
133 void MPU_vTaskDelay( TickType_t xTicksToDelay ) /* FREERTOS_SYSTEM_CALL */
\r
135 BaseType_t xRunningPrivileged;
\r
137 xPortRaisePrivilege( xRunningPrivileged );
\r
138 vTaskDelay( xTicksToDelay );
\r
139 vPortResetPrivilege( xRunningPrivileged );
\r
142 /*-----------------------------------------------------------*/
\r
144 #if ( INCLUDE_uxTaskPriorityGet == 1 )
\r
145 UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t pxTask ) /* FREERTOS_SYSTEM_CALL */
\r
147 UBaseType_t uxReturn;
\r
148 BaseType_t xRunningPrivileged;
\r
150 xPortRaisePrivilege( xRunningPrivileged );
\r
151 uxReturn = uxTaskPriorityGet( pxTask );
\r
152 vPortResetPrivilege( xRunningPrivileged );
\r
156 #endif /* if ( INCLUDE_uxTaskPriorityGet == 1 ) */
\r
157 /*-----------------------------------------------------------*/
\r
159 #if ( INCLUDE_vTaskPrioritySet == 1 )
\r
160 void MPU_vTaskPrioritySet( TaskHandle_t pxTask,
\r
161 UBaseType_t uxNewPriority ) /* FREERTOS_SYSTEM_CALL */
\r
163 BaseType_t xRunningPrivileged;
\r
165 xPortRaisePrivilege( xRunningPrivileged );
\r
166 vTaskPrioritySet( pxTask, uxNewPriority );
\r
167 vPortResetPrivilege( xRunningPrivileged );
\r
169 #endif /* if ( INCLUDE_vTaskPrioritySet == 1 ) */
\r
170 /*-----------------------------------------------------------*/
\r
172 #if ( INCLUDE_eTaskGetState == 1 )
\r
173 eTaskState MPU_eTaskGetState( TaskHandle_t pxTask ) /* FREERTOS_SYSTEM_CALL */
\r
175 eTaskState eReturn;
\r
176 BaseType_t xRunningPrivileged;
\r
178 xPortRaisePrivilege( xRunningPrivileged );
\r
179 eReturn = eTaskGetState( pxTask );
\r
180 vPortResetPrivilege( xRunningPrivileged );
\r
184 #endif /* if ( INCLUDE_eTaskGetState == 1 ) */
\r
185 /*-----------------------------------------------------------*/
\r
187 #if ( configUSE_TRACE_FACILITY == 1 )
\r
188 void MPU_vTaskGetInfo( TaskHandle_t xTask,
\r
189 TaskStatus_t * pxTaskStatus,
\r
190 BaseType_t xGetFreeStackSpace,
\r
191 eTaskState eState ) /* FREERTOS_SYSTEM_CALL */
\r
193 BaseType_t xRunningPrivileged;
\r
195 xPortRaisePrivilege( xRunningPrivileged );
\r
196 vTaskGetInfo( xTask, pxTaskStatus, xGetFreeStackSpace, eState );
\r
197 vPortResetPrivilege( xRunningPrivileged );
\r
199 #endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
\r
200 /*-----------------------------------------------------------*/
\r
202 #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )
\r
203 TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
205 TaskHandle_t xReturn;
\r
206 BaseType_t xRunningPrivileged;
\r
208 xPortRaisePrivilege( xRunningPrivileged );
\r
209 xReturn = xTaskGetIdleTaskHandle();
\r
210 vPortResetPrivilege( xRunningPrivileged );
\r
214 #endif /* if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) */
\r
215 /*-----------------------------------------------------------*/
\r
217 #if ( INCLUDE_vTaskSuspend == 1 )
\r
218 void MPU_vTaskSuspend( TaskHandle_t pxTaskToSuspend ) /* FREERTOS_SYSTEM_CALL */
\r
220 BaseType_t xRunningPrivileged;
\r
222 xPortRaisePrivilege( xRunningPrivileged );
\r
223 vTaskSuspend( pxTaskToSuspend );
\r
224 vPortResetPrivilege( xRunningPrivileged );
\r
227 /*-----------------------------------------------------------*/
\r
229 #if ( INCLUDE_vTaskSuspend == 1 )
\r
230 void MPU_vTaskResume( TaskHandle_t pxTaskToResume ) /* FREERTOS_SYSTEM_CALL */
\r
232 BaseType_t xRunningPrivileged;
\r
234 xPortRaisePrivilege( xRunningPrivileged );
\r
235 vTaskResume( pxTaskToResume );
\r
236 vPortResetPrivilege( xRunningPrivileged );
\r
239 /*-----------------------------------------------------------*/
\r
241 void MPU_vTaskSuspendAll( void ) /* FREERTOS_SYSTEM_CALL */
\r
243 BaseType_t xRunningPrivileged;
\r
245 xPortRaisePrivilege( xRunningPrivileged );
\r
247 vPortResetPrivilege( xRunningPrivileged );
\r
249 /*-----------------------------------------------------------*/
\r
251 BaseType_t MPU_xTaskResumeAll( void ) /* FREERTOS_SYSTEM_CALL */
\r
253 BaseType_t xReturn, xRunningPrivileged;
\r
255 xPortRaisePrivilege( xRunningPrivileged );
\r
256 xReturn = xTaskResumeAll();
\r
257 vPortResetPrivilege( xRunningPrivileged );
\r
261 /*-----------------------------------------------------------*/
\r
263 TickType_t MPU_xTaskGetTickCount( void ) /* FREERTOS_SYSTEM_CALL */
\r
265 TickType_t xReturn;
\r
266 BaseType_t xRunningPrivileged;
\r
268 xPortRaisePrivilege( xRunningPrivileged );
\r
269 xReturn = xTaskGetTickCount();
\r
270 vPortResetPrivilege( xRunningPrivileged );
\r
274 /*-----------------------------------------------------------*/
\r
276 UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) /* FREERTOS_SYSTEM_CALL */
\r
278 UBaseType_t uxReturn;
\r
279 BaseType_t xRunningPrivileged;
\r
281 xPortRaisePrivilege( xRunningPrivileged );
\r
282 uxReturn = uxTaskGetNumberOfTasks();
\r
283 vPortResetPrivilege( xRunningPrivileged );
\r
287 /*-----------------------------------------------------------*/
\r
289 char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ) /* FREERTOS_SYSTEM_CALL */
\r
292 BaseType_t xRunningPrivileged;
\r
294 xPortRaisePrivilege( xRunningPrivileged );
\r
295 pcReturn = pcTaskGetName( xTaskToQuery );
\r
296 vPortResetPrivilege( xRunningPrivileged );
\r
300 /*-----------------------------------------------------------*/
\r
302 #if ( INCLUDE_xTaskGetHandle == 1 )
\r
303 TaskHandle_t MPU_xTaskGetHandle( const char * pcNameToQuery ) /* FREERTOS_SYSTEM_CALL */
\r
305 TaskHandle_t xReturn;
\r
306 BaseType_t xRunningPrivileged;
\r
308 xPortRaisePrivilege( xRunningPrivileged );
\r
309 xReturn = xTaskGetHandle( pcNameToQuery );
\r
310 vPortResetPrivilege( xRunningPrivileged );
\r
314 #endif /* if ( INCLUDE_xTaskGetHandle == 1 ) */
\r
315 /*-----------------------------------------------------------*/
\r
317 #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
318 void MPU_vTaskList( char * pcWriteBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
320 BaseType_t xRunningPrivileged;
\r
322 xPortRaisePrivilege( xRunningPrivileged );
\r
323 vTaskList( pcWriteBuffer );
\r
324 vPortResetPrivilege( xRunningPrivileged );
\r
327 /*-----------------------------------------------------------*/
\r
329 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
330 void MPU_vTaskGetRunTimeStats( char * pcWriteBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
332 BaseType_t xRunningPrivileged;
\r
334 xPortRaisePrivilege( xRunningPrivileged );
\r
335 vTaskGetRunTimeStats( pcWriteBuffer );
\r
336 vPortResetPrivilege( xRunningPrivileged );
\r
339 /*-----------------------------------------------------------*/
\r
341 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
\r
342 configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimePercent( void ) /* FREERTOS_SYSTEM_CALL */
\r
344 configRUN_TIME_COUNTER_TYPE xReturn;
\r
345 BaseType_t xRunningPrivileged;
\r
347 xPortRaisePrivilege( xRunningPrivileged );
\r
348 xReturn = ulTaskGetIdleRunTimePercent();
\r
349 vPortResetPrivilege( xRunningPrivileged );
\r
353 #endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) ) */
\r
354 /*-----------------------------------------------------------*/
\r
356 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
\r
357 configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimeCounter( void ) /* FREERTOS_SYSTEM_CALL */
\r
359 configRUN_TIME_COUNTER_TYPE xReturn;
\r
360 BaseType_t xRunningPrivileged;
\r
362 xPortRaisePrivilege( xRunningPrivileged );
\r
363 xReturn = ulTaskGetIdleRunTimeCounter();
\r
364 vPortResetPrivilege( xRunningPrivileged );
\r
368 #endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) ) */
\r
369 /*-----------------------------------------------------------*/
\r
371 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
372 void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
\r
373 TaskHookFunction_t pxTagValue ) /* FREERTOS_SYSTEM_CALL */
\r
375 BaseType_t xRunningPrivileged;
\r
377 xPortRaisePrivilege( xRunningPrivileged );
\r
378 vTaskSetApplicationTaskTag( xTask, pxTagValue );
\r
379 vPortResetPrivilege( xRunningPrivileged );
\r
381 #endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
\r
382 /*-----------------------------------------------------------*/
\r
384 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
385 TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
387 TaskHookFunction_t xReturn;
\r
388 BaseType_t xRunningPrivileged;
\r
390 xPortRaisePrivilege( xRunningPrivileged );
\r
391 xReturn = xTaskGetApplicationTaskTag( xTask );
\r
392 vPortResetPrivilege( xRunningPrivileged );
\r
396 #endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
\r
397 /*-----------------------------------------------------------*/
\r
399 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
\r
400 void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
\r
402 void * pvValue ) /* FREERTOS_SYSTEM_CALL */
\r
404 BaseType_t xRunningPrivileged;
\r
406 xPortRaisePrivilege( xRunningPrivileged );
\r
407 vTaskSetThreadLocalStoragePointer( xTaskToSet, xIndex, pvValue );
\r
408 vPortResetPrivilege( xRunningPrivileged );
\r
410 #endif /* if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) */
\r
411 /*-----------------------------------------------------------*/
\r
413 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
\r
414 void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,
\r
415 BaseType_t xIndex ) /* FREERTOS_SYSTEM_CALL */
\r
418 BaseType_t xRunningPrivileged;
\r
420 xPortRaisePrivilege( xRunningPrivileged );
\r
421 pvReturn = pvTaskGetThreadLocalStoragePointer( xTaskToQuery, xIndex );
\r
422 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, xRunningPrivileged;
\r
435 xPortRaisePrivilege( xRunningPrivileged );
\r
436 xReturn = xTaskCallApplicationTaskHook( xTask, pvParameter );
\r
437 vPortResetPrivilege( xRunningPrivileged );
\r
441 #endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
\r
442 /*-----------------------------------------------------------*/
\r
444 #if ( configUSE_TRACE_FACILITY == 1 )
\r
445 UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * pxTaskStatusArray,
\r
446 UBaseType_t uxArraySize,
\r
447 configRUN_TIME_COUNTER_TYPE * pulTotalRunTime ) /* FREERTOS_SYSTEM_CALL */
\r
449 UBaseType_t uxReturn;
\r
450 BaseType_t xRunningPrivileged;
\r
452 xPortRaisePrivilege( xRunningPrivileged );
\r
453 uxReturn = uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, pulTotalRunTime );
\r
454 vPortResetPrivilege( xRunningPrivileged );
\r
458 #endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
\r
459 /*-----------------------------------------------------------*/
\r
461 BaseType_t MPU_xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) /* FREERTOS_SYSTEM_CALL */
\r
463 BaseType_t xReturn, xRunningPrivileged;
\r
465 xPortRaisePrivilege( xRunningPrivileged );
\r
466 xReturn = xTaskCatchUpTicks( xTicksToCatchUp );
\r
467 vPortResetPrivilege( xRunningPrivileged );
\r
471 /*-----------------------------------------------------------*/
\r
473 #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
\r
474 UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
476 UBaseType_t uxReturn;
\r
477 BaseType_t xRunningPrivileged;
\r
479 xPortRaisePrivilege( xRunningPrivileged );
\r
480 uxReturn = uxTaskGetStackHighWaterMark( xTask );
\r
481 vPortResetPrivilege( xRunningPrivileged );
\r
485 #endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) */
\r
486 /*-----------------------------------------------------------*/
\r
488 #if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 )
\r
489 configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
\r
491 configSTACK_DEPTH_TYPE uxReturn;
\r
492 BaseType_t xRunningPrivileged;
\r
494 xPortRaisePrivilege( xRunningPrivileged );
\r
495 uxReturn = uxTaskGetStackHighWaterMark2( xTask );
\r
496 vPortResetPrivilege( xRunningPrivileged );
\r
500 #endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) */
\r
501 /*-----------------------------------------------------------*/
\r
503 #if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) )
\r
504 TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
506 TaskHandle_t xReturn;
\r
507 BaseType_t xRunningPrivileged;
\r
509 xPortRaisePrivilege( xRunningPrivileged );
\r
510 xReturn = xTaskGetCurrentTaskHandle();
\r
511 vPortResetPrivilege( xRunningPrivileged );
\r
515 #endif /* if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) */
\r
516 /*-----------------------------------------------------------*/
\r
518 #if ( INCLUDE_xTaskGetSchedulerState == 1 )
\r
519 BaseType_t MPU_xTaskGetSchedulerState( void ) /* FREERTOS_SYSTEM_CALL */
\r
521 BaseType_t xReturn, xRunningPrivileged;
\r
523 xPortRaisePrivilege( xRunningPrivileged );
\r
524 xReturn = xTaskGetSchedulerState();
\r
525 vPortResetPrivilege( xRunningPrivileged );
\r
529 #endif /* if ( INCLUDE_xTaskGetSchedulerState == 1 ) */
\r
530 /*-----------------------------------------------------------*/
\r
532 void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) /* FREERTOS_SYSTEM_CALL */
\r
534 BaseType_t xRunningPrivileged;
\r
536 xPortRaisePrivilege( xRunningPrivileged );
\r
537 vTaskSetTimeOutState( pxTimeOut );
\r
538 vPortResetPrivilege( xRunningPrivileged );
\r
540 /*-----------------------------------------------------------*/
\r
542 BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
\r
543 TickType_t * const pxTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
545 BaseType_t xReturn, xRunningPrivileged;
\r
547 xPortRaisePrivilege( xRunningPrivileged );
\r
548 xReturn = xTaskCheckForTimeOut( pxTimeOut, pxTicksToWait );
\r
549 vPortResetPrivilege( xRunningPrivileged );
\r
553 /*-----------------------------------------------------------*/
\r
555 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
556 BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
\r
557 UBaseType_t uxIndexToNotify,
\r
559 eNotifyAction eAction,
\r
560 uint32_t * pulPreviousNotificationValue ) /* FREERTOS_SYSTEM_CALL */
\r
562 BaseType_t xReturn, xRunningPrivileged;
\r
564 xPortRaisePrivilege( xRunningPrivileged );
\r
565 xReturn = xTaskGenericNotify( xTaskToNotify, uxIndexToNotify, ulValue, eAction, pulPreviousNotificationValue );
\r
566 vPortResetPrivilege( xRunningPrivileged );
\r
570 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
571 /*-----------------------------------------------------------*/
\r
573 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
574 BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
\r
575 uint32_t ulBitsToClearOnEntry,
\r
576 uint32_t ulBitsToClearOnExit,
\r
577 uint32_t * pulNotificationValue,
\r
578 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
580 BaseType_t xReturn, xRunningPrivileged;
\r
582 xPortRaisePrivilege( xRunningPrivileged );
\r
583 xReturn = xTaskGenericNotifyWait( uxIndexToWaitOn, ulBitsToClearOnEntry, ulBitsToClearOnExit, pulNotificationValue, xTicksToWait );
\r
584 vPortResetPrivilege( xRunningPrivileged );
\r
588 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
589 /*-----------------------------------------------------------*/
\r
591 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
592 uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
\r
593 BaseType_t xClearCountOnExit,
\r
594 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
597 BaseType_t xRunningPrivileged;
\r
599 xPortRaisePrivilege( xRunningPrivileged );
\r
600 ulReturn = ulTaskGenericNotifyTake( uxIndexToWaitOn, xClearCountOnExit, xTicksToWait );
\r
601 vPortResetPrivilege( xRunningPrivileged );
\r
605 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
606 /*-----------------------------------------------------------*/
\r
608 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
609 BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
\r
610 UBaseType_t uxIndexToClear ) /* FREERTOS_SYSTEM_CALL */
\r
612 BaseType_t xReturn, xRunningPrivileged;
\r
614 xPortRaisePrivilege( xRunningPrivileged );
\r
615 xReturn = xTaskGenericNotifyStateClear( xTask, uxIndexToClear );
\r
616 vPortResetPrivilege( xRunningPrivileged );
\r
620 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
621 /*-----------------------------------------------------------*/
\r
623 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
\r
624 uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
\r
625 UBaseType_t uxIndexToClear,
\r
626 uint32_t ulBitsToClear ) /* FREERTOS_SYSTEM_CALL */
\r
629 BaseType_t xRunningPrivileged;
\r
631 xPortRaisePrivilege( xRunningPrivileged );
\r
632 ulReturn = ulTaskGenericNotifyValueClear( xTask, uxIndexToClear, ulBitsToClear );
\r
633 vPortResetPrivilege( xRunningPrivileged );
\r
637 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
\r
638 /*-----------------------------------------------------------*/
\r
640 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
641 QueueHandle_t MPU_xQueueGenericCreate( UBaseType_t uxQueueLength,
\r
642 UBaseType_t uxItemSize,
\r
643 uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
645 QueueHandle_t xReturn;
\r
646 BaseType_t xRunningPrivileged;
\r
648 xPortRaisePrivilege( xRunningPrivileged );
\r
649 xReturn = xQueueGenericCreate( uxQueueLength, uxItemSize, ucQueueType );
\r
650 vPortResetPrivilege( xRunningPrivileged );
\r
654 #endif /* if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) */
\r
655 /*-----------------------------------------------------------*/
\r
657 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
658 QueueHandle_t MPU_xQueueGenericCreateStatic( const UBaseType_t uxQueueLength,
\r
659 const UBaseType_t uxItemSize,
\r
660 uint8_t * pucQueueStorage,
\r
661 StaticQueue_t * pxStaticQueue,
\r
662 const uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
664 QueueHandle_t xReturn;
\r
665 BaseType_t xRunningPrivileged;
\r
667 xPortRaisePrivilege( xRunningPrivileged );
\r
668 xReturn = xQueueGenericCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxStaticQueue, ucQueueType );
\r
669 vPortResetPrivilege( xRunningPrivileged );
\r
673 #endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */
\r
674 /*-----------------------------------------------------------*/
\r
676 BaseType_t MPU_xQueueGenericReset( QueueHandle_t pxQueue,
\r
677 BaseType_t xNewQueue ) /* FREERTOS_SYSTEM_CALL */
\r
679 BaseType_t xReturn, xRunningPrivileged;
\r
681 xPortRaisePrivilege( xRunningPrivileged );
\r
682 xReturn = xQueueGenericReset( pxQueue, xNewQueue );
\r
683 vPortResetPrivilege( xRunningPrivileged );
\r
687 /*-----------------------------------------------------------*/
\r
689 BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
\r
690 const void * const pvItemToQueue,
\r
691 TickType_t xTicksToWait,
\r
692 BaseType_t xCopyPosition ) /* FREERTOS_SYSTEM_CALL */
\r
694 BaseType_t xReturn, xRunningPrivileged;
\r
696 xPortRaisePrivilege( xRunningPrivileged );
\r
697 xReturn = xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, xCopyPosition );
\r
698 vPortResetPrivilege( xRunningPrivileged );
\r
702 /*-----------------------------------------------------------*/
\r
704 UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t pxQueue ) /* FREERTOS_SYSTEM_CALL */
\r
706 UBaseType_t uxReturn;
\r
707 BaseType_t xRunningPrivileged;
\r
709 xPortRaisePrivilege( xRunningPrivileged );
\r
710 uxReturn = uxQueueMessagesWaiting( pxQueue );
\r
711 vPortResetPrivilege( xRunningPrivileged );
\r
715 /*-----------------------------------------------------------*/
\r
717 UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
719 UBaseType_t uxReturn;
\r
720 BaseType_t xRunningPrivileged;
\r
722 xPortRaisePrivilege( xRunningPrivileged );
\r
723 uxReturn = uxQueueSpacesAvailable( xQueue );
\r
724 vPortResetPrivilege( xRunningPrivileged );
\r
728 /*-----------------------------------------------------------*/
\r
730 BaseType_t MPU_xQueueReceive( QueueHandle_t pxQueue,
\r
731 void * const pvBuffer,
\r
732 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
734 BaseType_t xReturn, xRunningPrivileged;
\r
736 xPortRaisePrivilege( xRunningPrivileged );
\r
737 xReturn = xQueueReceive( pxQueue, pvBuffer, xTicksToWait );
\r
738 vPortResetPrivilege( xRunningPrivileged );
\r
742 /*-----------------------------------------------------------*/
\r
744 BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
\r
745 void * const pvBuffer,
\r
746 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
748 BaseType_t xReturn, xRunningPrivileged;
\r
750 xPortRaisePrivilege( xRunningPrivileged );
\r
751 xReturn = xQueuePeek( xQueue, pvBuffer, xTicksToWait );
\r
752 vPortResetPrivilege( xRunningPrivileged );
\r
756 /*-----------------------------------------------------------*/
\r
758 BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
\r
759 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
761 BaseType_t xReturn, xRunningPrivileged;
\r
763 xPortRaisePrivilege( xRunningPrivileged );
\r
764 xReturn = xQueueSemaphoreTake( xQueue, xTicksToWait );
\r
765 vPortResetPrivilege( xRunningPrivileged );
\r
769 /*-----------------------------------------------------------*/
\r
771 #if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) )
\r
772 TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) /* FREERTOS_SYSTEM_CALL */
\r
775 BaseType_t xRunningPrivileged;
\r
777 xPortRaisePrivilege( xRunningPrivileged );
\r
778 xReturn = xQueueGetMutexHolder( xSemaphore );
\r
779 vPortResetPrivilege( xRunningPrivileged );
\r
783 #endif /* if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) ) */
\r
784 /*-----------------------------------------------------------*/
\r
786 #if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
787 QueueHandle_t MPU_xQueueCreateMutex( const uint8_t ucQueueType ) /* FREERTOS_SYSTEM_CALL */
\r
789 QueueHandle_t xReturn;
\r
790 BaseType_t xRunningPrivileged;
\r
792 xPortRaisePrivilege( xRunningPrivileged );
\r
793 xReturn = xQueueCreateMutex( ucQueueType );
\r
794 vPortResetPrivilege( xRunningPrivileged );
\r
798 #endif /* if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */
\r
799 /*-----------------------------------------------------------*/
\r
801 #if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
802 QueueHandle_t MPU_xQueueCreateMutexStatic( const uint8_t ucQueueType,
\r
803 StaticQueue_t * pxStaticQueue ) /* FREERTOS_SYSTEM_CALL */
\r
805 QueueHandle_t xReturn;
\r
806 BaseType_t xRunningPrivileged;
\r
808 xPortRaisePrivilege( xRunningPrivileged );
\r
809 xReturn = xQueueCreateMutexStatic( ucQueueType, pxStaticQueue );
\r
810 vPortResetPrivilege( xRunningPrivileged );
\r
814 #endif /* if ( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) */
\r
815 /*-----------------------------------------------------------*/
\r
817 #if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
818 QueueHandle_t MPU_xQueueCreateCountingSemaphore( UBaseType_t uxCountValue,
\r
819 UBaseType_t uxInitialCount ) /* FREERTOS_SYSTEM_CALL */
\r
821 QueueHandle_t xReturn;
\r
822 BaseType_t xRunningPrivileged;
\r
824 xPortRaisePrivilege( xRunningPrivileged );
\r
825 xReturn = xQueueCreateCountingSemaphore( uxCountValue, uxInitialCount );
\r
826 vPortResetPrivilege( xRunningPrivileged );
\r
830 #endif /* if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */
\r
831 /*-----------------------------------------------------------*/
\r
833 #if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
835 QueueHandle_t MPU_xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount,
\r
836 const UBaseType_t uxInitialCount,
\r
837 StaticQueue_t * pxStaticQueue ) /* FREERTOS_SYSTEM_CALL */
\r
839 QueueHandle_t xReturn;
\r
840 BaseType_t xRunningPrivileged;
\r
842 xPortRaisePrivilege( xRunningPrivileged );
\r
843 xReturn = xQueueCreateCountingSemaphoreStatic( uxMaxCount, uxInitialCount, pxStaticQueue );
\r
844 vPortResetPrivilege( xRunningPrivileged );
\r
848 #endif /* if ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) */
\r
849 /*-----------------------------------------------------------*/
\r
851 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
\r
852 BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
\r
853 TickType_t xBlockTime ) /* FREERTOS_SYSTEM_CALL */
\r
855 BaseType_t xReturn, xRunningPrivileged;
\r
857 xPortRaisePrivilege( xRunningPrivileged );
\r
858 xReturn = xQueueTakeMutexRecursive( xMutex, xBlockTime );
\r
859 vPortResetPrivilege( xRunningPrivileged );
\r
863 #endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */
\r
864 /*-----------------------------------------------------------*/
\r
866 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
\r
867 BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t xMutex ) /* FREERTOS_SYSTEM_CALL */
\r
869 BaseType_t xReturn, xRunningPrivileged;
\r
871 xPortRaisePrivilege( xRunningPrivileged );
\r
872 xReturn = xQueueGiveMutexRecursive( xMutex );
\r
873 vPortResetPrivilege( xRunningPrivileged );
\r
877 #endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */
\r
878 /*-----------------------------------------------------------*/
\r
880 #if ( ( configUSE_QUEUE_SETS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
881 QueueSetHandle_t MPU_xQueueCreateSet( UBaseType_t uxEventQueueLength ) /* FREERTOS_SYSTEM_CALL */
\r
883 QueueSetHandle_t xReturn;
\r
884 BaseType_t xRunningPrivileged;
\r
886 xPortRaisePrivilege( xRunningPrivileged );
\r
887 xReturn = xQueueCreateSet( uxEventQueueLength );
\r
888 vPortResetPrivilege( xRunningPrivileged );
\r
892 #endif /* if ( ( configUSE_QUEUE_SETS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */
\r
893 /*-----------------------------------------------------------*/
\r
895 #if ( configUSE_QUEUE_SETS == 1 )
\r
896 QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
\r
897 TickType_t xBlockTimeTicks ) /* FREERTOS_SYSTEM_CALL */
\r
899 QueueSetMemberHandle_t xReturn;
\r
900 BaseType_t xRunningPrivileged;
\r
902 xPortRaisePrivilege( xRunningPrivileged );
\r
903 xReturn = xQueueSelectFromSet( xQueueSet, xBlockTimeTicks );
\r
904 vPortResetPrivilege( xRunningPrivileged );
\r
908 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
909 /*-----------------------------------------------------------*/
\r
911 #if ( configUSE_QUEUE_SETS == 1 )
\r
912 BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
\r
913 QueueSetHandle_t xQueueSet ) /* FREERTOS_SYSTEM_CALL */
\r
915 BaseType_t xReturn, xRunningPrivileged;
\r
917 xPortRaisePrivilege( xRunningPrivileged );
\r
918 xReturn = xQueueAddToSet( xQueueOrSemaphore, xQueueSet );
\r
919 vPortResetPrivilege( xRunningPrivileged );
\r
923 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
924 /*-----------------------------------------------------------*/
\r
926 #if ( configUSE_QUEUE_SETS == 1 )
\r
927 BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore,
\r
928 QueueSetHandle_t xQueueSet ) /* FREERTOS_SYSTEM_CALL */
\r
930 BaseType_t xReturn, xRunningPrivileged;
\r
932 xPortRaisePrivilege( xRunningPrivileged );
\r
933 xReturn = xQueueRemoveFromSet( xQueueOrSemaphore, xQueueSet );
\r
934 vPortResetPrivilege( xRunningPrivileged );
\r
938 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
\r
939 /*-----------------------------------------------------------*/
\r
941 #if configQUEUE_REGISTRY_SIZE > 0
\r
942 void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
\r
943 const char * pcName ) /* FREERTOS_SYSTEM_CALL */
\r
945 BaseType_t xRunningPrivileged;
\r
947 xPortRaisePrivilege( xRunningPrivileged );
\r
948 vQueueAddToRegistry( xQueue, pcName );
\r
949 vPortResetPrivilege( xRunningPrivileged );
\r
951 #endif /* if configQUEUE_REGISTRY_SIZE > 0 */
\r
952 /*-----------------------------------------------------------*/
\r
954 #if configQUEUE_REGISTRY_SIZE > 0
\r
955 void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
957 BaseType_t xRunningPrivileged;
\r
959 xPortRaisePrivilege( xRunningPrivileged );
\r
960 vQueueUnregisterQueue( xQueue );
\r
961 vPortResetPrivilege( xRunningPrivileged );
\r
963 #endif /* if configQUEUE_REGISTRY_SIZE > 0 */
\r
964 /*-----------------------------------------------------------*/
\r
966 #if configQUEUE_REGISTRY_SIZE > 0
\r
967 const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
969 const char * pcReturn;
\r
970 BaseType_t xRunningPrivileged;
\r
972 xPortRaisePrivilege( xRunningPrivileged );
\r
973 pcReturn = pcQueueGetName( xQueue );
\r
974 vPortResetPrivilege( xRunningPrivileged );
\r
978 #endif /* if configQUEUE_REGISTRY_SIZE > 0 */
\r
979 /*-----------------------------------------------------------*/
\r
981 void MPU_vQueueDelete( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
\r
983 BaseType_t xRunningPrivileged;
\r
985 xPortRaisePrivilege( xRunningPrivileged );
\r
986 vQueueDelete( xQueue );
\r
987 vPortResetPrivilege( xRunningPrivileged );
\r
989 /*-----------------------------------------------------------*/
\r
991 #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
992 TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName,
\r
993 const TickType_t xTimerPeriodInTicks,
\r
994 const UBaseType_t uxAutoReload,
\r
995 void * const pvTimerID,
\r
996 TimerCallbackFunction_t pxCallbackFunction ) /* FREERTOS_SYSTEM_CALL */
\r
998 TimerHandle_t xReturn;
\r
999 BaseType_t xRunningPrivileged;
\r
1001 xPortRaisePrivilege( xRunningPrivileged );
\r
1002 xReturn = xTimerCreate( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction );
\r
1003 vPortResetPrivilege( xRunningPrivileged );
\r
1007 #endif /* if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
1008 /*-----------------------------------------------------------*/
\r
1010 #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
1011 TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName,
\r
1012 const TickType_t xTimerPeriodInTicks,
\r
1013 const UBaseType_t uxAutoReload,
\r
1014 void * const pvTimerID,
\r
1015 TimerCallbackFunction_t pxCallbackFunction,
\r
1016 StaticTimer_t * pxTimerBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1018 TimerHandle_t xReturn;
\r
1019 BaseType_t xRunningPrivileged;
\r
1021 xPortRaisePrivilege( xRunningPrivileged );
\r
1022 xReturn = xTimerCreateStatic( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction, pxTimerBuffer );
\r
1023 vPortResetPrivilege( xRunningPrivileged );
\r
1027 #endif /* if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
1028 /*-----------------------------------------------------------*/
\r
1030 #if ( configUSE_TIMERS == 1 )
\r
1031 void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1034 BaseType_t xRunningPrivileged;
\r
1036 xPortRaisePrivilege( xRunningPrivileged );
\r
1037 pvReturn = pvTimerGetTimerID( xTimer );
\r
1038 vPortResetPrivilege( xRunningPrivileged );
\r
1042 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1043 /*-----------------------------------------------------------*/
\r
1045 #if ( configUSE_TIMERS == 1 )
\r
1046 void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
\r
1047 void * pvNewID ) /* FREERTOS_SYSTEM_CALL */
\r
1049 BaseType_t xRunningPrivileged;
\r
1051 xPortRaisePrivilege( xRunningPrivileged );
\r
1052 vTimerSetTimerID( xTimer, pvNewID );
\r
1053 vPortResetPrivilege( xRunningPrivileged );
\r
1055 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1056 /*-----------------------------------------------------------*/
\r
1058 #if ( configUSE_TIMERS == 1 )
\r
1059 BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1061 BaseType_t xReturn, xRunningPrivileged;
\r
1063 xPortRaisePrivilege( xRunningPrivileged );
\r
1064 xReturn = xTimerIsTimerActive( xTimer );
\r
1065 vPortResetPrivilege( xRunningPrivileged );
\r
1069 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1070 /*-----------------------------------------------------------*/
\r
1072 #if ( configUSE_TIMERS == 1 )
\r
1073 TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
\r
1075 TaskHandle_t xReturn;
\r
1076 BaseType_t xRunningPrivileged;
\r
1078 xPortRaisePrivilege( xRunningPrivileged );
\r
1079 xReturn = xTimerGetTimerDaemonTaskHandle();
\r
1080 vPortResetPrivilege( xRunningPrivileged );
\r
1084 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1085 /*-----------------------------------------------------------*/
\r
1087 #if ( ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
1088 BaseType_t MPU_xTimerPendFunctionCall( PendedFunction_t xFunctionToPend,
\r
1089 void * pvParameter1,
\r
1090 uint32_t ulParameter2,
\r
1091 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1093 BaseType_t xReturn, xRunningPrivileged;
\r
1095 xPortRaisePrivilege( xRunningPrivileged );
\r
1096 xReturn = xTimerPendFunctionCall( xFunctionToPend, pvParameter1, ulParameter2, xTicksToWait );
\r
1097 vPortResetPrivilege( xRunningPrivileged );
\r
1101 #endif /* if ( ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) */
\r
1102 /*-----------------------------------------------------------*/
\r
1104 #if ( configUSE_TIMERS == 1 )
\r
1105 void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
\r
1106 const UBaseType_t uxAutoReload ) /* FREERTOS_SYSTEM_CALL */
\r
1108 BaseType_t xRunningPrivileged;
\r
1110 xPortRaisePrivilege( xRunningPrivileged );
\r
1111 vTimerSetReloadMode( xTimer, uxAutoReload );
\r
1112 vPortResetPrivilege( xRunningPrivileged );
\r
1114 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1115 /*-----------------------------------------------------------*/
\r
1117 #if ( configUSE_TIMERS == 1 )
\r
1118 UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer )
\r
1120 UBaseType_t uxReturn;
\r
1121 BaseType_t xRunningPrivileged;
\r
1123 xPortRaisePrivilege( xRunningPrivileged );
\r
1124 uxReturn = uxTimerGetReloadMode( xTimer );
\r
1125 vPortResetPrivilege( xRunningPrivileged );
\r
1129 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1130 /*-----------------------------------------------------------*/
\r
1132 #if ( configUSE_TIMERS == 1 )
\r
1133 const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1135 const char * pcReturn;
\r
1136 BaseType_t xRunningPrivileged;
\r
1138 xPortRaisePrivilege( xRunningPrivileged );
\r
1139 pcReturn = pcTimerGetName( xTimer );
\r
1140 vPortResetPrivilege( xRunningPrivileged );
\r
1144 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1145 /*-----------------------------------------------------------*/
\r
1147 #if ( configUSE_TIMERS == 1 )
\r
1148 TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1150 TickType_t xReturn;
\r
1151 BaseType_t xRunningPrivileged;
\r
1153 xPortRaisePrivilege( xRunningPrivileged );
\r
1154 xReturn = xTimerGetPeriod( xTimer );
\r
1155 vPortResetPrivilege( xRunningPrivileged );
\r
1159 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1160 /*-----------------------------------------------------------*/
\r
1162 #if ( configUSE_TIMERS == 1 )
\r
1163 TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
\r
1165 TickType_t xReturn;
\r
1166 BaseType_t xRunningPrivileged;
\r
1168 xPortRaisePrivilege( xRunningPrivileged );
\r
1169 xReturn = xTimerGetExpiryTime( xTimer );
\r
1170 vPortResetPrivilege( xRunningPrivileged );
\r
1174 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1175 /*-----------------------------------------------------------*/
\r
1177 #if ( configUSE_TIMERS == 1 )
\r
1178 BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
\r
1179 const BaseType_t xCommandID,
\r
1180 const TickType_t xOptionalValue,
\r
1181 BaseType_t * const pxHigherPriorityTaskWoken,
\r
1182 const TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1184 BaseType_t xReturn;
\r
1185 BaseType_t xRunningPrivileged;
\r
1187 xPortRaisePrivilege( xRunningPrivileged );
\r
1188 xReturn = xTimerGenericCommand( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
\r
1189 vPortResetPrivilege( xRunningPrivileged );
\r
1193 #endif /* if ( configUSE_TIMERS == 1 ) */
\r
1194 /*-----------------------------------------------------------*/
\r
1196 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
1197 EventGroupHandle_t MPU_xEventGroupCreate( void ) /* FREERTOS_SYSTEM_CALL */
\r
1199 EventGroupHandle_t xReturn;
\r
1200 BaseType_t xRunningPrivileged;
\r
1202 xPortRaisePrivilege( xRunningPrivileged );
\r
1203 xReturn = xEventGroupCreate();
\r
1204 vPortResetPrivilege( xRunningPrivileged );
\r
1208 #endif /* if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) */
\r
1209 /*-----------------------------------------------------------*/
\r
1211 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
1212 EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t * pxEventGroupBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1214 EventGroupHandle_t xReturn;
\r
1215 BaseType_t xRunningPrivileged;
\r
1217 xPortRaisePrivilege( xRunningPrivileged );
\r
1218 xReturn = xEventGroupCreateStatic( pxEventGroupBuffer );
\r
1219 vPortResetPrivilege( xRunningPrivileged );
\r
1223 #endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */
\r
1224 /*-----------------------------------------------------------*/
\r
1226 EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
\r
1227 const EventBits_t uxBitsToWaitFor,
\r
1228 const BaseType_t xClearOnExit,
\r
1229 const BaseType_t xWaitForAllBits,
\r
1230 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1232 EventBits_t xReturn;
\r
1233 BaseType_t xRunningPrivileged;
\r
1235 xPortRaisePrivilege( xRunningPrivileged );
\r
1236 xReturn = xEventGroupWaitBits( xEventGroup, uxBitsToWaitFor, xClearOnExit, xWaitForAllBits, xTicksToWait );
\r
1237 vPortResetPrivilege( xRunningPrivileged );
\r
1241 /*-----------------------------------------------------------*/
\r
1243 EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
\r
1244 const EventBits_t uxBitsToClear ) /* FREERTOS_SYSTEM_CALL */
\r
1246 EventBits_t xReturn;
\r
1247 BaseType_t xRunningPrivileged;
\r
1249 xPortRaisePrivilege( xRunningPrivileged );
\r
1250 xReturn = xEventGroupClearBits( xEventGroup, uxBitsToClear );
\r
1251 vPortResetPrivilege( xRunningPrivileged );
\r
1255 /*-----------------------------------------------------------*/
\r
1257 EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
\r
1258 const EventBits_t uxBitsToSet ) /* FREERTOS_SYSTEM_CALL */
\r
1260 EventBits_t xReturn;
\r
1261 BaseType_t xRunningPrivileged;
\r
1263 xPortRaisePrivilege( xRunningPrivileged );
\r
1264 xReturn = xEventGroupSetBits( xEventGroup, uxBitsToSet );
\r
1265 vPortResetPrivilege( xRunningPrivileged );
\r
1269 /*-----------------------------------------------------------*/
\r
1271 EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
\r
1272 const EventBits_t uxBitsToSet,
\r
1273 const EventBits_t uxBitsToWaitFor,
\r
1274 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1276 EventBits_t xReturn;
\r
1277 BaseType_t xRunningPrivileged;
\r
1279 xPortRaisePrivilege( xRunningPrivileged );
\r
1280 xReturn = xEventGroupSync( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTicksToWait );
\r
1281 vPortResetPrivilege( xRunningPrivileged );
\r
1285 /*-----------------------------------------------------------*/
\r
1287 void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) /* FREERTOS_SYSTEM_CALL */
\r
1289 BaseType_t xRunningPrivileged;
\r
1291 xPortRaisePrivilege( xRunningPrivileged );
\r
1292 vEventGroupDelete( xEventGroup );
\r
1293 vPortResetPrivilege( xRunningPrivileged );
\r
1295 /*-----------------------------------------------------------*/
\r
1297 size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
\r
1298 const void * pvTxData,
\r
1299 size_t xDataLengthBytes,
\r
1300 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1303 BaseType_t xRunningPrivileged;
\r
1305 xPortRaisePrivilege( xRunningPrivileged );
\r
1306 xReturn = xStreamBufferSend( xStreamBuffer, pvTxData, xDataLengthBytes, xTicksToWait );
\r
1307 vPortResetPrivilege( xRunningPrivileged );
\r
1311 /*-----------------------------------------------------------*/
\r
1313 size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1316 BaseType_t xRunningPrivileged;
\r
1318 xPortRaisePrivilege( xRunningPrivileged );
\r
1319 xReturn = xStreamBufferNextMessageLengthBytes( xStreamBuffer );
\r
1320 vPortResetPrivilege( xRunningPrivileged );
\r
1324 /*-----------------------------------------------------------*/
\r
1326 size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
\r
1328 size_t xBufferLengthBytes,
\r
1329 TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
\r
1332 BaseType_t xRunningPrivileged;
\r
1334 xPortRaisePrivilege( xRunningPrivileged );
\r
1335 xReturn = xStreamBufferReceive( xStreamBuffer, pvRxData, xBufferLengthBytes, xTicksToWait );
\r
1336 vPortResetPrivilege( xRunningPrivileged );
\r
1340 /*-----------------------------------------------------------*/
\r
1342 void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1344 BaseType_t xRunningPrivileged;
\r
1346 xPortRaisePrivilege( xRunningPrivileged );
\r
1347 vStreamBufferDelete( xStreamBuffer );
\r
1348 vPortResetPrivilege( xRunningPrivileged );
\r
1350 /*-----------------------------------------------------------*/
\r
1352 BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1354 BaseType_t xReturn, xRunningPrivileged;
\r
1356 xPortRaisePrivilege( xRunningPrivileged );
\r
1357 xReturn = xStreamBufferIsFull( xStreamBuffer );
\r
1358 vPortResetPrivilege( xRunningPrivileged );
\r
1362 /*-----------------------------------------------------------*/
\r
1364 BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1366 BaseType_t xReturn, xRunningPrivileged;
\r
1368 xPortRaisePrivilege( xRunningPrivileged );
\r
1369 xReturn = xStreamBufferIsEmpty( xStreamBuffer );
\r
1370 vPortResetPrivilege( xRunningPrivileged );
\r
1374 /*-----------------------------------------------------------*/
\r
1376 BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1378 BaseType_t xReturn, xRunningPrivileged;
\r
1380 xPortRaisePrivilege( xRunningPrivileged );
\r
1381 xReturn = xStreamBufferReset( xStreamBuffer );
\r
1382 vPortResetPrivilege( xRunningPrivileged );
\r
1386 /*-----------------------------------------------------------*/
\r
1388 size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1391 BaseType_t xRunningPrivileged;
\r
1393 xPortRaisePrivilege( xRunningPrivileged );
\r
1394 xReturn = xStreamBufferSpacesAvailable( xStreamBuffer );
\r
1395 vPortResetPrivilege( xRunningPrivileged );
\r
1399 /*-----------------------------------------------------------*/
\r
1401 size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1404 BaseType_t xRunningPrivileged;
\r
1406 xPortRaisePrivilege( xRunningPrivileged );
\r
1407 xReturn = xStreamBufferBytesAvailable( xStreamBuffer );
\r
1408 vPortResetPrivilege( xRunningPrivileged );
\r
1412 /*-----------------------------------------------------------*/
\r
1414 BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
\r
1415 size_t xTriggerLevel ) /* FREERTOS_SYSTEM_CALL */
\r
1417 BaseType_t xReturn, xRunningPrivileged;
\r
1419 xPortRaisePrivilege( xRunningPrivileged );
\r
1420 xReturn = xStreamBufferSetTriggerLevel( xStreamBuffer, xTriggerLevel );
\r
1421 vPortResetPrivilege( xRunningPrivileged );
\r
1425 /*-----------------------------------------------------------*/
\r
1427 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
1428 StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes,
\r
1429 size_t xTriggerLevelBytes,
\r
1430 BaseType_t xIsMessageBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1432 StreamBufferHandle_t xReturn;
\r
1433 BaseType_t xRunningPrivileged;
\r
1435 xPortRaisePrivilege( xRunningPrivileged );
\r
1436 xReturn = xStreamBufferGenericCreate( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer );
\r
1437 vPortResetPrivilege( xRunningPrivileged );
\r
1441 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
1442 /*-----------------------------------------------------------*/
\r
1444 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
1445 StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes,
\r
1446 size_t xTriggerLevelBytes,
\r
1447 BaseType_t xIsMessageBuffer,
\r
1448 uint8_t * const pucStreamBufferStorageArea,
\r
1449 StaticStreamBuffer_t * const pxStaticStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
\r
1451 StreamBufferHandle_t xReturn;
\r
1452 BaseType_t xRunningPrivileged;
\r
1454 xPortRaisePrivilege( xRunningPrivileged );
\r
1455 xReturn = xStreamBufferGenericCreateStatic( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer, pucStreamBufferStorageArea, pxStaticStreamBuffer );
\r
1456 vPortResetPrivilege( xRunningPrivileged );
\r
1460 #endif /* configSUPPORT_STATIC_ALLOCATION */
\r
1461 /*-----------------------------------------------------------*/
\r
1464 /* Functions that the application writer wants to execute in privileged mode
\r
1465 * can be defined in application_defined_privileged_functions.h. The functions
\r
1466 * must take the same format as those above whereby the privilege state on exit
\r
1467 * equals the privilege state on entry. For example:
\r
1469 * void MPU_FunctionName( [parameters ] ) FREERTOS_SYSTEM_CALL;
\r
1470 * void MPU_FunctionName( [parameters ] )
\r
1472 * BaseType_t xRunningPrivileged;
\r
1474 * xPortRaisePrivilege( xRunningPrivileged );
\r
1475 * FunctionName( [parameters ] );
\r
1476 * vPortResetPrivilege( xRunningPrivileged );
\r
1480 #if configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS == 1
\r
1481 #include "application_defined_privileged_functions.h"
\r