mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2026-01-18 15:50:32 -05:00
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:
parent
4ff01a7a4a
commit
76be28cdc6
114 changed files with 7521 additions and 16320 deletions
|
|
@ -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"
|
||||
);
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
);
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
);
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
);
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue