mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 05:21:59 -04:00
Update MPU wrapper for xTimerGenericCommand API (#734)
* Update xTimerGenericCommand API as per SMP branch Signed-off-by: kar-rahul-aws <karahulx@amazon.com> * Fix formatting * Code review changes Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com> * Fix Formatting --------- Signed-off-by: kar-rahul-aws <karahulx@amazon.com> Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com> Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
This commit is contained in:
parent
0066c28cb2
commit
b51a37314c
|
@ -223,7 +223,7 @@ void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
|
||||||
void * pvNewID ) FREERTOS_SYSTEM_CALL;
|
void * pvNewID ) FREERTOS_SYSTEM_CALL;
|
||||||
BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
|
BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
|
||||||
TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) FREERTOS_SYSTEM_CALL;
|
TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) FREERTOS_SYSTEM_CALL;
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -252,6 +252,11 @@ TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName,
|
||||||
StaticTimer_t * pxTimerBuffer ) PRIVILEGED_FUNCTION;
|
StaticTimer_t * pxTimerBuffer ) PRIVILEGED_FUNCTION;
|
||||||
BaseType_t MPU_xTimerGetStaticBuffer( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGetStaticBuffer( TimerHandle_t xTimer,
|
||||||
StaticTimer_t ** ppxTimerBuffer ) PRIVILEGED_FUNCTION;
|
StaticTimer_t ** ppxTimerBuffer ) PRIVILEGED_FUNCTION;
|
||||||
|
BaseType_t MPU_xTimerGenericCommandFromISR( TimerHandle_t xTimer,
|
||||||
|
const BaseType_t xCommandID,
|
||||||
|
const TickType_t xOptionalValue,
|
||||||
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
const TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
|
||||||
|
|
||||||
/* MPU versions of event_group.h API functions. */
|
/* MPU versions of event_group.h API functions. */
|
||||||
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
|
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
|
||||||
|
|
|
@ -156,7 +156,7 @@
|
||||||
#define vTimerSetTimerID MPU_vTimerSetTimerID
|
#define vTimerSetTimerID MPU_vTimerSetTimerID
|
||||||
#define xTimerIsTimerActive MPU_xTimerIsTimerActive
|
#define xTimerIsTimerActive MPU_xTimerIsTimerActive
|
||||||
#define xTimerGetTimerDaemonTaskHandle MPU_xTimerGetTimerDaemonTaskHandle
|
#define xTimerGetTimerDaemonTaskHandle MPU_xTimerGetTimerDaemonTaskHandle
|
||||||
#define xTimerGenericCommand MPU_xTimerGenericCommand
|
#define xTimerGenericCommandFromTask MPU_xTimerGenericCommandFromTask
|
||||||
#define pcTimerGetName MPU_pcTimerGetName
|
#define pcTimerGetName MPU_pcTimerGetName
|
||||||
#define vTimerSetReloadMode MPU_vTimerSetReloadMode
|
#define vTimerSetReloadMode MPU_vTimerSetReloadMode
|
||||||
#define uxTimerGetReloadMode MPU_uxTimerGetReloadMode
|
#define uxTimerGetReloadMode MPU_uxTimerGetReloadMode
|
||||||
|
@ -171,6 +171,7 @@
|
||||||
#define xTimerCreate MPU_xTimerCreate
|
#define xTimerCreate MPU_xTimerCreate
|
||||||
#define xTimerCreateStatic MPU_xTimerCreateStatic
|
#define xTimerCreateStatic MPU_xTimerCreateStatic
|
||||||
#define xTimerGetStaticBuffer MPU_xTimerGetStaticBuffer
|
#define xTimerGetStaticBuffer MPU_xTimerGetStaticBuffer
|
||||||
|
#define xTimerGenericCommandFromISR MPU_xTimerGenericCommandFromISR
|
||||||
#endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
|
#endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
|
||||||
|
|
||||||
/* Map standard event_group.h API functions to the MPU equivalents. */
|
/* Map standard event_group.h API functions to the MPU equivalents. */
|
||||||
|
|
|
@ -1726,13 +1726,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1741,25 +1741,22 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0, r1} \n"
|
" push {r0, r1} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" movs r1, #1 \n"
|
" movs r1, #1 \n"
|
||||||
" tst r0, r1 \n"
|
" tst r0, r1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0, r1} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0, r1} \n"
|
" pop {r0, r1} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0, r1} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1726,13 +1726,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1741,25 +1741,22 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0, r1} \n"
|
" push {r0, r1} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" movs r1, #1 \n"
|
" movs r1, #1 \n"
|
||||||
" tst r0, r1 \n"
|
" tst r0, r1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0, r1} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0, r1} \n"
|
" pop {r0, r1} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0, r1} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -945,28 +945,22 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0, r1}
|
push {r0, r1}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
movs r1, #1
|
movs r1, #1
|
||||||
tst r0, r1
|
tst r0, r1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0, r1}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0, r1}
|
pop {r0, r1}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0, r1}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1532,9 +1526,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -945,28 +945,22 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0, r1}
|
push {r0, r1}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
movs r1, #1
|
movs r1, #1
|
||||||
tst r0, r1
|
tst r0, r1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0, r1}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0, r1}
|
pop {r0, r1}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0, r1}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1532,9 +1526,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0}
|
push {r0}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0}
|
push {r0}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -1943,7 +1943,7 @@
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1956,7 +1956,7 @@
|
||||||
portRAISE_PRIVILEGE();
|
portRAISE_PRIVILEGE();
|
||||||
portMEMORY_BARRIER();
|
portMEMORY_BARRIER();
|
||||||
|
|
||||||
xReturn = xTimerGenericCommand( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
|
xReturn = xTimerGenericCommandFromTask( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
|
||||||
portMEMORY_BARRIER();
|
portMEMORY_BARRIER();
|
||||||
|
|
||||||
portRESET_PRIVILEGE();
|
portRESET_PRIVILEGE();
|
||||||
|
@ -1964,7 +1964,7 @@
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
xReturn = xTimerGenericCommand( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
|
xReturn = xTimerGenericCommandFromTask( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
|
||||||
}
|
}
|
||||||
|
|
||||||
return xReturn;
|
return xReturn;
|
||||||
|
|
|
@ -2917,13 +2917,13 @@
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommandImpl( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTaskImpl( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
|
const TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommandImpl( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTaskImpl( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -2951,7 +2951,7 @@
|
||||||
|
|
||||||
if( xInternalTimerHandle != NULL )
|
if( xInternalTimerHandle != NULL )
|
||||||
{
|
{
|
||||||
xReturn = xTimerGenericCommand( xInternalTimerHandle, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
|
xReturn = xTimerGenericCommandFromTask( xInternalTimerHandle, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3232,6 +3232,47 @@
|
||||||
#endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) */
|
#endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) */
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
|
BaseType_t MPU_xTimerGenericCommandFromISR( TimerHandle_t xTimer,
|
||||||
|
const BaseType_t xCommandID,
|
||||||
|
const TickType_t xOptionalValue,
|
||||||
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
const TickType_t xTicksToWait ) /* PRIVILEGED_FUNCTION */
|
||||||
|
{
|
||||||
|
BaseType_t xReturn = pdFALSE;
|
||||||
|
TimerHandle_t xInternalTimerHandle = NULL;
|
||||||
|
int32_t lIndex;
|
||||||
|
BaseType_t xIsHigherPriorityTaskWokenWriteable = pdFALSE;
|
||||||
|
|
||||||
|
if( pxHigherPriorityTaskWoken != NULL )
|
||||||
|
{
|
||||||
|
xIsHigherPriorityTaskWokenWriteable = xPortIsAuthorizedToAccessBuffer( pxHigherPriorityTaskWoken,
|
||||||
|
sizeof( BaseType_t ),
|
||||||
|
tskMPU_WRITE_PERMISSION );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ( pxHigherPriorityTaskWoken == NULL ) || ( xIsHigherPriorityTaskWokenWriteable == pdTRUE ) )
|
||||||
|
{
|
||||||
|
lIndex = ( int32_t ) xTimer;
|
||||||
|
|
||||||
|
if( IS_EXTERNAL_INDEX_VALID( lIndex ) != pdFALSE )
|
||||||
|
{
|
||||||
|
xInternalTimerHandle = MPU_GetTimerHandleAtIndex( CONVERT_TO_INTERNAL_INDEX( lIndex ) );
|
||||||
|
|
||||||
|
if( xInternalTimerHandle != NULL )
|
||||||
|
{
|
||||||
|
xReturn = xTimerGenericCommandFromISR( xInternalTimerHandle, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return xReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* if ( configUSE_TIMERS == 1 ) */
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
/* MPU wrappers for event group APIs. */
|
/* MPU wrappers for event group APIs. */
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
|
@ -1726,13 +1726,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1741,25 +1741,22 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0, r1} \n"
|
" push {r0, r1} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" movs r1, #1 \n"
|
" movs r1, #1 \n"
|
||||||
" tst r0, r1 \n"
|
" tst r0, r1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0, r1} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0, r1} \n"
|
" pop {r0, r1} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0, r1} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1726,13 +1726,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1741,25 +1741,22 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0, r1} \n"
|
" push {r0, r1} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" movs r1, #1 \n"
|
" movs r1, #1 \n"
|
||||||
" tst r0, r1 \n"
|
" tst r0, r1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0, r1} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0, r1} \n"
|
" pop {r0, r1} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0, r1} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -1676,13 +1676,13 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
|
@ -1691,25 +1691,21 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
||||||
__asm volatile
|
__asm volatile
|
||||||
(
|
(
|
||||||
" .syntax unified \n"
|
" .syntax unified \n"
|
||||||
" .extern MPU_xTimerGenericCommandImpl \n"
|
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" \n"
|
" \n"
|
||||||
" push {r0} \n"
|
" push {r0} \n"
|
||||||
" mrs r0, ipsr \n"
|
|
||||||
" cmp r0, #0 \n"
|
|
||||||
" bne MPU_xTimerGenericCommand_Priv \n"
|
|
||||||
" mrs r0, control \n"
|
" mrs r0, control \n"
|
||||||
" tst r0, #1 \n"
|
" tst r0, #1 \n"
|
||||||
" beq MPU_xTimerGenericCommand_Priv \n"
|
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
|
||||||
" MPU_xTimerGenericCommand_Unpriv: \n"
|
" MPU_xTimerGenericCommandFromTask_Priv: \n"
|
||||||
|
" pop {r0} \n"
|
||||||
|
" b MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
|
" MPU_xTimerGenericCommandFromTask_Unpriv: \n"
|
||||||
" pop {r0} \n"
|
" pop {r0} \n"
|
||||||
" svc %0 \n"
|
" svc %0 \n"
|
||||||
" bl MPU_xTimerGenericCommandImpl \n"
|
" bl MPU_xTimerGenericCommandFromTaskImpl \n"
|
||||||
" svc %1 \n"
|
" svc %1 \n"
|
||||||
" bx lr \n"
|
" bx lr \n"
|
||||||
" MPU_xTimerGenericCommand_Priv: \n"
|
|
||||||
" pop {r0} \n"
|
|
||||||
" b MPU_xTimerGenericCommandImpl \n"
|
|
||||||
" \n"
|
|
||||||
" \n"
|
" \n"
|
||||||
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory"
|
||||||
);
|
);
|
||||||
|
|
|
@ -945,28 +945,22 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0, r1}
|
push {r0, r1}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
movs r1, #1
|
movs r1, #1
|
||||||
tst r0, r1
|
tst r0, r1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0, r1}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0, r1}
|
pop {r0, r1}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0, r1}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1532,9 +1526,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -945,28 +945,22 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0, r1}
|
push {r0, r1}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
movs r1, #1
|
movs r1, #1
|
||||||
tst r0, r1
|
tst r0, r1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0, r1}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0, r1}
|
pop {r0, r1}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0, r1}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1532,9 +1526,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0}
|
push {r0}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0}
|
push {r0}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0}
|
push {r0}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0}
|
push {r0}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -899,27 +899,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0}
|
push {r0}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1465,9 +1459,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0}
|
push {r0}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0}
|
push {r0}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0}
|
push {r0}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
|
||||||
bx lr
|
bx lr
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_xTimerGenericCommand
|
PUBLIC MPU_xTimerGenericCommandFromTask
|
||||||
MPU_xTimerGenericCommand:
|
MPU_xTimerGenericCommandFromTask:
|
||||||
push {r0}
|
push {r0}
|
||||||
/* This function can be called from ISR also and therefore, we need a check
|
|
||||||
* to take privileged path, if called from ISR. */
|
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv:
|
MPU_xTimerGenericCommandFromTask_Priv:
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv:
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
PUBLIC MPU_pcTimerGetName
|
PUBLIC MPU_pcTimerGetName
|
||||||
|
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
|
||||||
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
MPU_xTimerGetTimerDaemonTaskHandleImpl:
|
||||||
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
b MPU_xTimerGetTimerDaemonTaskHandleImpl
|
||||||
|
|
||||||
PUBWEAK MPU_xTimerGenericCommandImpl
|
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
|
||||||
MPU_xTimerGenericCommandImpl:
|
MPU_xTimerGenericCommandFromTaskImpl:
|
||||||
b MPU_xTimerGenericCommandImpl
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
PUBWEAK MPU_pcTimerGetNameImpl
|
PUBWEAK MPU_pcTimerGetNameImpl
|
||||||
MPU_pcTimerGetNameImpl:
|
MPU_pcTimerGetNameImpl:
|
||||||
|
|
|
@ -1426,37 +1426,34 @@ MPU_xTimerGetTimerDaemonTaskHandle_Unpriv
|
||||||
|
|
||||||
#if ( configUSE_TIMERS == 1 )
|
#if ( configUSE_TIMERS == 1 )
|
||||||
|
|
||||||
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
|
const TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
|
||||||
|
|
||||||
__asm BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
|
__asm BaseType_t MPU_xTimerGenericCommandFromTask( TimerHandle_t xTimer,
|
||||||
const BaseType_t xCommandID,
|
const BaseType_t xCommandID,
|
||||||
const TickType_t xOptionalValue,
|
const TickType_t xOptionalValue,
|
||||||
BaseType_t * const pxHigherPriorityTaskWoken,
|
BaseType_t * const pxHigherPriorityTaskWoken,
|
||||||
const TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
|
const TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
|
||||||
{
|
{
|
||||||
PRESERVE8
|
PRESERVE8
|
||||||
extern MPU_xTimerGenericCommandImpl
|
extern MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
|
||||||
push {r0}
|
push {r0}
|
||||||
mrs r0, ipsr
|
|
||||||
cmp r0, #0
|
|
||||||
bne MPU_xTimerGenericCommand_Priv
|
|
||||||
mrs r0, control
|
mrs r0, control
|
||||||
tst r0, #1
|
tst r0, #1
|
||||||
beq MPU_xTimerGenericCommand_Priv
|
bne MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
MPU_xTimerGenericCommand_Unpriv
|
MPU_xTimerGenericCommandFromTask_Priv
|
||||||
|
pop {r0}
|
||||||
|
b MPU_xTimerGenericCommandFromTaskImpl
|
||||||
|
MPU_xTimerGenericCommandFromTask_Unpriv
|
||||||
pop {r0}
|
pop {r0}
|
||||||
svc #portSVC_SYSTEM_CALL_ENTER_1
|
svc #portSVC_SYSTEM_CALL_ENTER_1
|
||||||
bl MPU_xTimerGenericCommandImpl
|
bl MPU_xTimerGenericCommandFromTaskImpl
|
||||||
svc #portSVC_SYSTEM_CALL_EXIT
|
svc #portSVC_SYSTEM_CALL_EXIT
|
||||||
bx lr
|
bx lr
|
||||||
MPU_xTimerGenericCommand_Priv
|
|
||||||
pop {r0}
|
|
||||||
b MPU_xTimerGenericCommandImpl
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* if ( configUSE_TIMERS == 1 ) */
|
#endif /* if ( configUSE_TIMERS == 1 ) */
|
||||||
|
|
Loading…
Reference in a new issue