Here is a working example:
@ connect led at pin 4
PINENABLE0 = 0x4000C1C0
value = 0xffffffbb
SYSAHBCLKCTRL = 0x40048080
GPIO_DIRP0 = 0xA0002000
GPIO_CLRP0 = 0xA0002280
GPIO_SETP0 = 0xA0002200
nval =1000000
led =4
.text
.align 2
.global _start
_start:
.word 0x10000200
.word ResetHandler + 1
.word loop + 1
.word loop + 1
.word loop + 1
.word loop + 1
.word loop + 1
.word loop + 1
.word loop + 1
ResetHandler:
ldr r1,=SYSAHBCLKCTRL
ldr r2, [r1]
mov r0, #1
lsl r0, #6
orr r2, r0
mov r0, #1
lsl r0, #18
orr r2, r0
str r2, [r1]
ldr r1,=PINENABLE0
ldr r2,=value
str r2,[r1]
ldr r1,=GPIO_DIRP0
ldr r2,=led
str r2,[r1]
ldr r1,=GPIO_CLRP0
ldr r2,=GPIO_SETP0
ldr r4,=led
blink3:
ldr r3,=nval
blink1:
sub r3,#1
cmp r3,#0
bne blink1
ldr r2,=GPIO_SETP0
str r4,[r2] @turn the LED on
ldr r3,=nval
blink2:
sub r3,#1
cmp r3,#0
bne blink2
ldr r1,=GPIO_CLRP0
str r4,[r1] @turn the LED off
b blink3
loop:
b loop
.align 2
.bss
Compile like this:
as -mcpu=cortex-m0 led06.s -o led.o
objcopy -O ihex led.o led.hex
objdump -D led.o >disasm.txt