arch/arm/src/stm32l4: STM32L4 has fetchadd and testset
This commit is contained in:
parent
35697ed234
commit
d42b6cbb97
@ -340,9 +340,10 @@ config ARCH_CHIP_STM32L4
|
|||||||
bool "STMicro STM32 L4"
|
bool "STMicro STM32 L4"
|
||||||
select ARCH_CORTEXM4
|
select ARCH_CORTEXM4
|
||||||
select ARCH_HAVE_CMNVECTOR
|
select ARCH_HAVE_CMNVECTOR
|
||||||
|
select ARCH_HAVE_MPU
|
||||||
|
select ARCH_HAVE_FETCHADD
|
||||||
select ARCH_HAVE_I2CRESET
|
select ARCH_HAVE_I2CRESET
|
||||||
select ARCH_HAVE_HEAPCHECK
|
select ARCH_HAVE_HEAPCHECK
|
||||||
select ARCH_HAVE_MPU
|
|
||||||
select ARCH_HAVE_PROGMEM
|
select ARCH_HAVE_PROGMEM
|
||||||
select ARCH_HAVE_SPI_BITORDER
|
select ARCH_HAVE_SPI_BITORDER
|
||||||
select ARCH_HAVE_TICKLESS
|
select ARCH_HAVE_TICKLESS
|
||||||
|
@ -76,7 +76,7 @@ up_fetchadd32:
|
|||||||
add r2, r2, r1 /* Add the addend */
|
add r2, r2, r1 /* Add the addend */
|
||||||
|
|
||||||
strex r3, r2, [r0] /* Attempt to save the result */
|
strex r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strex failed */
|
teq r3, #0 /* r3 will be 1 if strex failed */
|
||||||
bne 1b /* Failed to lock... try again */
|
bne 1b /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the incremented value */
|
mov r0, r2 /* Return the incremented value */
|
||||||
@ -110,7 +110,7 @@ up_fetchsub32:
|
|||||||
sub r2, r2, r1 /* Subtract the subtrahend */
|
sub r2, r2, r1 /* Subtract the subtrahend */
|
||||||
|
|
||||||
strex r3, r2, [r0] /* Attempt to save the result */
|
strex r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strex failed */
|
teq r3, #0 /* r3 will be 1 if strex failed */
|
||||||
bne 1b /* Failed to lock... try again */
|
bne 1b /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the decremented value */
|
mov r0, r2 /* Return the decremented value */
|
||||||
@ -144,7 +144,7 @@ up_fetchadd16:
|
|||||||
add r2, r2, r1 /* Add the addend */
|
add r2, r2, r1 /* Add the addend */
|
||||||
|
|
||||||
strexh r3, r2, [r0] /* Attempt to save the result */
|
strexh r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strexh failed */
|
teq r3, #0 /* r3 will be 1 if strexh failed */
|
||||||
bne 1b /* Failed to lock... try again */
|
bne 1b /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the incremented value */
|
mov r0, r2 /* Return the incremented value */
|
||||||
@ -180,7 +180,7 @@ up_fetchsub16:
|
|||||||
/* Attempt to save the decremented value */
|
/* Attempt to save the decremented value */
|
||||||
|
|
||||||
strexh r3, r2, [r0] /* Attempt to save the result */
|
strexh r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strexh failed */
|
teq r3, #0 /* r3 will be 1 if strexh failed */
|
||||||
bne 1b /* Failed to lock... try again */
|
bne 1b /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the decremented value */
|
mov r0, r2 /* Return the decremented value */
|
||||||
@ -214,7 +214,7 @@ up_fetchadd8:
|
|||||||
add r2, r2, r1 /* Add the addend */
|
add r2, r2, r1 /* Add the addend */
|
||||||
|
|
||||||
strexb r3, r2, [r0] /* Attempt to save the result */
|
strexb r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strexb failed */
|
teq r3, #0 /* r3 will be 1 if strexb failed */
|
||||||
bne 1b /* Failed to lock... try again */
|
bne 1b /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the incremented value */
|
mov r0, r2 /* Return the incremented value */
|
||||||
@ -248,7 +248,7 @@ up_fetchsub8:
|
|||||||
sub r2, r2, r1 /* Subtract the subtrahend */
|
sub r2, r2, r1 /* Subtract the subtrahend */
|
||||||
|
|
||||||
strexb r3, r2, [r0] /* Attempt to save the result */
|
strexb r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strexb failed */
|
teq r3, #0 /* r3 will be 1 if strexb failed */
|
||||||
bne 1b /* Failed to lock... try again */
|
bne 1b /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the decremented value */
|
mov r0, r2 /* Return the decremented value */
|
||||||
|
@ -82,7 +82,7 @@ up_fetchadd32:
|
|||||||
add r2, r2, r1 /* Add the addend */
|
add r2, r2, r1 /* Add the addend */
|
||||||
|
|
||||||
strex r3, r2, [r0] /* Attempt to save the result */
|
strex r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strex failed */
|
teq r3, #0 /* r3 will be 1 if strex failed */
|
||||||
bne up_fetchadd32 /* Failed to lock... try again */
|
bne up_fetchadd32 /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the incremented value */
|
mov r0, r2 /* Return the incremented value */
|
||||||
@ -111,7 +111,7 @@ up_fetchsub32:
|
|||||||
sub r2, r2, r1 /* Subtract the subtrahend */
|
sub r2, r2, r1 /* Subtract the subtrahend */
|
||||||
|
|
||||||
strex r3, r2, [r0] /* Attempt to save the result */
|
strex r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strex failed */
|
teq r3, #0 /* r3 will be 1 if strex failed */
|
||||||
bne up_fetchsub32 /* Failed to lock... try again */
|
bne up_fetchsub32 /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the decremented value */
|
mov r0, r2 /* Return the decremented value */
|
||||||
@ -140,7 +140,7 @@ up_fetchadd16:
|
|||||||
add r2, r2, r1 /* Add the addend */
|
add r2, r2, r1 /* Add the addend */
|
||||||
|
|
||||||
strexh r3, r2, [r0] /* Attempt to save the result */
|
strexh r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strexh failed */
|
teq r3, #0 /* r3 will be 1 if strexh failed */
|
||||||
bne up_fetchadd16 /* Failed to lock... try again */
|
bne up_fetchadd16 /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the incremented value */
|
mov r0, r2 /* Return the incremented value */
|
||||||
@ -171,7 +171,7 @@ up_fetchsub16:
|
|||||||
/* Attempt to save the decremented value */
|
/* Attempt to save the decremented value */
|
||||||
|
|
||||||
strexh r3, r2, [r0] /* Attempt to save the result */
|
strexh r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strexh failed */
|
teq r3, #0 /* r3 will be 1 if strexh failed */
|
||||||
bne up_fetchsub16 /* Failed to lock... try again */
|
bne up_fetchsub16 /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the decremented value */
|
mov r0, r2 /* Return the decremented value */
|
||||||
@ -200,7 +200,7 @@ up_fetchadd8:
|
|||||||
add r2, r2, r1 /* Add the addend */
|
add r2, r2, r1 /* Add the addend */
|
||||||
|
|
||||||
strexb r3, r2, [r0] /* Attempt to save the result */
|
strexb r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strexb failed */
|
teq r3, #0 /* r3 will be 1 if strexb failed */
|
||||||
bne up_fetchadd8 /* Failed to lock... try again */
|
bne up_fetchadd8 /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the incremented value */
|
mov r0, r2 /* Return the incremented value */
|
||||||
@ -229,7 +229,7 @@ up_fetchsub8:
|
|||||||
sub r2, r2, r1 /* Subtract the subtrahend */
|
sub r2, r2, r1 /* Subtract the subtrahend */
|
||||||
|
|
||||||
strexb r3, r2, [r0] /* Attempt to save the result */
|
strexb r3, r2, [r0] /* Attempt to save the result */
|
||||||
teq r3, #0 /* r2 will be 1 is strexb failed */
|
teq r3, #0 /* r3 will be 1 if strexb failed */
|
||||||
bne up_fetchsub8 /* Failed to lock... try again */
|
bne up_fetchsub8 /* Failed to lock... try again */
|
||||||
|
|
||||||
mov r0, r2 /* Return the decremented value */
|
mov r0, r2 /* Return the decremented value */
|
||||||
|
@ -45,7 +45,7 @@ CMN_UASRCS =
|
|||||||
CMN_UCSRCS =
|
CMN_UCSRCS =
|
||||||
|
|
||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c
|
||||||
CMN_CSRCS += up_createstack.c up_mdelay.c up_udelay.c up_exit.c
|
CMN_CSRCS += up_createstack.c up_mdelay.c up_udelay.c up_exit.c
|
||||||
|
Loading…
Reference in New Issue
Block a user