Update system call entry mechanism (#898)

Earlier the System Call entry from an unprivileged task
looked like:

1. SVC for entering system call.
2. System call implementation.
3. SVC for exiting system call.

Now, the system call entry needs to make only one SVC
call and everything else is handled internally.

This PR also makes the following changes:

1. Update the Access Control List (ACL) mechanism to
    grant access to all the kernel objects before the
    scheduler is started.
2. Add one struct param for system calls with 5 parameters.
    This removes the need for special handling for system
    calls with 5 parameters.
3. Remove raise privilege SVC when MPU wrapper v2 is used.
4. Add additional run time parameter checks to MPU wrappers
    for xTaskGenericNotify and xQueueTakeMutexRecursive APIs.
This commit is contained in:
Gaurav-Aggarwal-AWS 2023-11-23 10:47:47 +05:30 committed by GitHub
parent 4ff01a7a4a
commit 76be28cdc6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
114 changed files with 7521 additions and 16320 deletions

View file

@ -38,6 +38,8 @@
#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
/*-----------------------------------------------------------*/
@ -68,11 +70,8 @@
" MPU_xTaskDelayUntil_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskDelayUntilImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory"
);
}
@ -101,11 +100,8 @@
" MPU_xTaskAbortDelay_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskAbortDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory"
);
}
@ -134,11 +130,8 @@
" MPU_vTaskDelay_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory"
);
}
@ -167,11 +160,8 @@
" MPU_uxTaskPriorityGet_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTaskPriorityGetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory"
);
}
@ -200,11 +190,8 @@
" MPU_eTaskGetState_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_eTaskGetStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory"
);
}
@ -239,11 +226,8 @@
" MPU_vTaskGetInfo_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskGetInfoImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory"
);
}
@ -272,11 +256,8 @@
" MPU_xTaskGetIdleTaskHandle_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGetIdleTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory"
);
}
@ -305,11 +286,8 @@
" MPU_vTaskSuspend_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskSuspendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory"
);
}
@ -338,11 +316,8 @@
" MPU_vTaskResume_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskResumeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskResume ) : "memory"
);
}
@ -369,11 +344,8 @@
" MPU_xTaskGetTickCount_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGetTickCountImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -398,11 +370,8 @@
" MPU_uxTaskGetNumberOfTasks_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTaskGetNumberOfTasksImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -429,11 +398,8 @@
" MPU_ulTaskGetRunTimeCounter_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGetRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory"
);
}
@ -462,11 +428,8 @@
" MPU_ulTaskGetRunTimePercent_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGetRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory"
);
}
@ -495,11 +458,8 @@
" MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory"
);
}
@ -528,11 +488,8 @@
" MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory"
);
}
@ -563,11 +520,8 @@
" MPU_vTaskSetApplicationTaskTag_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskSetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory"
);
}
@ -596,11 +550,8 @@
" MPU_xTaskGetApplicationTaskTag_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory"
);
}
@ -633,11 +584,8 @@
" MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory"
);
}
@ -668,11 +616,8 @@
" MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory"
);
}
@ -705,11 +650,8 @@
" MPU_uxTaskGetSystemState_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTaskGetSystemStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory"
);
}
@ -738,11 +680,8 @@
" MPU_uxTaskGetStackHighWaterMark_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMarkImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory"
);
}
@ -771,11 +710,8 @@
" MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMark2Impl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory"
);
}
@ -804,11 +740,8 @@
" MPU_xTaskGetCurrentTaskHandle_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGetCurrentTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory"
);
}
@ -837,11 +770,8 @@
" MPU_xTaskGetSchedulerState_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGetSchedulerStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory"
);
}
@ -868,11 +798,8 @@
" MPU_vTaskSetTimeOutState_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskSetTimeOutStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -899,28 +826,17 @@
" MPU_xTaskCheckForTimeOut_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskCheckForTimeOutImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory"
);
}
/*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -938,11 +854,8 @@
" MPU_xTaskGenericNotify_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory"
);
}
@ -951,17 +864,9 @@
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -979,11 +884,8 @@
" MPU_xTaskGenericNotifyWait_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyWaitImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory"
);
}
@ -1016,11 +918,8 @@
" MPU_ulTaskGenericNotifyTake_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGenericNotifyTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory"
);
}
@ -1051,11 +950,8 @@
" MPU_xTaskGenericNotifyStateClear_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyStateClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory"
);
}
@ -1088,11 +984,8 @@
" MPU_ulTaskGenericNotifyValueClear_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGenericNotifyValueClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory"
);
}
@ -1125,11 +1018,8 @@
" MPU_xQueueGenericSend_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueGenericSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1154,11 +1044,8 @@
" MPU_uxQueueMessagesWaiting_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxQueueMessagesWaitingImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1183,11 +1070,8 @@
" MPU_uxQueueSpacesAvailable_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxQueueSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1216,11 +1100,8 @@
" MPU_xQueueReceive_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1249,11 +1130,8 @@
" MPU_xQueuePeek_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueuePeekImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1280,11 +1158,8 @@
" MPU_xQueueSemaphoreTake_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueSemaphoreTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1311,11 +1186,8 @@
" MPU_xQueueGetMutexHolder_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueGetMutexHolderImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory"
);
}
@ -1346,11 +1218,8 @@
" MPU_xQueueTakeMutexRecursive_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueTakeMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory"
);
}
@ -1379,11 +1248,8 @@
" MPU_xQueueGiveMutexRecursive_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueGiveMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory"
);
}
@ -1414,11 +1280,8 @@
" MPU_xQueueSelectFromSet_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueSelectFromSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory"
);
}
@ -1449,11 +1312,8 @@
" MPU_xQueueAddToSet_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueAddToSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory"
);
}
@ -1484,11 +1344,8 @@
" MPU_vQueueAddToRegistry_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vQueueAddToRegistryImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory"
);
}
@ -1517,11 +1374,8 @@
" MPU_vQueueUnregisterQueue_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vQueueUnregisterQueueImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory"
);
}
@ -1550,11 +1404,8 @@
" MPU_pcQueueGetName_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_pcQueueGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory"
);
}
@ -1583,11 +1434,8 @@
" MPU_pvTimerGetTimerID_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_pvTimerGetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory"
);
}
@ -1618,11 +1466,8 @@
" MPU_vTimerSetTimerID_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTimerSetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory"
);
}
@ -1651,11 +1496,8 @@
" MPU_xTimerIsTimerActive_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerIsTimerActiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory"
);
}
@ -1684,11 +1526,8 @@
" MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory"
);
}
@ -1697,17 +1536,9 @@
#if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -1725,11 +1556,8 @@
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGenericCommandFromTask ) : "memory"
);
}
@ -1758,11 +1586,8 @@
" MPU_pcTimerGetName_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_pcTimerGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory"
);
}
@ -1793,11 +1618,8 @@
" MPU_vTimerSetReloadMode_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTimerSetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory"
);
}
@ -1826,11 +1648,8 @@
" MPU_xTimerGetReloadMode_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory"
);
}
@ -1859,11 +1678,8 @@
" MPU_uxTimerGetReloadMode_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory"
);
}
@ -1892,11 +1708,8 @@
" MPU_xTimerGetPeriod_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGetPeriodImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory"
);
}
@ -1925,28 +1738,17 @@
" MPU_xTimerGetExpiryTime_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGetExpiryTimeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -1964,11 +1766,8 @@
" MPU_xEventGroupWaitBits_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xEventGroupWaitBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1995,11 +1794,8 @@
" MPU_xEventGroupClearBits_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xEventGroupClearBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2026,11 +1822,8 @@
" MPU_xEventGroupSetBits_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xEventGroupSetBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2061,11 +1854,8 @@
" MPU_xEventGroupSync_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xEventGroupSyncImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2092,11 +1882,8 @@
" MPU_uxEventGroupGetNumber_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxEventGroupGetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory"
);
}
@ -2127,11 +1914,8 @@
" MPU_vEventGroupSetNumber_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vEventGroupSetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory"
);
}
@ -2164,11 +1948,8 @@
" MPU_xStreamBufferSend_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2199,11 +1980,8 @@
" MPU_xStreamBufferReceive_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2228,11 +2006,8 @@
" MPU_xStreamBufferIsFull_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferIsFullImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2257,11 +2032,8 @@
" MPU_xStreamBufferIsEmpty_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferIsEmptyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2286,11 +2058,8 @@
" MPU_xStreamBufferSpacesAvailable_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2315,11 +2084,8 @@
" MPU_xStreamBufferBytesAvailable_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferBytesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2346,11 +2112,8 @@
" MPU_xStreamBufferSetTriggerLevel_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSetTriggerLevelImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2375,11 +2138,8 @@
" MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferNextMessageLengthBytesImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory"
);
}
/*-----------------------------------------------------------*/

View file

@ -36,6 +36,9 @@
/* Portasm includes. */
#include "portasm.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
/* MPU_WRAPPERS_INCLUDED_FROM_API_FILE is needed to be defined only for the
* header files. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
@ -538,7 +541,6 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
".syntax unified \n"
".extern vPortSVCHandler_C \n"
".extern vSystemCallEnter \n"
".extern vSystemCallEnter_1 \n"
".extern vSystemCallExit \n"
" \n"
"movs r0, #4 \n"
@ -553,26 +555,22 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
" b route_svc \n"
" \n"
"route_svc: \n"
" ldr r2, [r0, #24] \n"
" subs r2, #2 \n"
" ldrb r3, [r2, #0] \n"
" cmp r3, %0 \n"
" beq system_call_enter \n"
" cmp r3, %1 \n"
" beq system_call_enter_1 \n"
" cmp r3, %2 \n"
" ldr r3, [r0, #24] \n"
" subs r3, #2 \n"
" ldrb r2, [r3, #0] \n"
" cmp r2, %0 \n"
" blt system_call_enter \n"
" cmp r2, %1 \n"
" beq system_call_exit \n"
" b vPortSVCHandler_C \n"
" \n"
"system_call_enter: \n"
" b vSystemCallEnter \n"
"system_call_enter_1: \n"
" b vSystemCallEnter_1 \n"
"system_call_exit: \n"
" b vSystemCallExit \n"
" \n"
: /* No outputs. */
: "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "i" ( NUM_SYSTEM_CALLS ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "r0", "r1", "r2", "r3", "memory"
);
}

View file

@ -38,6 +38,8 @@
#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
/*-----------------------------------------------------------*/
@ -68,11 +70,8 @@
" MPU_xTaskDelayUntil_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskDelayUntilImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory"
);
}
@ -101,11 +100,8 @@
" MPU_xTaskAbortDelay_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskAbortDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory"
);
}
@ -134,11 +130,8 @@
" MPU_vTaskDelay_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory"
);
}
@ -167,11 +160,8 @@
" MPU_uxTaskPriorityGet_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTaskPriorityGetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory"
);
}
@ -200,11 +190,8 @@
" MPU_eTaskGetState_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_eTaskGetStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory"
);
}
@ -239,11 +226,8 @@
" MPU_vTaskGetInfo_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskGetInfoImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory"
);
}
@ -272,11 +256,8 @@
" MPU_xTaskGetIdleTaskHandle_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGetIdleTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory"
);
}
@ -305,11 +286,8 @@
" MPU_vTaskSuspend_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskSuspendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory"
);
}
@ -338,11 +316,8 @@
" MPU_vTaskResume_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskResumeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskResume ) : "memory"
);
}
@ -369,11 +344,8 @@
" MPU_xTaskGetTickCount_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGetTickCountImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -398,11 +370,8 @@
" MPU_uxTaskGetNumberOfTasks_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTaskGetNumberOfTasksImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -429,11 +398,8 @@
" MPU_ulTaskGetRunTimeCounter_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGetRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory"
);
}
@ -462,11 +428,8 @@
" MPU_ulTaskGetRunTimePercent_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGetRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory"
);
}
@ -495,11 +458,8 @@
" MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory"
);
}
@ -528,11 +488,8 @@
" MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory"
);
}
@ -563,11 +520,8 @@
" MPU_vTaskSetApplicationTaskTag_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskSetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory"
);
}
@ -596,11 +550,8 @@
" MPU_xTaskGetApplicationTaskTag_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory"
);
}
@ -633,11 +584,8 @@
" MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory"
);
}
@ -668,11 +616,8 @@
" MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory"
);
}
@ -705,11 +650,8 @@
" MPU_uxTaskGetSystemState_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTaskGetSystemStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory"
);
}
@ -738,11 +680,8 @@
" MPU_uxTaskGetStackHighWaterMark_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMarkImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory"
);
}
@ -771,11 +710,8 @@
" MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMark2Impl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory"
);
}
@ -804,11 +740,8 @@
" MPU_xTaskGetCurrentTaskHandle_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGetCurrentTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory"
);
}
@ -837,11 +770,8 @@
" MPU_xTaskGetSchedulerState_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGetSchedulerStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory"
);
}
@ -868,11 +798,8 @@
" MPU_vTaskSetTimeOutState_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTaskSetTimeOutStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -899,28 +826,17 @@
" MPU_xTaskCheckForTimeOut_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskCheckForTimeOutImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory"
);
}
/*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -938,11 +854,8 @@
" MPU_xTaskGenericNotify_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory"
);
}
@ -951,17 +864,9 @@
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -979,11 +884,8 @@
" MPU_xTaskGenericNotifyWait_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyWaitImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory"
);
}
@ -1016,11 +918,8 @@
" MPU_ulTaskGenericNotifyTake_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGenericNotifyTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory"
);
}
@ -1051,11 +950,8 @@
" MPU_xTaskGenericNotifyStateClear_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyStateClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory"
);
}
@ -1088,11 +984,8 @@
" MPU_ulTaskGenericNotifyValueClear_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_ulTaskGenericNotifyValueClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory"
);
}
@ -1125,11 +1018,8 @@
" MPU_xQueueGenericSend_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueGenericSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1154,11 +1044,8 @@
" MPU_uxQueueMessagesWaiting_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxQueueMessagesWaitingImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1183,11 +1070,8 @@
" MPU_uxQueueSpacesAvailable_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxQueueSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1216,11 +1100,8 @@
" MPU_xQueueReceive_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1249,11 +1130,8 @@
" MPU_xQueuePeek_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueuePeekImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1280,11 +1158,8 @@
" MPU_xQueueSemaphoreTake_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueSemaphoreTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1311,11 +1186,8 @@
" MPU_xQueueGetMutexHolder_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueGetMutexHolderImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory"
);
}
@ -1346,11 +1218,8 @@
" MPU_xQueueTakeMutexRecursive_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueTakeMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory"
);
}
@ -1379,11 +1248,8 @@
" MPU_xQueueGiveMutexRecursive_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueGiveMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory"
);
}
@ -1414,11 +1280,8 @@
" MPU_xQueueSelectFromSet_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueSelectFromSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory"
);
}
@ -1449,11 +1312,8 @@
" MPU_xQueueAddToSet_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xQueueAddToSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory"
);
}
@ -1484,11 +1344,8 @@
" MPU_vQueueAddToRegistry_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vQueueAddToRegistryImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory"
);
}
@ -1517,11 +1374,8 @@
" MPU_vQueueUnregisterQueue_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vQueueUnregisterQueueImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory"
);
}
@ -1550,11 +1404,8 @@
" MPU_pcQueueGetName_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_pcQueueGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory"
);
}
@ -1583,11 +1434,8 @@
" MPU_pvTimerGetTimerID_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_pvTimerGetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory"
);
}
@ -1618,11 +1466,8 @@
" MPU_vTimerSetTimerID_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTimerSetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory"
);
}
@ -1651,11 +1496,8 @@
" MPU_xTimerIsTimerActive_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerIsTimerActiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory"
);
}
@ -1684,11 +1526,8 @@
" MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory"
);
}
@ -1697,17 +1536,9 @@
#if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -1725,11 +1556,8 @@
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGenericCommandFromTask ) : "memory"
);
}
@ -1758,11 +1586,8 @@
" MPU_pcTimerGetName_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_pcTimerGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory"
);
}
@ -1793,11 +1618,8 @@
" MPU_vTimerSetReloadMode_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vTimerSetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory"
);
}
@ -1826,11 +1648,8 @@
" MPU_xTimerGetReloadMode_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory"
);
}
@ -1859,11 +1678,8 @@
" MPU_uxTimerGetReloadMode_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory"
);
}
@ -1892,11 +1708,8 @@
" MPU_xTimerGetPeriod_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGetPeriodImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory"
);
}
@ -1925,28 +1738,17 @@
" MPU_xTimerGetExpiryTime_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGetExpiryTimeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -1964,11 +1766,8 @@
" MPU_xEventGroupWaitBits_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xEventGroupWaitBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1995,11 +1794,8 @@
" MPU_xEventGroupClearBits_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xEventGroupClearBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2026,11 +1822,8 @@
" MPU_xEventGroupSetBits_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xEventGroupSetBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2061,11 +1854,8 @@
" MPU_xEventGroupSync_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xEventGroupSyncImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2092,11 +1882,8 @@
" MPU_uxEventGroupGetNumber_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_uxEventGroupGetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory"
);
}
@ -2127,11 +1914,8 @@
" MPU_vEventGroupSetNumber_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_vEventGroupSetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory"
);
}
@ -2164,11 +1948,8 @@
" MPU_xStreamBufferSend_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2199,11 +1980,8 @@
" MPU_xStreamBufferReceive_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2228,11 +2006,8 @@
" MPU_xStreamBufferIsFull_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferIsFullImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2257,11 +2032,8 @@
" MPU_xStreamBufferIsEmpty_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferIsEmptyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2286,11 +2058,8 @@
" MPU_xStreamBufferSpacesAvailable_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2315,11 +2084,8 @@
" MPU_xStreamBufferBytesAvailable_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferBytesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2346,11 +2112,8 @@
" MPU_xStreamBufferSetTriggerLevel_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSetTriggerLevelImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2375,11 +2138,8 @@
" MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xStreamBufferNextMessageLengthBytesImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory"
);
}
/*-----------------------------------------------------------*/

View file

@ -36,6 +36,9 @@
/* Portasm includes. */
#include "portasm.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
/* MPU_WRAPPERS_INCLUDED_FROM_API_FILE is needed to be defined only for the
* header files. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
@ -478,7 +481,6 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
".syntax unified \n"
".extern vPortSVCHandler_C \n"
".extern vSystemCallEnter \n"
".extern vSystemCallEnter_1 \n"
".extern vSystemCallExit \n"
" \n"
"movs r0, #4 \n"
@ -493,26 +495,22 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
" b route_svc \n"
" \n"
"route_svc: \n"
" ldr r2, [r0, #24] \n"
" subs r2, #2 \n"
" ldrb r3, [r2, #0] \n"
" cmp r3, %0 \n"
" beq system_call_enter \n"
" cmp r3, %1 \n"
" beq system_call_enter_1 \n"
" cmp r3, %2 \n"
" ldr r3, [r0, #24] \n"
" subs r3, #2 \n"
" ldrb r2, [r3, #0] \n"
" cmp r2, %0 \n"
" blt system_call_enter \n"
" cmp r2, %1 \n"
" beq system_call_exit \n"
" b vPortSVCHandler_C \n"
" \n"
"system_call_enter: \n"
" b vSystemCallEnter \n"
"system_call_enter_1: \n"
" b vSystemCallEnter_1 \n"
"system_call_exit: \n"
" b vSystemCallExit \n"
" \n"
: /* No outputs. */
: "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "i" ( NUM_SYSTEM_CALLS ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "r0", "r1", "r2", "r3", "memory"
);
}

View file

@ -38,6 +38,8 @@
#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
/*-----------------------------------------------------------*/
@ -67,11 +69,8 @@
" MPU_xTaskDelayUntil_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskDelayUntilImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory"
);
}
@ -99,11 +98,8 @@
" MPU_xTaskAbortDelay_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskAbortDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory"
);
}
@ -131,11 +127,8 @@
" MPU_vTaskDelay_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory"
);
}
@ -163,11 +156,8 @@
" MPU_uxTaskPriorityGet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTaskPriorityGetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory"
);
}
@ -195,11 +185,8 @@
" MPU_eTaskGetState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_eTaskGetStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory"
);
}
@ -233,11 +220,8 @@
" MPU_vTaskGetInfo_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskGetInfoImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory"
);
}
@ -265,11 +249,8 @@
" MPU_xTaskGetIdleTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGetIdleTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory"
);
}
@ -297,11 +278,8 @@
" MPU_vTaskSuspend_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskSuspendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory"
);
}
@ -329,11 +307,8 @@
" MPU_vTaskResume_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskResumeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskResume ) : "memory"
);
}
@ -359,11 +334,8 @@
" MPU_xTaskGetTickCount_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGetTickCountImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -387,11 +359,8 @@
" MPU_uxTaskGetNumberOfTasks_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTaskGetNumberOfTasksImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -417,11 +386,8 @@
" MPU_ulTaskGetRunTimeCounter_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGetRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory"
);
}
@ -449,11 +415,8 @@
" MPU_ulTaskGetRunTimePercent_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGetRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory"
);
}
@ -481,11 +444,8 @@
" MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory"
);
}
@ -513,11 +473,8 @@
" MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory"
);
}
@ -547,11 +504,8 @@
" MPU_vTaskSetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskSetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory"
);
}
@ -579,11 +533,8 @@
" MPU_xTaskGetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory"
);
}
@ -615,11 +566,8 @@
" MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory"
);
}
@ -649,11 +597,8 @@
" MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory"
);
}
@ -685,11 +630,8 @@
" MPU_uxTaskGetSystemState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTaskGetSystemStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory"
);
}
@ -717,11 +659,8 @@
" MPU_uxTaskGetStackHighWaterMark_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMarkImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory"
);
}
@ -749,11 +688,8 @@
" MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMark2Impl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory"
);
}
@ -781,11 +717,8 @@
" MPU_xTaskGetCurrentTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGetCurrentTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory"
);
}
@ -813,11 +746,8 @@
" MPU_xTaskGetSchedulerState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGetSchedulerStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory"
);
}
@ -843,11 +773,8 @@
" MPU_vTaskSetTimeOutState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskSetTimeOutStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -873,28 +800,17 @@
" MPU_xTaskCheckForTimeOut_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskCheckForTimeOutImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory"
);
}
/*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -911,11 +827,8 @@
" MPU_xTaskGenericNotify_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory"
);
}
@ -924,17 +837,9 @@
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -951,11 +856,8 @@
" MPU_xTaskGenericNotifyWait_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyWaitImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory"
);
}
@ -987,11 +889,8 @@
" MPU_ulTaskGenericNotifyTake_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGenericNotifyTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory"
);
}
@ -1021,11 +920,8 @@
" MPU_xTaskGenericNotifyStateClear_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyStateClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory"
);
}
@ -1057,11 +953,8 @@
" MPU_ulTaskGenericNotifyValueClear_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGenericNotifyValueClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory"
);
}
@ -1093,11 +986,8 @@
" MPU_xQueueGenericSend_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueGenericSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1121,11 +1011,8 @@
" MPU_uxQueueMessagesWaiting_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxQueueMessagesWaitingImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1149,11 +1036,8 @@
" MPU_uxQueueSpacesAvailable_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxQueueSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1181,11 +1065,8 @@
" MPU_xQueueReceive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1213,11 +1094,8 @@
" MPU_xQueuePeek_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueuePeekImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1243,11 +1121,8 @@
" MPU_xQueueSemaphoreTake_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueSemaphoreTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1273,11 +1148,8 @@
" MPU_xQueueGetMutexHolder_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueGetMutexHolderImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory"
);
}
@ -1307,11 +1179,8 @@
" MPU_xQueueTakeMutexRecursive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueTakeMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory"
);
}
@ -1339,11 +1208,8 @@
" MPU_xQueueGiveMutexRecursive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueGiveMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory"
);
}
@ -1373,11 +1239,8 @@
" MPU_xQueueSelectFromSet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueSelectFromSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory"
);
}
@ -1407,11 +1270,8 @@
" MPU_xQueueAddToSet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueAddToSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory"
);
}
@ -1441,11 +1301,8 @@
" MPU_vQueueAddToRegistry_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vQueueAddToRegistryImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory"
);
}
@ -1473,11 +1330,8 @@
" MPU_vQueueUnregisterQueue_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vQueueUnregisterQueueImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory"
);
}
@ -1505,11 +1359,8 @@
" MPU_pcQueueGetName_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_pcQueueGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory"
);
}
@ -1537,11 +1388,8 @@
" MPU_pvTimerGetTimerID_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_pvTimerGetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory"
);
}
@ -1571,11 +1419,8 @@
" MPU_vTimerSetTimerID_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTimerSetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory"
);
}
@ -1603,11 +1448,8 @@
" MPU_xTimerIsTimerActive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerIsTimerActiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory"
);
}
@ -1635,11 +1477,8 @@
" MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory"
);
}
@ -1648,17 +1487,9 @@
#if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -1675,11 +1506,8 @@
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGenericCommandFromTask ) : "memory"
);
}
@ -1707,11 +1535,8 @@
" MPU_pcTimerGetName_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_pcTimerGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory"
);
}
@ -1741,11 +1566,8 @@
" MPU_vTimerSetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTimerSetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory"
);
}
@ -1773,11 +1595,8 @@
" MPU_xTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory"
);
}
@ -1805,11 +1624,8 @@
" MPU_uxTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory"
);
}
@ -1837,11 +1653,8 @@
" MPU_xTimerGetPeriod_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGetPeriodImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory"
);
}
@ -1869,28 +1682,17 @@
" MPU_xTimerGetExpiryTime_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGetExpiryTimeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -1907,11 +1709,8 @@
" MPU_xEventGroupWaitBits_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xEventGroupWaitBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1937,11 +1736,8 @@
" MPU_xEventGroupClearBits_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xEventGroupClearBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1967,11 +1763,8 @@
" MPU_xEventGroupSetBits_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xEventGroupSetBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2001,11 +1794,8 @@
" MPU_xEventGroupSync_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xEventGroupSyncImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2031,11 +1821,8 @@
" MPU_uxEventGroupGetNumber_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxEventGroupGetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory"
);
}
@ -2065,11 +1852,8 @@
" MPU_vEventGroupSetNumber_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vEventGroupSetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory"
);
}
@ -2101,11 +1885,8 @@
" MPU_xStreamBufferSend_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2135,11 +1916,8 @@
" MPU_xStreamBufferReceive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2163,11 +1941,8 @@
" MPU_xStreamBufferIsFull_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferIsFullImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2191,11 +1966,8 @@
" MPU_xStreamBufferIsEmpty_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferIsEmptyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2219,11 +1991,8 @@
" MPU_xStreamBufferSpacesAvailable_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2247,11 +2016,8 @@
" MPU_xStreamBufferBytesAvailable_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferBytesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2277,11 +2043,8 @@
" MPU_xStreamBufferSetTriggerLevel_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSetTriggerLevelImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2305,11 +2068,8 @@
" MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferNextMessageLengthBytesImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory"
);
}
/*-----------------------------------------------------------*/

View file

@ -36,6 +36,9 @@
/* Portasm includes. */
#include "portasm.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
/* MPU_WRAPPERS_INCLUDED_FROM_API_FILE is needed to be defined only for the
* header files. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
@ -522,7 +525,6 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
".syntax unified \n"
".extern vPortSVCHandler_C \n"
".extern vSystemCallEnter \n"
".extern vSystemCallEnter_1 \n"
".extern vSystemCallExit \n"
" \n"
"tst lr, #4 \n"
@ -533,10 +535,8 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
"ldr r1, [r0, #24] \n"
"ldrb r2, [r1, #-2] \n"
"cmp r2, %0 \n"
"beq syscall_enter \n"
"blt syscall_enter \n"
"cmp r2, %1 \n"
"beq syscall_enter_1 \n"
"cmp r2, %2 \n"
"beq syscall_exit \n"
"b vPortSVCHandler_C \n"
" \n"
@ -544,16 +544,12 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
" mov r1, lr \n"
" b vSystemCallEnter \n"
" \n"
"syscall_enter_1: \n"
" mov r1, lr \n"
" b vSystemCallEnter_1 \n"
" \n"
"syscall_exit: \n"
" mov r1, lr \n"
" b vSystemCallExit \n"
" \n"
: /* No outputs. */
: "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "i" ( NUM_SYSTEM_CALLS ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "r0", "r1", "r2", "memory"
);
}

View file

@ -38,6 +38,8 @@
#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
/*-----------------------------------------------------------*/
@ -67,11 +69,8 @@
" MPU_xTaskDelayUntil_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskDelayUntilImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory"
);
}
@ -99,11 +98,8 @@
" MPU_xTaskAbortDelay_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskAbortDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory"
);
}
@ -131,11 +127,8 @@
" MPU_vTaskDelay_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory"
);
}
@ -163,11 +156,8 @@
" MPU_uxTaskPriorityGet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTaskPriorityGetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory"
);
}
@ -195,11 +185,8 @@
" MPU_eTaskGetState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_eTaskGetStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory"
);
}
@ -233,11 +220,8 @@
" MPU_vTaskGetInfo_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskGetInfoImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory"
);
}
@ -265,11 +249,8 @@
" MPU_xTaskGetIdleTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGetIdleTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory"
);
}
@ -297,11 +278,8 @@
" MPU_vTaskSuspend_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskSuspendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory"
);
}
@ -329,11 +307,8 @@
" MPU_vTaskResume_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskResumeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskResume ) : "memory"
);
}
@ -359,11 +334,8 @@
" MPU_xTaskGetTickCount_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGetTickCountImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -387,11 +359,8 @@
" MPU_uxTaskGetNumberOfTasks_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTaskGetNumberOfTasksImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -417,11 +386,8 @@
" MPU_ulTaskGetRunTimeCounter_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGetRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory"
);
}
@ -449,11 +415,8 @@
" MPU_ulTaskGetRunTimePercent_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGetRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory"
);
}
@ -481,11 +444,8 @@
" MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory"
);
}
@ -513,11 +473,8 @@
" MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory"
);
}
@ -547,11 +504,8 @@
" MPU_vTaskSetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskSetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory"
);
}
@ -579,11 +533,8 @@
" MPU_xTaskGetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory"
);
}
@ -615,11 +566,8 @@
" MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory"
);
}
@ -649,11 +597,8 @@
" MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory"
);
}
@ -685,11 +630,8 @@
" MPU_uxTaskGetSystemState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTaskGetSystemStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory"
);
}
@ -717,11 +659,8 @@
" MPU_uxTaskGetStackHighWaterMark_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMarkImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory"
);
}
@ -749,11 +688,8 @@
" MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMark2Impl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory"
);
}
@ -781,11 +717,8 @@
" MPU_xTaskGetCurrentTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGetCurrentTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory"
);
}
@ -813,11 +746,8 @@
" MPU_xTaskGetSchedulerState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGetSchedulerStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory"
);
}
@ -843,11 +773,8 @@
" MPU_vTaskSetTimeOutState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTaskSetTimeOutStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -873,28 +800,17 @@
" MPU_xTaskCheckForTimeOut_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskCheckForTimeOutImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory"
);
}
/*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -911,11 +827,8 @@
" MPU_xTaskGenericNotify_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory"
);
}
@ -924,17 +837,9 @@
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -951,11 +856,8 @@
" MPU_xTaskGenericNotifyWait_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyWaitImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory"
);
}
@ -987,11 +889,8 @@
" MPU_ulTaskGenericNotifyTake_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGenericNotifyTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory"
);
}
@ -1021,11 +920,8 @@
" MPU_xTaskGenericNotifyStateClear_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTaskGenericNotifyStateClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory"
);
}
@ -1057,11 +953,8 @@
" MPU_ulTaskGenericNotifyValueClear_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_ulTaskGenericNotifyValueClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory"
);
}
@ -1093,11 +986,8 @@
" MPU_xQueueGenericSend_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueGenericSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1121,11 +1011,8 @@
" MPU_uxQueueMessagesWaiting_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxQueueMessagesWaitingImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1149,11 +1036,8 @@
" MPU_uxQueueSpacesAvailable_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxQueueSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1181,11 +1065,8 @@
" MPU_xQueueReceive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1213,11 +1094,8 @@
" MPU_xQueuePeek_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueuePeekImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1243,11 +1121,8 @@
" MPU_xQueueSemaphoreTake_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueSemaphoreTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1273,11 +1148,8 @@
" MPU_xQueueGetMutexHolder_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueGetMutexHolderImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory"
);
}
@ -1307,11 +1179,8 @@
" MPU_xQueueTakeMutexRecursive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueTakeMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory"
);
}
@ -1339,11 +1208,8 @@
" MPU_xQueueGiveMutexRecursive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueGiveMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory"
);
}
@ -1373,11 +1239,8 @@
" MPU_xQueueSelectFromSet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueSelectFromSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory"
);
}
@ -1407,11 +1270,8 @@
" MPU_xQueueAddToSet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xQueueAddToSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory"
);
}
@ -1441,11 +1301,8 @@
" MPU_vQueueAddToRegistry_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vQueueAddToRegistryImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory"
);
}
@ -1473,11 +1330,8 @@
" MPU_vQueueUnregisterQueue_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vQueueUnregisterQueueImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory"
);
}
@ -1505,11 +1359,8 @@
" MPU_pcQueueGetName_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_pcQueueGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory"
);
}
@ -1537,11 +1388,8 @@
" MPU_pvTimerGetTimerID_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_pvTimerGetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory"
);
}
@ -1571,11 +1419,8 @@
" MPU_vTimerSetTimerID_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTimerSetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory"
);
}
@ -1603,11 +1448,8 @@
" MPU_xTimerIsTimerActive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerIsTimerActiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory"
);
}
@ -1635,11 +1477,8 @@
" MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory"
);
}
@ -1648,17 +1487,9 @@
#if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -1675,11 +1506,8 @@
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGenericCommandFromTask ) : "memory"
);
}
@ -1707,11 +1535,8 @@
" MPU_pcTimerGetName_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_pcTimerGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory"
);
}
@ -1741,11 +1566,8 @@
" MPU_vTimerSetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vTimerSetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory"
);
}
@ -1773,11 +1595,8 @@
" MPU_xTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory"
);
}
@ -1805,11 +1624,8 @@
" MPU_uxTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory"
);
}
@ -1837,11 +1653,8 @@
" MPU_xTimerGetPeriod_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGetPeriodImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory"
);
}
@ -1869,28 +1682,17 @@
" MPU_xTimerGetExpiryTime_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGetExpiryTimeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory"
);
}
#endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{
__asm volatile
(
@ -1907,11 +1709,8 @@
" MPU_xEventGroupWaitBits_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xEventGroupWaitBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1937,11 +1736,8 @@
" MPU_xEventGroupClearBits_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xEventGroupClearBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -1967,11 +1763,8 @@
" MPU_xEventGroupSetBits_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xEventGroupSetBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2001,11 +1794,8 @@
" MPU_xEventGroupSync_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xEventGroupSyncImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2031,11 +1821,8 @@
" MPU_uxEventGroupGetNumber_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_uxEventGroupGetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory"
);
}
@ -2065,11 +1852,8 @@
" MPU_vEventGroupSetNumber_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_vEventGroupSetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory"
);
}
@ -2101,11 +1885,8 @@
" MPU_xStreamBufferSend_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2135,11 +1916,8 @@
" MPU_xStreamBufferReceive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2163,11 +1941,8 @@
" MPU_xStreamBufferIsFull_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferIsFullImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2191,11 +1966,8 @@
" MPU_xStreamBufferIsEmpty_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferIsEmptyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2219,11 +1991,8 @@
" MPU_xStreamBufferSpacesAvailable_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2247,11 +2016,8 @@
" MPU_xStreamBufferBytesAvailable_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferBytesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2277,11 +2043,8 @@
" MPU_xStreamBufferSetTriggerLevel_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferSetTriggerLevelImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory"
);
}
/*-----------------------------------------------------------*/
@ -2305,11 +2068,8 @@
" MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xStreamBufferNextMessageLengthBytesImpl \n"
" svc %1 \n"
" bx lr \n"
" \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
: : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory"
);
}
/*-----------------------------------------------------------*/

View file

@ -36,6 +36,9 @@
/* Portasm includes. */
#include "portasm.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
/* MPU_WRAPPERS_INCLUDED_FROM_API_FILE is needed to be defined only for the
* header files. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
@ -443,7 +446,6 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
".syntax unified \n"
".extern vPortSVCHandler_C \n"
".extern vSystemCallEnter \n"
".extern vSystemCallEnter_1 \n"
".extern vSystemCallExit \n"
" \n"
"tst lr, #4 \n"
@ -454,10 +456,8 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
"ldr r1, [r0, #24] \n"
"ldrb r2, [r1, #-2] \n"
"cmp r2, %0 \n"
"beq syscall_enter \n"
"blt syscall_enter \n"
"cmp r2, %1 \n"
"beq syscall_enter_1 \n"
"cmp r2, %2 \n"
"beq syscall_exit \n"
"b vPortSVCHandler_C \n"
" \n"
@ -465,16 +465,12 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
" mov r1, lr \n"
" b vSystemCallEnter \n"
" \n"
"syscall_enter_1: \n"
" mov r1, lr \n"
" b vSystemCallEnter_1 \n"
" \n"
"syscall_exit: \n"
" mov r1, lr \n"
" b vSystemCallExit \n"
" \n"
: /* No outputs. */
: "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "i" ( NUM_SYSTEM_CALLS ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "r0", "r1", "r2", "memory"
);
}

View file

@ -32,15 +32,12 @@
/*-----------------------------------------------------------*/
#include "FreeRTOSConfig.h"
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0
#endif
/* These must be in sync with portmacro.h. */
#define portSVC_SYSTEM_CALL_ENTER 4 /* System calls with upto 4 parameters. */
#define portSVC_SYSTEM_CALL_ENTER_1 5 /* System calls with 5 parameters. */
#define portSVC_SYSTEM_CALL_EXIT 6
/*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
@ -57,10 +54,7 @@ MPU_xTaskDelayUntil:
b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskDelayUntilImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskAbortDelay
@ -75,10 +69,7 @@ MPU_xTaskAbortDelay:
b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskAbortDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskDelay
@ -93,10 +84,7 @@ MPU_vTaskDelay:
b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskPriorityGet
@ -111,10 +99,7 @@ MPU_uxTaskPriorityGet:
b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskPriorityGetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/
PUBLIC MPU_eTaskGetState
@ -129,10 +114,7 @@ MPU_eTaskGetState:
b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_eTaskGetStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskGetInfo
@ -147,10 +129,7 @@ MPU_vTaskGetInfo:
b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskGetInfoImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetIdleTaskHandle
@ -165,10 +144,7 @@ MPU_xTaskGetIdleTaskHandle:
b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetIdleTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSuspend
@ -183,10 +159,7 @@ MPU_vTaskSuspend:
b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSuspendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskResume
@ -201,10 +174,7 @@ MPU_vTaskResume:
b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskResumeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetTickCount
@ -219,10 +189,7 @@ MPU_xTaskGetTickCount:
b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetTickCountImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetNumberOfTasks
@ -237,10 +204,7 @@ MPU_uxTaskGetNumberOfTasks:
b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetNumberOfTasksImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimeCounter
@ -255,10 +219,7 @@ MPU_ulTaskGetRunTimeCounter:
b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimePercent
@ -273,10 +234,7 @@ MPU_ulTaskGetRunTimePercent:
b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimePercent
@ -291,10 +249,7 @@ MPU_ulTaskGetIdleRunTimePercent:
b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetIdleRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimeCounter
@ -309,10 +264,7 @@ MPU_ulTaskGetIdleRunTimeCounter:
b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetIdleRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetApplicationTaskTag
@ -327,10 +279,7 @@ MPU_vTaskSetApplicationTaskTag:
b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetApplicationTaskTag
@ -345,10 +294,7 @@ MPU_xTaskGetApplicationTaskTag:
b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetThreadLocalStoragePointer
@ -363,10 +309,7 @@ MPU_vTaskSetThreadLocalStoragePointer:
b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/
PUBLIC MPU_pvTaskGetThreadLocalStoragePointer
@ -381,10 +324,7 @@ MPU_pvTaskGetThreadLocalStoragePointer:
b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pvTaskGetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetSystemState
@ -399,10 +339,7 @@ MPU_uxTaskGetSystemState:
b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetSystemStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark
@ -417,10 +354,7 @@ MPU_uxTaskGetStackHighWaterMark:
b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetStackHighWaterMarkImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark2
@ -435,10 +369,7 @@ MPU_uxTaskGetStackHighWaterMark2:
b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetStackHighWaterMark2Impl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetCurrentTaskHandle
@ -453,10 +384,7 @@ MPU_xTaskGetCurrentTaskHandle:
b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetCurrentTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetSchedulerState
@ -471,10 +399,7 @@ MPU_xTaskGetSchedulerState:
b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetSchedulerStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetTimeOutState
@ -489,10 +414,7 @@ MPU_vTaskSetTimeOutState:
b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetTimeOutStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskCheckForTimeOut
@ -507,14 +429,11 @@ MPU_xTaskCheckForTimeOut:
b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskCheckForTimeOutImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotify
MPU_xTaskGenericNotify:
PUBLIC MPU_xTaskGenericNotifyEntry
MPU_xTaskGenericNotifyEntry:
push {r0, r1}
mrs r0, control
movs r1, #1
@ -525,14 +444,11 @@ MPU_xTaskGenericNotify:
b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTaskGenericNotifyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyWait
MPU_xTaskGenericNotifyWait:
PUBLIC MPU_xTaskGenericNotifyWaitEntry
MPU_xTaskGenericNotifyWaitEntry:
push {r0, r1}
mrs r0, control
movs r1, #1
@ -543,10 +459,7 @@ MPU_xTaskGenericNotifyWait:
b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTaskGenericNotifyWaitImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyTake
@ -561,10 +474,7 @@ MPU_ulTaskGenericNotifyTake:
b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGenericNotifyTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyStateClear
@ -579,10 +489,7 @@ MPU_xTaskGenericNotifyStateClear:
b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGenericNotifyStateClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyValueClear
@ -597,10 +504,7 @@ MPU_ulTaskGenericNotifyValueClear:
b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGenericNotifyValueClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGenericSend
@ -615,10 +519,7 @@ MPU_xQueueGenericSend:
b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGenericSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueMessagesWaiting
@ -633,10 +534,7 @@ MPU_uxQueueMessagesWaiting:
b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxQueueMessagesWaitingImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueSpacesAvailable
@ -651,10 +549,7 @@ MPU_uxQueueSpacesAvailable:
b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxQueueSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueReceive
@ -669,10 +564,7 @@ MPU_xQueueReceive:
b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueuePeek
@ -687,10 +579,7 @@ MPU_xQueuePeek:
b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueuePeekImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSemaphoreTake
@ -705,10 +594,7 @@ MPU_xQueueSemaphoreTake:
b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueSemaphoreTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGetMutexHolder
@ -723,10 +609,7 @@ MPU_xQueueGetMutexHolder:
b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGetMutexHolderImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueTakeMutexRecursive
@ -741,10 +624,7 @@ MPU_xQueueTakeMutexRecursive:
b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueTakeMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGiveMutexRecursive
@ -759,10 +639,7 @@ MPU_xQueueGiveMutexRecursive:
b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGiveMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSelectFromSet
@ -777,10 +654,7 @@ MPU_xQueueSelectFromSet:
b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueSelectFromSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueAddToSet
@ -795,10 +669,7 @@ MPU_xQueueAddToSet:
b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueAddToSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/
PUBLIC MPU_vQueueAddToRegistry
@ -813,10 +684,7 @@ MPU_vQueueAddToRegistry:
b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vQueueAddToRegistryImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/
PUBLIC MPU_vQueueUnregisterQueue
@ -831,10 +699,7 @@ MPU_vQueueUnregisterQueue:
b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vQueueUnregisterQueueImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/
PUBLIC MPU_pcQueueGetName
@ -849,10 +714,7 @@ MPU_pcQueueGetName:
b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pcQueueGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/
PUBLIC MPU_pvTimerGetTimerID
@ -867,10 +729,7 @@ MPU_pvTimerGetTimerID:
b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pvTimerGetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetTimerID
@ -885,10 +744,7 @@ MPU_vTimerSetTimerID:
b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTimerSetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerIsTimerActive
@ -903,10 +759,7 @@ MPU_xTimerIsTimerActive:
b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerIsTimerActiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetTimerDaemonTaskHandle
@ -921,14 +774,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetTimerDaemonTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommandFromTask
MPU_xTimerGenericCommandFromTask:
PUBLIC MPU_xTimerGenericCommandFromTaskEntry
MPU_xTimerGenericCommandFromTaskEntry:
push {r0, r1}
mrs r0, control
movs r1, #1
@ -939,10 +789,7 @@ MPU_xTimerGenericCommandFromTask:
b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTimerGenericCommandFromTaskImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/
PUBLIC MPU_pcTimerGetName
@ -957,10 +804,7 @@ MPU_pcTimerGetName:
b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pcTimerGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetReloadMode
@ -975,10 +819,7 @@ MPU_vTimerSetReloadMode:
b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTimerSetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetReloadMode
@ -993,10 +834,7 @@ MPU_xTimerGetReloadMode:
b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTimerGetReloadMode
@ -1011,10 +849,7 @@ MPU_uxTimerGetReloadMode:
b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetPeriod
@ -1029,10 +864,7 @@ MPU_xTimerGetPeriod:
b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetPeriodImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetExpiryTime
@ -1047,14 +879,11 @@ MPU_xTimerGetExpiryTime:
b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetExpiryTimeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupWaitBits
MPU_xEventGroupWaitBits:
PUBLIC MPU_xEventGroupWaitBitsEntry
MPU_xEventGroupWaitBitsEntry:
push {r0, r1}
mrs r0, control
movs r1, #1
@ -1065,10 +894,7 @@ MPU_xEventGroupWaitBits:
b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xEventGroupWaitBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupClearBits
@ -1083,10 +909,7 @@ MPU_xEventGroupClearBits:
b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupClearBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSetBits
@ -1101,10 +924,7 @@ MPU_xEventGroupSetBits:
b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupSetBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSync
@ -1119,10 +939,7 @@ MPU_xEventGroupSync:
b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupSyncImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/
PUBLIC MPU_uxEventGroupGetNumber
@ -1137,10 +954,7 @@ MPU_uxEventGroupGetNumber:
b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxEventGroupGetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/
PUBLIC MPU_vEventGroupSetNumber
@ -1155,10 +969,7 @@ MPU_vEventGroupSetNumber:
b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vEventGroupSetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSend
@ -1173,10 +984,7 @@ MPU_xStreamBufferSend:
b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferReceive
@ -1191,10 +999,7 @@ MPU_xStreamBufferReceive:
b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsFull
@ -1209,10 +1014,7 @@ MPU_xStreamBufferIsFull:
b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferIsFullImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsEmpty
@ -1227,10 +1029,7 @@ MPU_xStreamBufferIsEmpty:
b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferIsEmptyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSpacesAvailable
@ -1245,10 +1044,7 @@ MPU_xStreamBufferSpacesAvailable:
b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferBytesAvailable
@ -1263,10 +1059,7 @@ MPU_xStreamBufferBytesAvailable:
b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferBytesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSetTriggerLevel
@ -1281,10 +1074,7 @@ MPU_xStreamBufferSetTriggerLevel:
b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSetTriggerLevelImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferNextMessageLengthBytes
@ -1299,10 +1089,7 @@ MPU_xStreamBufferNextMessageLengthBytes:
b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferNextMessageLengthBytesImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/
/* Default weak implementations in case one is not available from

View file

@ -33,6 +33,9 @@ the code is included in C files but excluded by the preprocessor in assembly
files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */
#include "FreeRTOSConfig.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0
#endif
@ -46,7 +49,6 @@ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler.
EXTERN SecureContext_LoadContext
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
EXTERN vSystemCallEnter
EXTERN vSystemCallEnter_1
EXTERN vSystemCallExit
#endif
@ -96,7 +98,7 @@ vResetPrivilege:
/*-----------------------------------------------------------*/
vPortAllocateSecureContext:
svc 0 /* Secure context is allocated in the supervisor call. portSVC_ALLOCATE_SECURE_CONTEXT = 0. */
svc 100 /* Secure context is allocated in the supervisor call. portSVC_ALLOCATE_SECURE_CONTEXT = 100. */
bx lr /* Return. */
/*-----------------------------------------------------------*/
@ -229,7 +231,7 @@ vStartFirstTask:
cpsie i /* Globally enable interrupts. */
dsb
isb
svc 2 /* System call to start the first task. portSVC_START_SCHEDULER = 2. */
svc 102 /* System call to start the first task. portSVC_START_SCHEDULER = 102. */
/*-----------------------------------------------------------*/
ulSetInterruptMask:
@ -479,21 +481,17 @@ SVC_Handler:
b route_svc
route_svc:
ldr r2, [r0, #24]
subs r2, #2
ldrb r3, [r2, #0]
cmp r3, #4 /* portSVC_SYSTEM_CALL_ENTER. */
beq system_call_enter
cmp r3, #5 /* portSVC_SYSTEM_CALL_ENTER_1. */
beq system_call_enter_1
cmp r3, #6 /* portSVC_SYSTEM_CALL_EXIT. */
ldr r3, [r0, #24]
subs r3, #2
ldrb r2, [r3, #0]
cmp r2, #NUM_SYSTEM_CALLS
blt system_call_enter
cmp r2, #104 /* portSVC_SYSTEM_CALL_EXIT. */
beq system_call_exit
b vPortSVCHandler_C
system_call_enter:
b vSystemCallEnter
system_call_enter_1:
b vSystemCallEnter_1
system_call_exit:
b vSystemCallExit
@ -520,7 +518,7 @@ vPortFreeSecureContext:
bne free_secure_context /* Branch if r1 != 0. */
bx lr /* There is no secure context (xSecureContext is NULL). */
free_secure_context:
svc 1 /* Secure context is freed in the supervisor call. portSVC_FREE_SECURE_CONTEXT = 1. */
svc 101 /* Secure context is freed in the supervisor call. portSVC_FREE_SECURE_CONTEXT = 101. */
bx lr /* Return. */
/*-----------------------------------------------------------*/

View file

@ -32,15 +32,12 @@
/*-----------------------------------------------------------*/
#include "FreeRTOSConfig.h"
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0
#endif
/* These must be in sync with portmacro.h. */
#define portSVC_SYSTEM_CALL_ENTER 4 /* System calls with upto 4 parameters. */
#define portSVC_SYSTEM_CALL_ENTER_1 5 /* System calls with 5 parameters. */
#define portSVC_SYSTEM_CALL_EXIT 6
/*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
@ -57,10 +54,7 @@ MPU_xTaskDelayUntil:
b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskDelayUntilImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskAbortDelay
@ -75,10 +69,7 @@ MPU_xTaskAbortDelay:
b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskAbortDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskDelay
@ -93,10 +84,7 @@ MPU_vTaskDelay:
b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskPriorityGet
@ -111,10 +99,7 @@ MPU_uxTaskPriorityGet:
b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskPriorityGetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/
PUBLIC MPU_eTaskGetState
@ -129,10 +114,7 @@ MPU_eTaskGetState:
b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_eTaskGetStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskGetInfo
@ -147,10 +129,7 @@ MPU_vTaskGetInfo:
b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskGetInfoImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetIdleTaskHandle
@ -165,10 +144,7 @@ MPU_xTaskGetIdleTaskHandle:
b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetIdleTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSuspend
@ -183,10 +159,7 @@ MPU_vTaskSuspend:
b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSuspendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskResume
@ -201,10 +174,7 @@ MPU_vTaskResume:
b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskResumeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetTickCount
@ -219,10 +189,7 @@ MPU_xTaskGetTickCount:
b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetTickCountImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetNumberOfTasks
@ -237,10 +204,7 @@ MPU_uxTaskGetNumberOfTasks:
b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetNumberOfTasksImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimeCounter
@ -255,10 +219,7 @@ MPU_ulTaskGetRunTimeCounter:
b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimePercent
@ -273,10 +234,7 @@ MPU_ulTaskGetRunTimePercent:
b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimePercent
@ -291,10 +249,7 @@ MPU_ulTaskGetIdleRunTimePercent:
b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetIdleRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimeCounter
@ -309,10 +264,7 @@ MPU_ulTaskGetIdleRunTimeCounter:
b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetIdleRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetApplicationTaskTag
@ -327,10 +279,7 @@ MPU_vTaskSetApplicationTaskTag:
b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetApplicationTaskTag
@ -345,10 +294,7 @@ MPU_xTaskGetApplicationTaskTag:
b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetThreadLocalStoragePointer
@ -363,10 +309,7 @@ MPU_vTaskSetThreadLocalStoragePointer:
b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/
PUBLIC MPU_pvTaskGetThreadLocalStoragePointer
@ -381,10 +324,7 @@ MPU_pvTaskGetThreadLocalStoragePointer:
b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pvTaskGetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetSystemState
@ -399,10 +339,7 @@ MPU_uxTaskGetSystemState:
b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetSystemStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark
@ -417,10 +354,7 @@ MPU_uxTaskGetStackHighWaterMark:
b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetStackHighWaterMarkImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark2
@ -435,10 +369,7 @@ MPU_uxTaskGetStackHighWaterMark2:
b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetStackHighWaterMark2Impl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetCurrentTaskHandle
@ -453,10 +384,7 @@ MPU_xTaskGetCurrentTaskHandle:
b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetCurrentTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetSchedulerState
@ -471,10 +399,7 @@ MPU_xTaskGetSchedulerState:
b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetSchedulerStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetTimeOutState
@ -489,10 +414,7 @@ MPU_vTaskSetTimeOutState:
b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetTimeOutStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskCheckForTimeOut
@ -507,14 +429,11 @@ MPU_xTaskCheckForTimeOut:
b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskCheckForTimeOutImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotify
MPU_xTaskGenericNotify:
PUBLIC MPU_xTaskGenericNotifyEntry
MPU_xTaskGenericNotifyEntry:
push {r0, r1}
mrs r0, control
movs r1, #1
@ -525,14 +444,11 @@ MPU_xTaskGenericNotify:
b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTaskGenericNotifyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyWait
MPU_xTaskGenericNotifyWait:
PUBLIC MPU_xTaskGenericNotifyWaitEntry
MPU_xTaskGenericNotifyWaitEntry:
push {r0, r1}
mrs r0, control
movs r1, #1
@ -543,10 +459,7 @@ MPU_xTaskGenericNotifyWait:
b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTaskGenericNotifyWaitImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyTake
@ -561,10 +474,7 @@ MPU_ulTaskGenericNotifyTake:
b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGenericNotifyTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyStateClear
@ -579,10 +489,7 @@ MPU_xTaskGenericNotifyStateClear:
b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGenericNotifyStateClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyValueClear
@ -597,10 +504,7 @@ MPU_ulTaskGenericNotifyValueClear:
b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGenericNotifyValueClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGenericSend
@ -615,10 +519,7 @@ MPU_xQueueGenericSend:
b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGenericSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueMessagesWaiting
@ -633,10 +534,7 @@ MPU_uxQueueMessagesWaiting:
b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxQueueMessagesWaitingImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueSpacesAvailable
@ -651,10 +549,7 @@ MPU_uxQueueSpacesAvailable:
b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxQueueSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueReceive
@ -669,10 +564,7 @@ MPU_xQueueReceive:
b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueuePeek
@ -687,10 +579,7 @@ MPU_xQueuePeek:
b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueuePeekImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSemaphoreTake
@ -705,10 +594,7 @@ MPU_xQueueSemaphoreTake:
b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueSemaphoreTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGetMutexHolder
@ -723,10 +609,7 @@ MPU_xQueueGetMutexHolder:
b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGetMutexHolderImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueTakeMutexRecursive
@ -741,10 +624,7 @@ MPU_xQueueTakeMutexRecursive:
b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueTakeMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGiveMutexRecursive
@ -759,10 +639,7 @@ MPU_xQueueGiveMutexRecursive:
b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGiveMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSelectFromSet
@ -777,10 +654,7 @@ MPU_xQueueSelectFromSet:
b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueSelectFromSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueAddToSet
@ -795,10 +669,7 @@ MPU_xQueueAddToSet:
b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueAddToSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/
PUBLIC MPU_vQueueAddToRegistry
@ -813,10 +684,7 @@ MPU_vQueueAddToRegistry:
b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vQueueAddToRegistryImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/
PUBLIC MPU_vQueueUnregisterQueue
@ -831,10 +699,7 @@ MPU_vQueueUnregisterQueue:
b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vQueueUnregisterQueueImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/
PUBLIC MPU_pcQueueGetName
@ -849,10 +714,7 @@ MPU_pcQueueGetName:
b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pcQueueGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/
PUBLIC MPU_pvTimerGetTimerID
@ -867,10 +729,7 @@ MPU_pvTimerGetTimerID:
b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pvTimerGetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetTimerID
@ -885,10 +744,7 @@ MPU_vTimerSetTimerID:
b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTimerSetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerIsTimerActive
@ -903,10 +759,7 @@ MPU_xTimerIsTimerActive:
b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerIsTimerActiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetTimerDaemonTaskHandle
@ -921,14 +774,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetTimerDaemonTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommandFromTask
MPU_xTimerGenericCommandFromTask:
PUBLIC MPU_xTimerGenericCommandFromTaskEntry
MPU_xTimerGenericCommandFromTaskEntry:
push {r0, r1}
mrs r0, control
movs r1, #1
@ -939,10 +789,7 @@ MPU_xTimerGenericCommandFromTask:
b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTimerGenericCommandFromTaskImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/
PUBLIC MPU_pcTimerGetName
@ -957,10 +804,7 @@ MPU_pcTimerGetName:
b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pcTimerGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetReloadMode
@ -975,10 +819,7 @@ MPU_vTimerSetReloadMode:
b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTimerSetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetReloadMode
@ -993,10 +834,7 @@ MPU_xTimerGetReloadMode:
b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTimerGetReloadMode
@ -1011,10 +849,7 @@ MPU_uxTimerGetReloadMode:
b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetPeriod
@ -1029,10 +864,7 @@ MPU_xTimerGetPeriod:
b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetPeriodImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetExpiryTime
@ -1047,14 +879,11 @@ MPU_xTimerGetExpiryTime:
b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetExpiryTimeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupWaitBits
MPU_xEventGroupWaitBits:
PUBLIC MPU_xEventGroupWaitBitsEntry
MPU_xEventGroupWaitBitsEntry:
push {r0, r1}
mrs r0, control
movs r1, #1
@ -1065,10 +894,7 @@ MPU_xEventGroupWaitBits:
b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xEventGroupWaitBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupClearBits
@ -1083,10 +909,7 @@ MPU_xEventGroupClearBits:
b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupClearBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSetBits
@ -1101,10 +924,7 @@ MPU_xEventGroupSetBits:
b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupSetBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSync
@ -1119,10 +939,7 @@ MPU_xEventGroupSync:
b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupSyncImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/
PUBLIC MPU_uxEventGroupGetNumber
@ -1137,10 +954,7 @@ MPU_uxEventGroupGetNumber:
b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxEventGroupGetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/
PUBLIC MPU_vEventGroupSetNumber
@ -1155,10 +969,7 @@ MPU_vEventGroupSetNumber:
b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vEventGroupSetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSend
@ -1173,10 +984,7 @@ MPU_xStreamBufferSend:
b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferReceive
@ -1191,10 +999,7 @@ MPU_xStreamBufferReceive:
b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsFull
@ -1209,10 +1014,7 @@ MPU_xStreamBufferIsFull:
b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferIsFullImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsEmpty
@ -1227,10 +1029,7 @@ MPU_xStreamBufferIsEmpty:
b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferIsEmptyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSpacesAvailable
@ -1245,10 +1044,7 @@ MPU_xStreamBufferSpacesAvailable:
b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferBytesAvailable
@ -1263,10 +1059,7 @@ MPU_xStreamBufferBytesAvailable:
b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferBytesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSetTriggerLevel
@ -1281,10 +1074,7 @@ MPU_xStreamBufferSetTriggerLevel:
b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSetTriggerLevelImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferNextMessageLengthBytes
@ -1299,10 +1089,7 @@ MPU_xStreamBufferNextMessageLengthBytes:
b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferNextMessageLengthBytesImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/
/* Default weak implementations in case one is not available from

View file

@ -32,6 +32,9 @@ the code is included in C files but excluded by the preprocessor in assembly
files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */
#include "FreeRTOSConfig.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0
#endif
@ -45,7 +48,6 @@ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler.
EXTERN vPortSVCHandler_C
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
EXTERN vSystemCallEnter
EXTERN vSystemCallEnter_1
EXTERN vSystemCallExit
#endif
@ -224,7 +226,7 @@ vStartFirstTask:
cpsie i /* Globally enable interrupts. */
dsb
isb
svc 2 /* System call to start the first task. portSVC_START_SCHEDULER = 2. */
svc 102 /* System call to start the first task. portSVC_START_SCHEDULER = 102. */
nop
/*-----------------------------------------------------------*/
@ -421,21 +423,17 @@ SVC_Handler:
b route_svc
route_svc:
ldr r2, [r0, #24]
subs r2, #2
ldrb r3, [r2, #0]
cmp r3, #4 /* portSVC_SYSTEM_CALL_ENTER. */
beq system_call_enter
cmp r3, #5 /* portSVC_SYSTEM_CALL_ENTER_1. */
beq system_call_enter_1
cmp r3, #6 /* portSVC_SYSTEM_CALL_EXIT. */
ldr r3, [r0, #24]
subs r3, #2
ldrb r2, [r3, #0]
cmp r2, #NUM_SYSTEM_CALLS
blt system_call_enter
cmp r2, #104 /* portSVC_SYSTEM_CALL_EXIT. */
beq system_call_exit
b vPortSVCHandler_C
system_call_enter:
b vSystemCallEnter
system_call_enter_1:
b vSystemCallEnter_1
system_call_exit:
b vSystemCallExit

View file

@ -32,15 +32,12 @@
/*-----------------------------------------------------------*/
#include "FreeRTOSConfig.h"
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0
#endif
/* These must be in sync with portmacro.h. */
#define portSVC_SYSTEM_CALL_ENTER 4 /* System calls with upto 4 parameters. */
#define portSVC_SYSTEM_CALL_ENTER_1 5 /* System calls with 5 parameters. */
#define portSVC_SYSTEM_CALL_EXIT 6
/*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
@ -56,10 +53,7 @@ MPU_xTaskDelayUntil:
b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskDelayUntilImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskAbortDelay
@ -73,10 +67,7 @@ MPU_xTaskAbortDelay:
b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskAbortDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskDelay
@ -90,10 +81,7 @@ MPU_vTaskDelay:
b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskPriorityGet
@ -107,10 +95,7 @@ MPU_uxTaskPriorityGet:
b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskPriorityGetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/
PUBLIC MPU_eTaskGetState
@ -124,10 +109,7 @@ MPU_eTaskGetState:
b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_eTaskGetStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskGetInfo
@ -141,10 +123,7 @@ MPU_vTaskGetInfo:
b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskGetInfoImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetIdleTaskHandle
@ -158,10 +137,7 @@ MPU_xTaskGetIdleTaskHandle:
b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetIdleTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSuspend
@ -175,10 +151,7 @@ MPU_vTaskSuspend:
b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSuspendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskResume
@ -192,10 +165,7 @@ MPU_vTaskResume:
b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskResumeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetTickCount
@ -209,10 +179,7 @@ MPU_xTaskGetTickCount:
b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetTickCountImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetNumberOfTasks
@ -226,10 +193,7 @@ MPU_uxTaskGetNumberOfTasks:
b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetNumberOfTasksImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimeCounter
@ -243,10 +207,7 @@ MPU_ulTaskGetRunTimeCounter:
b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimePercent
@ -260,10 +221,7 @@ MPU_ulTaskGetRunTimePercent:
b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimePercent
@ -277,10 +235,7 @@ MPU_ulTaskGetIdleRunTimePercent:
b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetIdleRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimeCounter
@ -294,10 +249,7 @@ MPU_ulTaskGetIdleRunTimeCounter:
b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetIdleRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetApplicationTaskTag
@ -311,10 +263,7 @@ MPU_vTaskSetApplicationTaskTag:
b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetApplicationTaskTag
@ -328,10 +277,7 @@ MPU_xTaskGetApplicationTaskTag:
b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetThreadLocalStoragePointer
@ -345,10 +291,7 @@ MPU_vTaskSetThreadLocalStoragePointer:
b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/
PUBLIC MPU_pvTaskGetThreadLocalStoragePointer
@ -362,10 +305,7 @@ MPU_pvTaskGetThreadLocalStoragePointer:
b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pvTaskGetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetSystemState
@ -379,10 +319,7 @@ MPU_uxTaskGetSystemState:
b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetSystemStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark
@ -396,10 +333,7 @@ MPU_uxTaskGetStackHighWaterMark:
b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetStackHighWaterMarkImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark2
@ -413,10 +347,7 @@ MPU_uxTaskGetStackHighWaterMark2:
b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetStackHighWaterMark2Impl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetCurrentTaskHandle
@ -430,10 +361,7 @@ MPU_xTaskGetCurrentTaskHandle:
b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetCurrentTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetSchedulerState
@ -447,10 +375,7 @@ MPU_xTaskGetSchedulerState:
b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetSchedulerStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetTimeOutState
@ -464,10 +389,7 @@ MPU_vTaskSetTimeOutState:
b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetTimeOutStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskCheckForTimeOut
@ -481,14 +403,11 @@ MPU_xTaskCheckForTimeOut:
b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskCheckForTimeOutImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotify
MPU_xTaskGenericNotify:
PUBLIC MPU_xTaskGenericNotifyEntry
MPU_xTaskGenericNotifyEntry:
push {r0}
mrs r0, control
tst r0, #1
@ -498,14 +417,11 @@ MPU_xTaskGenericNotify:
b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTaskGenericNotifyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyWait
MPU_xTaskGenericNotifyWait:
PUBLIC MPU_xTaskGenericNotifyWaitEntry
MPU_xTaskGenericNotifyWaitEntry:
push {r0}
mrs r0, control
tst r0, #1
@ -515,10 +431,7 @@ MPU_xTaskGenericNotifyWait:
b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTaskGenericNotifyWaitImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyTake
@ -532,10 +445,7 @@ MPU_ulTaskGenericNotifyTake:
b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGenericNotifyTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyStateClear
@ -549,10 +459,7 @@ MPU_xTaskGenericNotifyStateClear:
b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGenericNotifyStateClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyValueClear
@ -566,10 +473,7 @@ MPU_ulTaskGenericNotifyValueClear:
b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGenericNotifyValueClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGenericSend
@ -583,10 +487,7 @@ MPU_xQueueGenericSend:
b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGenericSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueMessagesWaiting
@ -600,10 +501,7 @@ MPU_uxQueueMessagesWaiting:
b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxQueueMessagesWaitingImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueSpacesAvailable
@ -617,10 +515,7 @@ MPU_uxQueueSpacesAvailable:
b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxQueueSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueReceive
@ -634,10 +529,7 @@ MPU_xQueueReceive:
b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueuePeek
@ -651,10 +543,7 @@ MPU_xQueuePeek:
b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueuePeekImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSemaphoreTake
@ -668,10 +557,7 @@ MPU_xQueueSemaphoreTake:
b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueSemaphoreTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGetMutexHolder
@ -685,10 +571,7 @@ MPU_xQueueGetMutexHolder:
b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGetMutexHolderImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueTakeMutexRecursive
@ -702,10 +585,7 @@ MPU_xQueueTakeMutexRecursive:
b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueTakeMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGiveMutexRecursive
@ -719,10 +599,7 @@ MPU_xQueueGiveMutexRecursive:
b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGiveMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSelectFromSet
@ -736,10 +613,7 @@ MPU_xQueueSelectFromSet:
b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueSelectFromSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueAddToSet
@ -753,10 +627,7 @@ MPU_xQueueAddToSet:
b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueAddToSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/
PUBLIC MPU_vQueueAddToRegistry
@ -770,10 +641,7 @@ MPU_vQueueAddToRegistry:
b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vQueueAddToRegistryImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/
PUBLIC MPU_vQueueUnregisterQueue
@ -787,10 +655,7 @@ MPU_vQueueUnregisterQueue:
b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vQueueUnregisterQueueImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/
PUBLIC MPU_pcQueueGetName
@ -804,10 +669,7 @@ MPU_pcQueueGetName:
b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pcQueueGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/
PUBLIC MPU_pvTimerGetTimerID
@ -821,10 +683,7 @@ MPU_pvTimerGetTimerID:
b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pvTimerGetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetTimerID
@ -838,10 +697,7 @@ MPU_vTimerSetTimerID:
b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTimerSetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerIsTimerActive
@ -855,10 +711,7 @@ MPU_xTimerIsTimerActive:
b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerIsTimerActiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetTimerDaemonTaskHandle
@ -872,14 +725,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetTimerDaemonTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommandFromTask
MPU_xTimerGenericCommandFromTask:
PUBLIC MPU_xTimerGenericCommandFromTaskEntry
MPU_xTimerGenericCommandFromTaskEntry:
push {r0}
mrs r0, control
tst r0, #1
@ -889,10 +739,7 @@ MPU_xTimerGenericCommandFromTask:
b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTimerGenericCommandFromTaskImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/
PUBLIC MPU_pcTimerGetName
@ -906,10 +753,7 @@ MPU_pcTimerGetName:
b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pcTimerGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetReloadMode
@ -923,10 +767,7 @@ MPU_vTimerSetReloadMode:
b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTimerSetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetReloadMode
@ -940,10 +781,7 @@ MPU_xTimerGetReloadMode:
b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTimerGetReloadMode
@ -957,10 +795,7 @@ MPU_uxTimerGetReloadMode:
b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetPeriod
@ -974,10 +809,7 @@ MPU_xTimerGetPeriod:
b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetPeriodImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetExpiryTime
@ -991,14 +823,11 @@ MPU_xTimerGetExpiryTime:
b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetExpiryTimeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupWaitBits
MPU_xEventGroupWaitBits:
PUBLIC MPU_xEventGroupWaitBitsEntry
MPU_xEventGroupWaitBitsEntry:
push {r0}
mrs r0, control
tst r0, #1
@ -1008,10 +837,7 @@ MPU_xEventGroupWaitBits:
b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xEventGroupWaitBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupClearBits
@ -1025,10 +851,7 @@ MPU_xEventGroupClearBits:
b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupClearBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSetBits
@ -1042,10 +865,7 @@ MPU_xEventGroupSetBits:
b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupSetBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSync
@ -1059,10 +879,7 @@ MPU_xEventGroupSync:
b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupSyncImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/
PUBLIC MPU_uxEventGroupGetNumber
@ -1076,10 +893,7 @@ MPU_uxEventGroupGetNumber:
b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxEventGroupGetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/
PUBLIC MPU_vEventGroupSetNumber
@ -1093,10 +907,7 @@ MPU_vEventGroupSetNumber:
b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vEventGroupSetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSend
@ -1110,10 +921,7 @@ MPU_xStreamBufferSend:
b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferReceive
@ -1127,10 +935,7 @@ MPU_xStreamBufferReceive:
b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsFull
@ -1144,10 +949,7 @@ MPU_xStreamBufferIsFull:
b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferIsFullImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsEmpty
@ -1161,10 +963,7 @@ MPU_xStreamBufferIsEmpty:
b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferIsEmptyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSpacesAvailable
@ -1178,10 +977,7 @@ MPU_xStreamBufferSpacesAvailable:
b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferBytesAvailable
@ -1195,10 +991,7 @@ MPU_xStreamBufferBytesAvailable:
b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferBytesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSetTriggerLevel
@ -1212,10 +1005,7 @@ MPU_xStreamBufferSetTriggerLevel:
b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSetTriggerLevelImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferNextMessageLengthBytes
@ -1229,10 +1019,7 @@ MPU_xStreamBufferNextMessageLengthBytes:
b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferNextMessageLengthBytesImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/
/* Default weak implementations in case one is not available from

View file

@ -32,6 +32,9 @@ the code is included in C files but excluded by the preprocessor in assembly
files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */
#include "FreeRTOSConfig.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0
#endif
@ -44,7 +47,6 @@ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler.
EXTERN SecureContext_LoadContext
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
EXTERN vSystemCallEnter
EXTERN vSystemCallEnter_1
EXTERN vSystemCallExit
#endif
@ -86,7 +88,7 @@ vResetPrivilege:
/*-----------------------------------------------------------*/
vPortAllocateSecureContext:
svc 0 /* Secure context is allocated in the supervisor call. portSVC_ALLOCATE_SECURE_CONTEXT = 0. */
svc 100 /* Secure context is allocated in the supervisor call. portSVC_ALLOCATE_SECURE_CONTEXT = 100. */
bx lr /* Return. */
/*-----------------------------------------------------------*/
@ -205,7 +207,7 @@ vStartFirstTask:
cpsie f
dsb
isb
svc 2 /* System call to start the first task. portSVC_START_SCHEDULER = 2. */
svc 102 /* System call to start the first task. portSVC_START_SCHEDULER = 102. */
/*-----------------------------------------------------------*/
ulSetInterruptMask:
@ -455,11 +457,9 @@ SVC_Handler:
ldr r1, [r0, #24]
ldrb r2, [r1, #-2]
cmp r2, #4 /* portSVC_SYSTEM_CALL_ENTER. */
beq syscall_enter
cmp r2, #5 /* portSVC_SYSTEM_CALL_ENTER_1. */
beq syscall_enter_1
cmp r2, #6 /* portSVC_SYSTEM_CALL_EXIT. */
cmp r2, #NUM_SYSTEM_CALLS
blt syscall_enter
cmp r2, #104 /* portSVC_SYSTEM_CALL_EXIT. */
beq syscall_exit
b vPortSVCHandler_C
@ -467,10 +467,6 @@ SVC_Handler:
mov r1, lr
b vSystemCallEnter
syscall_enter_1:
mov r1, lr
b vSystemCallEnter_1
syscall_exit:
mov r1, lr
b vSystemCallExit
@ -493,7 +489,7 @@ vPortFreeSecureContext:
ldr r1, [r2] /* The first item on the stack is the task's xSecureContext. */
cmp r1, #0 /* Raise svc if task's xSecureContext is not NULL. */
it ne
svcne 1 /* Secure context is freed in the supervisor call. portSVC_FREE_SECURE_CONTEXT = 1. */
svcne 101 /* Secure context is freed in the supervisor call. portSVC_FREE_SECURE_CONTEXT = 101. */
bx lr /* Return. */
/*-----------------------------------------------------------*/

View file

@ -32,15 +32,12 @@
/*-----------------------------------------------------------*/
#include "FreeRTOSConfig.h"
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0
#endif
/* These must be in sync with portmacro.h. */
#define portSVC_SYSTEM_CALL_ENTER 4 /* System calls with upto 4 parameters. */
#define portSVC_SYSTEM_CALL_ENTER_1 5 /* System calls with 5 parameters. */
#define portSVC_SYSTEM_CALL_EXIT 6
/*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
@ -56,10 +53,7 @@ MPU_xTaskDelayUntil:
b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskDelayUntilImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskAbortDelay
@ -73,10 +67,7 @@ MPU_xTaskAbortDelay:
b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskAbortDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskDelay
@ -90,10 +81,7 @@ MPU_vTaskDelay:
b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskPriorityGet
@ -107,10 +95,7 @@ MPU_uxTaskPriorityGet:
b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskPriorityGetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/
PUBLIC MPU_eTaskGetState
@ -124,10 +109,7 @@ MPU_eTaskGetState:
b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_eTaskGetStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskGetInfo
@ -141,10 +123,7 @@ MPU_vTaskGetInfo:
b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskGetInfoImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetIdleTaskHandle
@ -158,10 +137,7 @@ MPU_xTaskGetIdleTaskHandle:
b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetIdleTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSuspend
@ -175,10 +151,7 @@ MPU_vTaskSuspend:
b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSuspendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskResume
@ -192,10 +165,7 @@ MPU_vTaskResume:
b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskResumeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetTickCount
@ -209,10 +179,7 @@ MPU_xTaskGetTickCount:
b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetTickCountImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetNumberOfTasks
@ -226,10 +193,7 @@ MPU_uxTaskGetNumberOfTasks:
b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetNumberOfTasksImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimeCounter
@ -243,10 +207,7 @@ MPU_ulTaskGetRunTimeCounter:
b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimePercent
@ -260,10 +221,7 @@ MPU_ulTaskGetRunTimePercent:
b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimePercent
@ -277,10 +235,7 @@ MPU_ulTaskGetIdleRunTimePercent:
b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetIdleRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimeCounter
@ -294,10 +249,7 @@ MPU_ulTaskGetIdleRunTimeCounter:
b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGetIdleRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetApplicationTaskTag
@ -311,10 +263,7 @@ MPU_vTaskSetApplicationTaskTag:
b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetApplicationTaskTag
@ -328,10 +277,7 @@ MPU_xTaskGetApplicationTaskTag:
b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetThreadLocalStoragePointer
@ -345,10 +291,7 @@ MPU_vTaskSetThreadLocalStoragePointer:
b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/
PUBLIC MPU_pvTaskGetThreadLocalStoragePointer
@ -362,10 +305,7 @@ MPU_pvTaskGetThreadLocalStoragePointer:
b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pvTaskGetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetSystemState
@ -379,10 +319,7 @@ MPU_uxTaskGetSystemState:
b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetSystemStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark
@ -396,10 +333,7 @@ MPU_uxTaskGetStackHighWaterMark:
b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetStackHighWaterMarkImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark2
@ -413,10 +347,7 @@ MPU_uxTaskGetStackHighWaterMark2:
b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTaskGetStackHighWaterMark2Impl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetCurrentTaskHandle
@ -430,10 +361,7 @@ MPU_xTaskGetCurrentTaskHandle:
b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetCurrentTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetSchedulerState
@ -447,10 +375,7 @@ MPU_xTaskGetSchedulerState:
b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGetSchedulerStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetTimeOutState
@ -464,10 +389,7 @@ MPU_vTaskSetTimeOutState:
b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTaskSetTimeOutStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskCheckForTimeOut
@ -481,14 +403,11 @@ MPU_xTaskCheckForTimeOut:
b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskCheckForTimeOutImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotify
MPU_xTaskGenericNotify:
PUBLIC MPU_xTaskGenericNotifyEntry
MPU_xTaskGenericNotifyEntry:
push {r0}
mrs r0, control
tst r0, #1
@ -498,14 +417,11 @@ MPU_xTaskGenericNotify:
b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTaskGenericNotifyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyWait
MPU_xTaskGenericNotifyWait:
PUBLIC MPU_xTaskGenericNotifyWaitEntry
MPU_xTaskGenericNotifyWaitEntry:
push {r0}
mrs r0, control
tst r0, #1
@ -515,10 +431,7 @@ MPU_xTaskGenericNotifyWait:
b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTaskGenericNotifyWaitImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyTake
@ -532,10 +445,7 @@ MPU_ulTaskGenericNotifyTake:
b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGenericNotifyTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyStateClear
@ -549,10 +459,7 @@ MPU_xTaskGenericNotifyStateClear:
b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTaskGenericNotifyStateClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyValueClear
@ -566,10 +473,7 @@ MPU_ulTaskGenericNotifyValueClear:
b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_ulTaskGenericNotifyValueClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGenericSend
@ -583,10 +487,7 @@ MPU_xQueueGenericSend:
b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGenericSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueMessagesWaiting
@ -600,10 +501,7 @@ MPU_uxQueueMessagesWaiting:
b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxQueueMessagesWaitingImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueSpacesAvailable
@ -617,10 +515,7 @@ MPU_uxQueueSpacesAvailable:
b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxQueueSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueReceive
@ -634,10 +529,7 @@ MPU_xQueueReceive:
b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueuePeek
@ -651,10 +543,7 @@ MPU_xQueuePeek:
b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueuePeekImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSemaphoreTake
@ -668,10 +557,7 @@ MPU_xQueueSemaphoreTake:
b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueSemaphoreTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGetMutexHolder
@ -685,10 +571,7 @@ MPU_xQueueGetMutexHolder:
b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGetMutexHolderImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueTakeMutexRecursive
@ -702,10 +585,7 @@ MPU_xQueueTakeMutexRecursive:
b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueTakeMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGiveMutexRecursive
@ -719,10 +599,7 @@ MPU_xQueueGiveMutexRecursive:
b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueGiveMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSelectFromSet
@ -736,10 +613,7 @@ MPU_xQueueSelectFromSet:
b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueSelectFromSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/
PUBLIC MPU_xQueueAddToSet
@ -753,10 +627,7 @@ MPU_xQueueAddToSet:
b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xQueueAddToSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/
PUBLIC MPU_vQueueAddToRegistry
@ -770,10 +641,7 @@ MPU_vQueueAddToRegistry:
b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vQueueAddToRegistryImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/
PUBLIC MPU_vQueueUnregisterQueue
@ -787,10 +655,7 @@ MPU_vQueueUnregisterQueue:
b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vQueueUnregisterQueueImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/
PUBLIC MPU_pcQueueGetName
@ -804,10 +669,7 @@ MPU_pcQueueGetName:
b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pcQueueGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/
PUBLIC MPU_pvTimerGetTimerID
@ -821,10 +683,7 @@ MPU_pvTimerGetTimerID:
b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pvTimerGetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetTimerID
@ -838,10 +697,7 @@ MPU_vTimerSetTimerID:
b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTimerSetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerIsTimerActive
@ -855,10 +711,7 @@ MPU_xTimerIsTimerActive:
b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerIsTimerActiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetTimerDaemonTaskHandle
@ -872,14 +725,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetTimerDaemonTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommandFromTask
MPU_xTimerGenericCommandFromTask:
PUBLIC MPU_xTimerGenericCommandFromTaskEntry
MPU_xTimerGenericCommandFromTaskEntry:
push {r0}
mrs r0, control
tst r0, #1
@ -889,10 +739,7 @@ MPU_xTimerGenericCommandFromTask:
b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTimerGenericCommandFromTaskImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/
PUBLIC MPU_pcTimerGetName
@ -906,10 +753,7 @@ MPU_pcTimerGetName:
b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_pcTimerGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetReloadMode
@ -923,10 +767,7 @@ MPU_vTimerSetReloadMode:
b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vTimerSetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetReloadMode
@ -940,10 +781,7 @@ MPU_xTimerGetReloadMode:
b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_uxTimerGetReloadMode
@ -957,10 +795,7 @@ MPU_uxTimerGetReloadMode:
b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetPeriod
@ -974,10 +809,7 @@ MPU_xTimerGetPeriod:
b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetPeriodImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetExpiryTime
@ -991,14 +823,11 @@ MPU_xTimerGetExpiryTime:
b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xTimerGetExpiryTimeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupWaitBits
MPU_xEventGroupWaitBits:
PUBLIC MPU_xEventGroupWaitBitsEntry
MPU_xEventGroupWaitBitsEntry:
push {r0}
mrs r0, control
tst r0, #1
@ -1008,10 +837,7 @@ MPU_xEventGroupWaitBits:
b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xEventGroupWaitBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupClearBits
@ -1025,10 +851,7 @@ MPU_xEventGroupClearBits:
b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupClearBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSetBits
@ -1042,10 +865,7 @@ MPU_xEventGroupSetBits:
b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupSetBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSync
@ -1059,10 +879,7 @@ MPU_xEventGroupSync:
b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xEventGroupSyncImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/
PUBLIC MPU_uxEventGroupGetNumber
@ -1076,10 +893,7 @@ MPU_uxEventGroupGetNumber:
b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_uxEventGroupGetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/
PUBLIC MPU_vEventGroupSetNumber
@ -1093,10 +907,7 @@ MPU_vEventGroupSetNumber:
b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_vEventGroupSetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSend
@ -1110,10 +921,7 @@ MPU_xStreamBufferSend:
b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferReceive
@ -1127,10 +935,7 @@ MPU_xStreamBufferReceive:
b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsFull
@ -1144,10 +949,7 @@ MPU_xStreamBufferIsFull:
b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferIsFullImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsEmpty
@ -1161,10 +963,7 @@ MPU_xStreamBufferIsEmpty:
b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferIsEmptyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSpacesAvailable
@ -1178,10 +977,7 @@ MPU_xStreamBufferSpacesAvailable:
b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferBytesAvailable
@ -1195,10 +991,7 @@ MPU_xStreamBufferBytesAvailable:
b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferBytesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSetTriggerLevel
@ -1212,10 +1005,7 @@ MPU_xStreamBufferSetTriggerLevel:
b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferSetTriggerLevelImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferNextMessageLengthBytes
@ -1229,10 +1019,7 @@ MPU_xStreamBufferNextMessageLengthBytes:
b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER
bl MPU_xStreamBufferNextMessageLengthBytesImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/
/* Default weak implementations in case one is not available from

View file

@ -32,6 +32,9 @@ the code is included in C files but excluded by the preprocessor in assembly
files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */
#include "FreeRTOSConfig.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0
#endif
@ -41,7 +44,6 @@ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler.
EXTERN vPortSVCHandler_C
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
EXTERN vSystemCallEnter
EXTERN vSystemCallEnter_1
EXTERN vSystemCallExit
#endif
@ -191,7 +193,7 @@ vStartFirstTask:
cpsie f
dsb
isb
svc 2 /* System call to start the first task. portSVC_START_SCHEDULER = 2. */
svc 102 /* System call to start the first task. portSVC_START_SCHEDULER = 102. */
/*-----------------------------------------------------------*/
ulSetInterruptMask:
@ -371,11 +373,9 @@ SVC_Handler:
ldr r1, [r0, #24]
ldrb r2, [r1, #-2]
cmp r2, #4 /* portSVC_SYSTEM_CALL_ENTER. */
beq syscall_enter
cmp r2, #5 /* portSVC_SYSTEM_CALL_ENTER_1. */
beq syscall_enter_1
cmp r2, #6 /* portSVC_SYSTEM_CALL_EXIT. */
cmp r2, #NUM_SYSTEM_CALLS
blt syscall_enter
cmp r2, #104 /* portSVC_SYSTEM_CALL_EXIT. */
beq syscall_exit
b vPortSVCHandler_C
@ -383,10 +383,6 @@ SVC_Handler:
mov r1, lr
b vSystemCallEnter
syscall_enter_1:
mov r1, lr
b vSystemCallEnter_1
syscall_exit:
mov r1, lr
b vSystemCallExit