45 lines
657 B
ArmAsm
45 lines
657 B
ArmAsm
|
|
.include armstart.s
|
|
|
|
;configure gpio as an output
|
|
ldr r0,GPFSEL1
|
|
ldr r1,[r0]
|
|
|
|
;ra&=~(7<<18); zero bits 18,19,20
|
|
mov r2,#0x7
|
|
lsl r2,r2,#18
|
|
bic r1,r2
|
|
;ra|=1<<18; set bit 18
|
|
mov r2,#0x1
|
|
lsl r2,r2,#18
|
|
orr r1,r2
|
|
str r1,[r0]
|
|
|
|
;prepare registers for loop
|
|
ldr r0,GPSET0
|
|
ldr r1,GPCLR0
|
|
mov r2,#1
|
|
lsl r3,r2,#16 ;(1<<16)
|
|
lsl r4,r2,#24 ;start count for counting loop
|
|
top:
|
|
str r3,[r0]
|
|
|
|
mov r5,r4
|
|
on:
|
|
sub r5,#1
|
|
bne on
|
|
|
|
str r3,[r1]
|
|
|
|
mov r5,r4
|
|
off:
|
|
sub r5,#1
|
|
bne off
|
|
|
|
b top
|
|
|
|
.align
|
|
GPFSEL1: .word 0x20200004
|
|
GPSET0: .word 0x2020001C
|
|
GPCLR0: .word 0x20200028
|