Demonstration of a spin lock
Dependencies: ELEC350-Practicals-FZ429
Fork of Task617Solution-mbedos-FZ429 by
myasm.s
- Committer:
- noutram
- Date:
- 2017-11-09
- Revision:
- 8:ad00c9036add
File content as of revision 8:ad00c9036add:
AREA asm_func, CODE, READONLY
; Export my_asm function location so that C compiler can find it and link
EXPORT myasm
myasm
; Write assmebler here
MOV R1, #0x20000000
BX R1 ; THIS IS BAD
BX LR
EXPORT spinlock
spinlock
LDREX R1,[R0] ;Read counter
SUBS R1, #1 ;Subtract 1
ITT PL ;IF True True >= 0
STREXPL R2,R1,[R0] ;TRY UPDATE
CMPPL R2,#0 ;SUCCEED?
BNE spinlock
BX LR
EXPORT spinunlock
spinunlock
LDREX R1,[R0]
ADD R1,#1
STREX R2,R1,[R0]
CMP R2,#0
BNE spinunlock
BX LR
END
