blob: 7a62caff02c8bb580495d1b3eb491e39d23107aa [file] [log] [blame] [edit]
/*
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* SPDX-License-Identifier: MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
*
*/
/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
* all the API functions to use the MPU wrappers. That should only be done when
* task.h is included from an application file. */
#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
/* Scheduler includes. */
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "timers.h"
#include "event_groups.h"
#include "stream_buffer.h"
#include "mpu_prototypes.h"
#include "mpu_syscall_numbers.h"
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
/*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
#if ( INCLUDE_xTaskDelayUntil == 1 )
BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
const TickType_t xTimeIncrement ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
const TickType_t xTimeIncrement ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTaskDelayUntilImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTaskDelayUntil_Unpriv \n"
" MPU_xTaskDelayUntil_Priv: \n"
" b MPU_xTaskDelayUntilImpl \n"
" MPU_xTaskDelayUntil_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory"
);
}
#endif /* if ( INCLUDE_xTaskDelayUntil == 1 ) */
/*-----------------------------------------------------------*/
#if ( INCLUDE_xTaskAbortDelay == 1 )
BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTaskAbortDelayImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTaskAbortDelay_Unpriv \n"
" MPU_xTaskAbortDelay_Priv: \n"
" b MPU_xTaskAbortDelayImpl \n"
" MPU_xTaskAbortDelay_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory"
);
}
#endif /* if ( INCLUDE_xTaskAbortDelay == 1 ) */
/*-----------------------------------------------------------*/
#if ( INCLUDE_vTaskDelay == 1 )
void MPU_vTaskDelay( const TickType_t xTicksToDelay ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vTaskDelay( const TickType_t xTicksToDelay ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vTaskDelayImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vTaskDelay_Unpriv \n"
" MPU_vTaskDelay_Priv: \n"
" b MPU_vTaskDelayImpl \n"
" MPU_vTaskDelay_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory"
);
}
#endif /* if ( INCLUDE_vTaskDelay == 1 ) */
/*-----------------------------------------------------------*/
#if ( INCLUDE_uxTaskPriorityGet == 1 )
UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t xTask ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t xTask ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_uxTaskPriorityGetImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_uxTaskPriorityGet_Unpriv \n"
" MPU_uxTaskPriorityGet_Priv: \n"
" b MPU_uxTaskPriorityGetImpl \n"
" MPU_uxTaskPriorityGet_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory"
);
}
#endif /* if ( INCLUDE_uxTaskPriorityGet == 1 ) */
/*-----------------------------------------------------------*/
#if ( INCLUDE_eTaskGetState == 1 )
eTaskState MPU_eTaskGetState( TaskHandle_t xTask ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
eTaskState MPU_eTaskGetState( TaskHandle_t xTask ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_eTaskGetStateImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_eTaskGetState_Unpriv \n"
" MPU_eTaskGetState_Priv: \n"
" b MPU_eTaskGetStateImpl \n"
" MPU_eTaskGetState_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory"
);
}
#endif /* if ( INCLUDE_eTaskGetState == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TRACE_FACILITY == 1 )
void MPU_vTaskGetInfo( TaskHandle_t xTask,
TaskStatus_t * pxTaskStatus,
BaseType_t xGetFreeStackSpace,
eTaskState eState ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vTaskGetInfo( TaskHandle_t xTask,
TaskStatus_t * pxTaskStatus,
BaseType_t xGetFreeStackSpace,
eTaskState eState ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vTaskGetInfoImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vTaskGetInfo_Unpriv \n"
" MPU_vTaskGetInfo_Priv: \n"
" b MPU_vTaskGetInfoImpl \n"
" MPU_vTaskGetInfo_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory"
);
}
#endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
/*-----------------------------------------------------------*/
#if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )
TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTaskGetIdleTaskHandleImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTaskGetIdleTaskHandle_Unpriv \n"
" MPU_xTaskGetIdleTaskHandle_Priv: \n"
" b MPU_xTaskGetIdleTaskHandleImpl \n"
" MPU_xTaskGetIdleTaskHandle_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory"
);
}
#endif /* if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) */
/*-----------------------------------------------------------*/
#if ( INCLUDE_vTaskSuspend == 1 )
void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vTaskSuspendImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vTaskSuspend_Unpriv \n"
" MPU_vTaskSuspend_Priv: \n"
" b MPU_vTaskSuspendImpl \n"
" MPU_vTaskSuspend_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory"
);
}
#endif /* if ( INCLUDE_vTaskSuspend == 1 ) */
/*-----------------------------------------------------------*/
#if ( INCLUDE_vTaskSuspend == 1 )
void MPU_vTaskResume( TaskHandle_t xTaskToResume ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vTaskResume( TaskHandle_t xTaskToResume ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vTaskResumeImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vTaskResume_Unpriv \n"
" MPU_vTaskResume_Priv: \n"
" b MPU_vTaskResumeImpl \n"
" MPU_vTaskResume_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vTaskResume ) : "memory"
);
}
#endif /* if ( INCLUDE_vTaskSuspend == 1 ) */
/*-----------------------------------------------------------*/
TickType_t MPU_xTaskGetTickCount( void ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
TickType_t MPU_xTaskGetTickCount( void ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTaskGetTickCountImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTaskGetTickCount_Unpriv \n"
" MPU_xTaskGetTickCount_Priv: \n"
" b MPU_xTaskGetTickCountImpl \n"
" MPU_xTaskGetTickCount_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory"
);
}
/*-----------------------------------------------------------*/
UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_uxTaskGetNumberOfTasksImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_uxTaskGetNumberOfTasks_Unpriv \n"
" MPU_uxTaskGetNumberOfTasks_Priv: \n"
" b MPU_uxTaskGetNumberOfTasksImpl \n"
" MPU_uxTaskGetNumberOfTasks_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory"
);
}
/*-----------------------------------------------------------*/
#if ( configGENERATE_RUN_TIME_STATS == 1 )
configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimeCounter( const TaskHandle_t xTask ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimeCounter( const TaskHandle_t xTask ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_ulTaskGetRunTimeCounterImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_ulTaskGetRunTimeCounter_Unpriv \n"
" MPU_ulTaskGetRunTimeCounter_Priv: \n"
" b MPU_ulTaskGetRunTimeCounterImpl \n"
" MPU_ulTaskGetRunTimeCounter_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory"
);
}
#endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configGENERATE_RUN_TIME_STATS == 1 )
configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimePercent( const TaskHandle_t xTask ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimePercent( const TaskHandle_t xTask ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_ulTaskGetRunTimePercentImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_ulTaskGetRunTimePercent_Unpriv \n"
" MPU_ulTaskGetRunTimePercent_Priv: \n"
" b MPU_ulTaskGetRunTimePercentImpl \n"
" MPU_ulTaskGetRunTimePercent_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory"
);
}
#endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) */
/*-----------------------------------------------------------*/
#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimePercent( void ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimePercent( void ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_ulTaskGetIdleRunTimePercentImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_ulTaskGetIdleRunTimePercent_Unpriv \n"
" MPU_ulTaskGetIdleRunTimePercent_Priv: \n"
" b MPU_ulTaskGetIdleRunTimePercentImpl \n"
" MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory"
);
}
#endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) ) */
/*-----------------------------------------------------------*/
#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimeCounter( void ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimeCounter( void ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv \n"
" MPU_ulTaskGetIdleRunTimeCounter_Priv: \n"
" b MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory"
);
}
#endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) ) */
/*-----------------------------------------------------------*/
#if ( configUSE_APPLICATION_TASK_TAG == 1 )
void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
TaskHookFunction_t pxHookFunction ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
TaskHookFunction_t pxHookFunction ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vTaskSetApplicationTaskTagImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vTaskSetApplicationTaskTag_Unpriv \n"
" MPU_vTaskSetApplicationTaskTag_Priv: \n"
" b MPU_vTaskSetApplicationTaskTagImpl \n"
" MPU_vTaskSetApplicationTaskTag_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory"
);
}
#endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_APPLICATION_TASK_TAG == 1 )
TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTaskGetApplicationTaskTagImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTaskGetApplicationTaskTag_Unpriv \n"
" MPU_xTaskGetApplicationTaskTag_Priv: \n"
" b MPU_xTaskGetApplicationTaskTagImpl \n"
" MPU_xTaskGetApplicationTaskTag_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory"
);
}
#endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
/*-----------------------------------------------------------*/
#if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
BaseType_t xIndex,
void * pvValue ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
BaseType_t xIndex,
void * pvValue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv \n"
" MPU_vTaskSetThreadLocalStoragePointer_Priv: \n"
" b MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory"
);
}
#endif /* if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) */
/*-----------------------------------------------------------*/
#if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,
BaseType_t xIndex ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,
BaseType_t xIndex ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv \n"
" MPU_pvTaskGetThreadLocalStoragePointer_Priv: \n"
" b MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory"
);
}
#endif /* if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TRACE_FACILITY == 1 )
UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray,
const UBaseType_t uxArraySize,
configRUN_TIME_COUNTER_TYPE * const pulTotalRunTime ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray,
const UBaseType_t uxArraySize,
configRUN_TIME_COUNTER_TYPE * const pulTotalRunTime ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_uxTaskGetSystemStateImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_uxTaskGetSystemState_Unpriv \n"
" MPU_uxTaskGetSystemState_Priv: \n"
" b MPU_uxTaskGetSystemStateImpl \n"
" MPU_uxTaskGetSystemState_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory"
);
}
#endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
/*-----------------------------------------------------------*/
#if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_uxTaskGetStackHighWaterMarkImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_uxTaskGetStackHighWaterMark_Unpriv \n"
" MPU_uxTaskGetStackHighWaterMark_Priv: \n"
" b MPU_uxTaskGetStackHighWaterMarkImpl \n"
" MPU_uxTaskGetStackHighWaterMark_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory"
);
}
#endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) */
/*-----------------------------------------------------------*/
#if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 )
configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_uxTaskGetStackHighWaterMark2Impl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_uxTaskGetStackHighWaterMark2_Unpriv \n"
" MPU_uxTaskGetStackHighWaterMark2_Priv: \n"
" b MPU_uxTaskGetStackHighWaterMark2Impl \n"
" MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory"
);
}
#endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) */
/*-----------------------------------------------------------*/
#if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) )
TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTaskGetCurrentTaskHandleImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTaskGetCurrentTaskHandle_Unpriv \n"
" MPU_xTaskGetCurrentTaskHandle_Priv: \n"
" b MPU_xTaskGetCurrentTaskHandleImpl \n"
" MPU_xTaskGetCurrentTaskHandle_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory"
);
}
#endif /* if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) */
/*-----------------------------------------------------------*/
#if ( INCLUDE_xTaskGetSchedulerState == 1 )
BaseType_t MPU_xTaskGetSchedulerState( void ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGetSchedulerState( void ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTaskGetSchedulerStateImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTaskGetSchedulerState_Unpriv \n"
" MPU_xTaskGetSchedulerState_Priv: \n"
" b MPU_xTaskGetSchedulerStateImpl \n"
" MPU_xTaskGetSchedulerState_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory"
);
}
#endif /* if ( INCLUDE_xTaskGetSchedulerState == 1 ) */
/*-----------------------------------------------------------*/
void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vTaskSetTimeOutStateImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vTaskSetTimeOutState_Unpriv \n"
" MPU_vTaskSetTimeOutState_Priv: \n"
" b MPU_vTaskSetTimeOutStateImpl \n"
" MPU_vTaskSetTimeOutState_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory"
);
}
/*-----------------------------------------------------------*/
BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
TickType_t * const pxTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
TickType_t * const pxTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTaskCheckForTimeOutImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTaskCheckForTimeOut_Unpriv \n"
" MPU_xTaskCheckForTimeOut_Priv: \n"
" b MPU_xTaskCheckForTimeOutImpl \n"
" MPU_xTaskCheckForTimeOut_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory"
);
}
/*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTaskGenericNotifyImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTaskGenericNotify_Unpriv \n"
" MPU_xTaskGenericNotify_Priv: \n"
" b MPU_xTaskGenericNotifyImpl \n"
" MPU_xTaskGenericNotify_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory"
);
}
#endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTaskGenericNotifyWaitImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTaskGenericNotifyWait_Unpriv \n"
" MPU_xTaskGenericNotifyWait_Priv: \n"
" b MPU_xTaskGenericNotifyWaitImpl \n"
" MPU_xTaskGenericNotifyWait_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory"
);
}
#endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
BaseType_t xClearCountOnExit,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
BaseType_t xClearCountOnExit,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_ulTaskGenericNotifyTakeImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_ulTaskGenericNotifyTake_Unpriv \n"
" MPU_ulTaskGenericNotifyTake_Priv: \n"
" b MPU_ulTaskGenericNotifyTakeImpl \n"
" MPU_ulTaskGenericNotifyTake_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory"
);
}
#endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
UBaseType_t uxIndexToClear ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
UBaseType_t uxIndexToClear ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTaskGenericNotifyStateClearImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTaskGenericNotifyStateClear_Unpriv \n"
" MPU_xTaskGenericNotifyStateClear_Priv: \n"
" b MPU_xTaskGenericNotifyStateClearImpl \n"
" MPU_xTaskGenericNotifyStateClear_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory"
);
}
#endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
UBaseType_t uxIndexToClear,
uint32_t ulBitsToClear ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
UBaseType_t uxIndexToClear,
uint32_t ulBitsToClear ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_ulTaskGenericNotifyValueClearImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_ulTaskGenericNotifyValueClear_Unpriv \n"
" MPU_ulTaskGenericNotifyValueClear_Priv: \n"
" b MPU_ulTaskGenericNotifyValueClearImpl \n"
" MPU_ulTaskGenericNotifyValueClear_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory"
);
}
#endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
/*-----------------------------------------------------------*/
BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
const void * const pvItemToQueue,
TickType_t xTicksToWait,
const BaseType_t xCopyPosition ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
const void * const pvItemToQueue,
TickType_t xTicksToWait,
const BaseType_t xCopyPosition ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xQueueGenericSendImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xQueueGenericSend_Unpriv \n"
" MPU_xQueueGenericSend_Priv: \n"
" b MPU_xQueueGenericSendImpl \n"
" MPU_xQueueGenericSend_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory"
);
}
/*-----------------------------------------------------------*/
UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_uxQueueMessagesWaitingImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_uxQueueMessagesWaiting_Unpriv \n"
" MPU_uxQueueMessagesWaiting_Priv: \n"
" b MPU_uxQueueMessagesWaitingImpl \n"
" MPU_uxQueueMessagesWaiting_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory"
);
}
/*-----------------------------------------------------------*/
UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_uxQueueSpacesAvailableImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_uxQueueSpacesAvailable_Unpriv \n"
" MPU_uxQueueSpacesAvailable_Priv: \n"
" b MPU_uxQueueSpacesAvailableImpl \n"
" MPU_uxQueueSpacesAvailable_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue,
void * const pvBuffer,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue,
void * const pvBuffer,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xQueueReceiveImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xQueueReceive_Unpriv \n"
" MPU_xQueueReceive_Priv: \n"
" b MPU_xQueueReceiveImpl \n"
" MPU_xQueueReceive_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory"
);
}
/*-----------------------------------------------------------*/
BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
void * const pvBuffer,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
void * const pvBuffer,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xQueuePeekImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xQueuePeek_Unpriv \n"
" MPU_xQueuePeek_Priv: \n"
" b MPU_xQueuePeekImpl \n"
" MPU_xQueuePeek_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory"
);
}
/*-----------------------------------------------------------*/
BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xQueueSemaphoreTakeImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xQueueSemaphoreTake_Unpriv \n"
" MPU_xQueueSemaphoreTake_Priv: \n"
" b MPU_xQueueSemaphoreTakeImpl \n"
" MPU_xQueueSemaphoreTake_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory"
);
}
/*-----------------------------------------------------------*/
#if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) )
TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xQueueGetMutexHolderImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xQueueGetMutexHolder_Unpriv \n"
" MPU_xQueueGetMutexHolder_Priv: \n"
" b MPU_xQueueGetMutexHolderImpl \n"
" MPU_xQueueGetMutexHolder_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory"
);
}
#endif /* if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) ) */
/*-----------------------------------------------------------*/
#if ( configUSE_RECURSIVE_MUTEXES == 1 )
BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xQueueTakeMutexRecursiveImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xQueueTakeMutexRecursive_Unpriv \n"
" MPU_xQueueTakeMutexRecursive_Priv: \n"
" b MPU_xQueueTakeMutexRecursiveImpl \n"
" MPU_xQueueTakeMutexRecursive_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory"
);
}
#endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_RECURSIVE_MUTEXES == 1 )
BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xQueueGiveMutexRecursiveImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xQueueGiveMutexRecursive_Unpriv \n"
" MPU_xQueueGiveMutexRecursive_Priv: \n"
" b MPU_xQueueGiveMutexRecursiveImpl \n"
" MPU_xQueueGiveMutexRecursive_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory"
);
}
#endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_QUEUE_SETS == 1 )
QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
const TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
const TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xQueueSelectFromSetImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xQueueSelectFromSet_Unpriv \n"
" MPU_xQueueSelectFromSet_Priv: \n"
" b MPU_xQueueSelectFromSetImpl \n"
" MPU_xQueueSelectFromSet_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory"
);
}
#endif /* if ( configUSE_QUEUE_SETS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_QUEUE_SETS == 1 )
BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
QueueSetHandle_t xQueueSet ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
QueueSetHandle_t xQueueSet ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xQueueAddToSetImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xQueueAddToSet_Unpriv \n"
" MPU_xQueueAddToSet_Priv: \n"
" b MPU_xQueueAddToSetImpl \n"
" MPU_xQueueAddToSet_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory"
);
}
#endif /* if ( configUSE_QUEUE_SETS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configQUEUE_REGISTRY_SIZE > 0 )
void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
const char * pcName ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
const char * pcName ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vQueueAddToRegistryImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vQueueAddToRegistry_Unpriv \n"
" MPU_vQueueAddToRegistry_Priv: \n"
" b MPU_vQueueAddToRegistryImpl \n"
" MPU_vQueueAddToRegistry_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory"
);
}
#endif /* if ( configQUEUE_REGISTRY_SIZE > 0 ) */
/*-----------------------------------------------------------*/
#if ( configQUEUE_REGISTRY_SIZE > 0 )
void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vQueueUnregisterQueueImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vQueueUnregisterQueue_Unpriv \n"
" MPU_vQueueUnregisterQueue_Priv: \n"
" b MPU_vQueueUnregisterQueueImpl \n"
" MPU_vQueueUnregisterQueue_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory"
);
}
#endif /* if ( configQUEUE_REGISTRY_SIZE > 0 ) */
/*-----------------------------------------------------------*/
#if ( configQUEUE_REGISTRY_SIZE > 0 )
const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_pcQueueGetNameImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_pcQueueGetName_Unpriv \n"
" MPU_pcQueueGetName_Priv: \n"
" b MPU_pcQueueGetNameImpl \n"
" MPU_pcQueueGetName_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory"
);
}
#endif /* if ( configQUEUE_REGISTRY_SIZE > 0 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TIMERS == 1 )
void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_pvTimerGetTimerIDImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_pvTimerGetTimerID_Unpriv \n"
" MPU_pvTimerGetTimerID_Priv: \n"
" b MPU_pvTimerGetTimerIDImpl \n"
" MPU_pvTimerGetTimerID_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TIMERS == 1 )
void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
void * pvNewID ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
void * pvNewID ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vTimerSetTimerIDImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vTimerSetTimerID_Unpriv \n"
" MPU_vTimerSetTimerID_Priv: \n"
" b MPU_vTimerSetTimerIDImpl \n"
" MPU_vTimerSetTimerID_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTimerIsTimerActiveImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTimerIsTimerActive_Unpriv \n"
" MPU_xTimerIsTimerActive_Priv: \n"
" b MPU_xTimerIsTimerActiveImpl \n"
" MPU_xTimerIsTimerActive_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TIMERS == 1 )
TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv \n"
" MPU_xTimerGetTimerDaemonTaskHandle_Priv: \n"
" b MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
" MPU_xTimerGenericCommandFromTask_Priv: \n"
" b MPU_xTimerGenericCommandFromTaskImpl \n"
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTimerGenericCommandFromTask ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TIMERS == 1 )
const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_pcTimerGetNameImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_pcTimerGetName_Unpriv \n"
" MPU_pcTimerGetName_Priv: \n"
" b MPU_pcTimerGetNameImpl \n"
" MPU_pcTimerGetName_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TIMERS == 1 )
void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
const BaseType_t xAutoReload ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
const BaseType_t xAutoReload ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vTimerSetReloadModeImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vTimerSetReloadMode_Unpriv \n"
" MPU_vTimerSetReloadMode_Priv: \n"
" b MPU_vTimerSetReloadModeImpl \n"
" MPU_vTimerSetReloadMode_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGetReloadMode( TimerHandle_t xTimer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGetReloadMode( TimerHandle_t xTimer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTimerGetReloadModeImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTimerGetReloadMode_Unpriv \n"
" MPU_xTimerGetReloadMode_Priv: \n"
" b MPU_xTimerGetReloadModeImpl \n"
" MPU_xTimerGetReloadMode_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TIMERS == 1 )
UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_uxTimerGetReloadModeImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_uxTimerGetReloadMode_Unpriv \n"
" MPU_uxTimerGetReloadMode_Priv: \n"
" b MPU_uxTimerGetReloadModeImpl \n"
" MPU_uxTimerGetReloadMode_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TIMERS == 1 )
TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTimerGetPeriodImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTimerGetPeriod_Unpriv \n"
" MPU_xTimerGetPeriod_Priv: \n"
" b MPU_xTimerGetPeriodImpl \n"
" MPU_xTimerGetPeriod_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_TIMERS == 1 )
TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTimerGetExpiryTimeImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xTimerGetExpiryTime_Unpriv \n"
" MPU_xTimerGetExpiryTime_Priv: \n"
" b MPU_xTimerGetExpiryTimeImpl \n"
" MPU_xTimerGetExpiryTime_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xEventGroupWaitBitsImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xEventGroupWaitBits_Unpriv \n"
" MPU_xEventGroupWaitBits_Priv: \n"
" b MPU_xEventGroupWaitBitsImpl \n"
" MPU_xEventGroupWaitBits_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory"
);
}
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToClear ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToClear ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xEventGroupClearBitsImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xEventGroupClearBits_Unpriv \n"
" MPU_xEventGroupClearBits_Priv: \n"
" b MPU_xEventGroupClearBitsImpl \n"
" MPU_xEventGroupClearBits_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory"
);
}
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xEventGroupSetBitsImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xEventGroupSetBits_Unpriv \n"
" MPU_xEventGroupSetBits_Priv: \n"
" b MPU_xEventGroupSetBitsImpl \n"
" MPU_xEventGroupSetBits_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory"
);
}
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet,
const EventBits_t uxBitsToWaitFor,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet,
const EventBits_t uxBitsToWaitFor,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xEventGroupSyncImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xEventGroupSync_Unpriv \n"
" MPU_xEventGroupSync_Priv: \n"
" b MPU_xEventGroupSyncImpl \n"
" MPU_xEventGroupSync_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory"
);
}
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/
#if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) )
UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_uxEventGroupGetNumberImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_uxEventGroupGetNumber_Unpriv \n"
" MPU_uxEventGroupGetNumber_Priv: \n"
" b MPU_uxEventGroupGetNumberImpl \n"
" MPU_uxEventGroupGetNumber_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory"
);
}
#endif /* #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) ) */
/*-----------------------------------------------------------*/
#if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) )
void MPU_vEventGroupSetNumber( void * xEventGroup,
UBaseType_t uxEventGroupNumber ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
void MPU_vEventGroupSetNumber( void * xEventGroup,
UBaseType_t uxEventGroupNumber ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_vEventGroupSetNumberImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_vEventGroupSetNumber_Unpriv \n"
" MPU_vEventGroupSetNumber_Priv: \n"
" b MPU_vEventGroupSetNumberImpl \n"
" MPU_vEventGroupSetNumber_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory"
);
}
#endif /* #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) ) */
/*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
const void * pvTxData,
size_t xDataLengthBytes,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
const void * pvTxData,
size_t xDataLengthBytes,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xStreamBufferSendImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xStreamBufferSend_Unpriv \n"
" MPU_xStreamBufferSend_Priv: \n"
" b MPU_xStreamBufferSendImpl \n"
" MPU_xStreamBufferSend_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory"
);
}
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
void * pvRxData,
size_t xBufferLengthBytes,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
void * pvRxData,
size_t xBufferLengthBytes,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xStreamBufferReceiveImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xStreamBufferReceive_Unpriv \n"
" MPU_xStreamBufferReceive_Priv: \n"
" b MPU_xStreamBufferReceiveImpl \n"
" MPU_xStreamBufferReceive_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory"
);
}
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xStreamBufferIsFullImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xStreamBufferIsFull_Unpriv \n"
" MPU_xStreamBufferIsFull_Priv: \n"
" b MPU_xStreamBufferIsFullImpl \n"
" MPU_xStreamBufferIsFull_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory"
);
}
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xStreamBufferIsEmptyImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xStreamBufferIsEmpty_Unpriv \n"
" MPU_xStreamBufferIsEmpty_Priv: \n"
" b MPU_xStreamBufferIsEmptyImpl \n"
" MPU_xStreamBufferIsEmpty_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory"
);
}
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xStreamBufferSpacesAvailableImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xStreamBufferSpacesAvailable_Unpriv \n"
" MPU_xStreamBufferSpacesAvailable_Priv: \n"
" b MPU_xStreamBufferSpacesAvailableImpl \n"
" MPU_xStreamBufferSpacesAvailable_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory"
);
}
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xStreamBufferBytesAvailableImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xStreamBufferBytesAvailable_Unpriv \n"
" MPU_xStreamBufferBytesAvailable_Priv: \n"
" b MPU_xStreamBufferBytesAvailableImpl \n"
" MPU_xStreamBufferBytesAvailable_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory"
);
}
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
size_t xTriggerLevel ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
size_t xTriggerLevel ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xStreamBufferSetTriggerLevelImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xStreamBufferSetTriggerLevel_Unpriv \n"
" MPU_xStreamBufferSetTriggerLevel_Priv: \n"
" b MPU_xStreamBufferSetTriggerLevelImpl \n"
" MPU_xStreamBufferSetTriggerLevel_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory"
);
}
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xStreamBufferNextMessageLengthBytesImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" pop {r0, r1} \n"
" bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv \n"
" MPU_xStreamBufferNextMessageLengthBytes_Priv: \n"
" b MPU_xStreamBufferNextMessageLengthBytesImpl \n"
" MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n"
" svc %0 \n"
" \n"
: : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory"
);
}
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/
#endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */