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:
kar-rahul-aws 2023-08-01 20:12:58 +05:30 committed by GitHub
parent 0066c28cb2
commit b51a37314c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 693 additions and 799 deletions

View file

@ -1726,41 +1726,38 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
#if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommand( 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_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_xTimerGenericCommand( 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_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 */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTimerGenericCommandImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, ipsr \n"
" cmp r0, #0 \n"
" bne MPU_xTimerGenericCommand_Priv \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" beq MPU_xTimerGenericCommand_Priv \n"
" MPU_xTimerGenericCommand_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGenericCommandImpl \n"
" svc %1 \n"
" bx lr \n"
" MPU_xTimerGenericCommand_Priv: \n"
" pop {r0, r1} \n"
" b MPU_xTimerGenericCommandImpl \n"
" \n"
" .syntax unified \n"
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
" MPU_xTimerGenericCommandFromTask_Priv: \n"
" pop {r0, r1} \n"
" b MPU_xTimerGenericCommandFromTaskImpl \n"
" 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"
);
}

View file

@ -1726,41 +1726,38 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
#if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommand( 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_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_xTimerGenericCommand( 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_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 */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTimerGenericCommandImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, ipsr \n"
" cmp r0, #0 \n"
" bne MPU_xTimerGenericCommand_Priv \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" beq MPU_xTimerGenericCommand_Priv \n"
" MPU_xTimerGenericCommand_Unpriv: \n"
" pop {r0, r1} \n"
" svc %0 \n"
" bl MPU_xTimerGenericCommandImpl \n"
" svc %1 \n"
" bx lr \n"
" MPU_xTimerGenericCommand_Priv: \n"
" pop {r0, r1} \n"
" b MPU_xTimerGenericCommandImpl \n"
" \n"
" .syntax unified \n"
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
" \n"
" push {r0, r1} \n"
" mrs r0, control \n"
" movs r1, #1 \n"
" tst r0, r1 \n"
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
" MPU_xTimerGenericCommandFromTask_Priv: \n"
" pop {r0, r1} \n"
" b MPU_xTimerGenericCommandFromTaskImpl \n"
" 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"
);
}

View file

@ -1676,41 +1676,37 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
#if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommand( 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_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_xTimerGenericCommand( 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_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 */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTimerGenericCommandImpl \n"
" \n"
" push {r0} \n"
" mrs r0, ipsr \n"
" cmp r0, #0 \n"
" bne MPU_xTimerGenericCommand_Priv \n"
" mrs r0, control \n"
" tst r0, #1 \n"
" beq MPU_xTimerGenericCommand_Priv \n"
" MPU_xTimerGenericCommand_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGenericCommandImpl \n"
" svc %1 \n"
" bx lr \n"
" MPU_xTimerGenericCommand_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGenericCommandImpl \n"
" \n"
" \n"
" .syntax unified \n"
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
" \n"
" push {r0} \n"
" mrs r0, control \n"
" tst r0, #1 \n"
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
" MPU_xTimerGenericCommandFromTask_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGenericCommandFromTaskImpl \n"
" 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"
);
}

View file

@ -1676,41 +1676,37 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
#if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommand( 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_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_xTimerGenericCommand( 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_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 */
{
__asm volatile
(
" .syntax unified \n"
" .extern MPU_xTimerGenericCommandImpl \n"
" \n"
" push {r0} \n"
" mrs r0, ipsr \n"
" cmp r0, #0 \n"
" bne MPU_xTimerGenericCommand_Priv \n"
" mrs r0, control \n"
" tst r0, #1 \n"
" beq MPU_xTimerGenericCommand_Priv \n"
" MPU_xTimerGenericCommand_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n"
" bl MPU_xTimerGenericCommandImpl \n"
" svc %1 \n"
" bx lr \n"
" MPU_xTimerGenericCommand_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGenericCommandImpl \n"
" \n"
" \n"
" .syntax unified \n"
" .extern MPU_xTimerGenericCommandFromTaskImpl \n"
" \n"
" push {r0} \n"
" mrs r0, control \n"
" tst r0, #1 \n"
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
" MPU_xTimerGenericCommandFromTask_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGenericCommandFromTaskImpl \n"
" 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"
);
}

View file

@ -945,28 +945,22 @@ MPU_xTimerGetTimerDaemonTaskHandle:
bx lr
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommand
MPU_xTimerGenericCommand:
PUBLIC MPU_xTimerGenericCommandFromTask
MPU_xTimerGenericCommandFromTask:
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
movs r1, #1
tst r0, r1
beq MPU_xTimerGenericCommand_Priv
MPU_xTimerGenericCommand_Unpriv:
bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv:
pop {r0, r1}
b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTimerGenericCommandImpl
bl MPU_xTimerGenericCommandFromTaskImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
MPU_xTimerGenericCommand_Priv:
pop {r0, r1}
b MPU_xTimerGenericCommandImpl
/*-----------------------------------------------------------*/
PUBLIC MPU_pcTimerGetName
@ -1532,9 +1526,9 @@ MPU_xTimerIsTimerActiveImpl:
MPU_xTimerGetTimerDaemonTaskHandleImpl:
b MPU_xTimerGetTimerDaemonTaskHandleImpl
PUBWEAK MPU_xTimerGenericCommandImpl
MPU_xTimerGenericCommandImpl:
b MPU_xTimerGenericCommandImpl
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTaskImpl:
b MPU_xTimerGenericCommandFromTaskImpl
PUBWEAK MPU_pcTimerGetNameImpl
MPU_pcTimerGetNameImpl:

View file

@ -945,28 +945,22 @@ MPU_xTimerGetTimerDaemonTaskHandle:
bx lr
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommand
MPU_xTimerGenericCommand:
PUBLIC MPU_xTimerGenericCommandFromTask
MPU_xTimerGenericCommandFromTask:
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
movs r1, #1
tst r0, r1
beq MPU_xTimerGenericCommand_Priv
MPU_xTimerGenericCommand_Unpriv:
bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv:
pop {r0, r1}
b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTimerGenericCommandImpl
bl MPU_xTimerGenericCommandFromTaskImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
MPU_xTimerGenericCommand_Priv:
pop {r0, r1}
b MPU_xTimerGenericCommandImpl
/*-----------------------------------------------------------*/
PUBLIC MPU_pcTimerGetName
@ -1532,9 +1526,9 @@ MPU_xTimerIsTimerActiveImpl:
MPU_xTimerGetTimerDaemonTaskHandleImpl:
b MPU_xTimerGetTimerDaemonTaskHandleImpl
PUBWEAK MPU_xTimerGenericCommandImpl
MPU_xTimerGenericCommandImpl:
b MPU_xTimerGenericCommandImpl
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTaskImpl:
b MPU_xTimerGenericCommandFromTaskImpl
PUBWEAK MPU_pcTimerGetNameImpl
MPU_pcTimerGetNameImpl:

View file

@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
bx lr
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommand
MPU_xTimerGenericCommand:
PUBLIC MPU_xTimerGenericCommandFromTask
MPU_xTimerGenericCommandFromTask:
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
tst r0, #1
beq MPU_xTimerGenericCommand_Priv
MPU_xTimerGenericCommand_Unpriv:
bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv:
pop {r0}
b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTimerGenericCommandImpl
bl MPU_xTimerGenericCommandFromTaskImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
MPU_xTimerGenericCommand_Priv:
pop {r0}
b MPU_xTimerGenericCommandImpl
/*-----------------------------------------------------------*/
PUBLIC MPU_pcTimerGetName
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
MPU_xTimerGetTimerDaemonTaskHandleImpl:
b MPU_xTimerGetTimerDaemonTaskHandleImpl
PUBWEAK MPU_xTimerGenericCommandImpl
MPU_xTimerGenericCommandImpl:
b MPU_xTimerGenericCommandImpl
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTaskImpl:
b MPU_xTimerGenericCommandFromTaskImpl
PUBWEAK MPU_pcTimerGetNameImpl
MPU_pcTimerGetNameImpl:

View file

@ -895,27 +895,21 @@ MPU_xTimerGetTimerDaemonTaskHandle:
bx lr
/*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommand
MPU_xTimerGenericCommand:
PUBLIC MPU_xTimerGenericCommandFromTask
MPU_xTimerGenericCommandFromTask:
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
tst r0, #1
beq MPU_xTimerGenericCommand_Priv
MPU_xTimerGenericCommand_Unpriv:
bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv:
pop {r0}
b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1
bl MPU_xTimerGenericCommandImpl
bl MPU_xTimerGenericCommandFromTaskImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
MPU_xTimerGenericCommand_Priv:
pop {r0}
b MPU_xTimerGenericCommandImpl
/*-----------------------------------------------------------*/
PUBLIC MPU_pcTimerGetName
@ -1461,9 +1455,9 @@ MPU_xTimerIsTimerActiveImpl:
MPU_xTimerGetTimerDaemonTaskHandleImpl:
b MPU_xTimerGetTimerDaemonTaskHandleImpl
PUBWEAK MPU_xTimerGenericCommandImpl
MPU_xTimerGenericCommandImpl:
b MPU_xTimerGenericCommandImpl
PUBWEAK MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTaskImpl:
b MPU_xTimerGenericCommandFromTaskImpl
PUBWEAK MPU_pcTimerGetNameImpl
MPU_pcTimerGetNameImpl: