.equ GPX2CON,0x11000C40
.equ GPX2DAT,0X11000C44
.equ GPX1CON,0x11000C20
.equ GPX1DAT,0x11000C24
.equ GPF3CON,0x114001e0
.equ GPF3DAT,0x114001e4
.text
ldr r4,=GPX2CON
ldr r0,[r4]
bic r0,#0xf0000000
orr r0,r0,#0x10000000
str r0,[r4]
ldr r9,=GPX1CON
ldr r1,[r9]
bic r1,#0x0000000f
orr r1,r1,#0x00000001
str r1,[r9]
ldr r10,=GPF3CON
ldr r2,[r10]
bic r2,#0x000f0000
orr r2,r2,#0x00010000
str r2,[r10]
ldr r11,=GPF3CON
ldr r2,[r11]
bic r2,#0x00f00000
orr r2,r2,#0x00100000
str r2,[r11]
loop_led:
@set GPX2_7 pin High level
ldr r5,=GPX2DAT
ldr r0,[r5]
orr r0,r0,#0x80
str r0,[r5]
ldr r5,=GPX2DAT
ldr r0,[r5]
bic r0,#0x80
str r0,[r5]
bl delay1s
ldr r6,=GPX1DAT
ldr r1,[r6]
orr r1,r1,#0x01
str r1,[r6]
ldr r6,=GPX1DAT
ldr r1,[r6]
bic r1,#0x01
str r1,[r6]
bl delay1s
ldr r7,=GPF3DAT
ldr r2,[r7]
orr r2,r2,#0x10
str r2,[r7]
ldr r7,=GPF3DAT
ldr r2,[r7]
bic r2,#0x10
str r2,[r7]
bl delay1s
ldr r8,=GPF3DAT
ldr r3,[r8]
orr r3,r3,#0x20
str r3,[r8]
ldr r8,=GPF3DAT
ldr r3,[r8]
bic r3,#0x20
str r3,[r8]
bl delay1s
b loop_led
loop_end:
b loop_end
delay1s:
ldr r4,=0x3ffffff
delay1s_loop:
sub r4,r4,#1
cmp r4,#0
bne delay1s_loop
mov pc,lr
.equ GPX2DAT,0X11000C44
.equ GPX1CON,0x11000C20
.equ GPX1DAT,0x11000C24
.equ GPF3CON,0x114001e0
.equ GPF3DAT,0x114001e4
.text
ldr r4,=GPX2CON
ldr r0,[r4]
bic r0,#0xf0000000
orr r0,r0,#0x10000000
str r0,[r4]
ldr r9,=GPX1CON
ldr r1,[r9]
bic r1,#0x0000000f
orr r1,r1,#0x00000001
str r1,[r9]
ldr r10,=GPF3CON
ldr r2,[r10]
bic r2,#0x000f0000
orr r2,r2,#0x00010000
str r2,[r10]
ldr r11,=GPF3CON
ldr r2,[r11]
bic r2,#0x00f00000
orr r2,r2,#0x00100000
str r2,[r11]
loop_led:
@set GPX2_7 pin High level
ldr r5,=GPX2DAT
ldr r0,[r5]
orr r0,r0,#0x80
str r0,[r5]
ldr r5,=GPX2DAT
ldr r0,[r5]
bic r0,#0x80
str r0,[r5]
bl delay1s
ldr r6,=GPX1DAT
ldr r1,[r6]
orr r1,r1,#0x01
str r1,[r6]
ldr r6,=GPX1DAT
ldr r1,[r6]
bic r1,#0x01
str r1,[r6]
bl delay1s
ldr r7,=GPF3DAT
ldr r2,[r7]
orr r2,r2,#0x10
str r2,[r7]
ldr r7,=GPF3DAT
ldr r2,[r7]
bic r2,#0x10
str r2,[r7]
bl delay1s
ldr r8,=GPF3DAT
ldr r3,[r8]
orr r3,r3,#0x20
str r3,[r8]
ldr r8,=GPF3DAT
ldr r3,[r8]
bic r3,#0x20
str r3,[r8]
bl delay1s
b loop_led
loop_end:
b loop_end
delay1s:
ldr r4,=0x3ffffff
delay1s_loop:
sub r4,r4,#1
cmp r4,#0
bne delay1s_loop
mov pc,lr
.end
Makefie文件
CROSS = arm-none-linux-gnueabi-
CC=$(CROSS)gcc
LD=$(CROSS)ld
OBJCOPY=$(CROSS)objcopy
all: led.s
$(CC) -g -c -o led.o led.s
$(LD) led.o -Ttext 0x40001000 -o led.elf
$(OBJCOPY) -O binary -S led.elf led.bin
$(CROSS)objdump -D led.elf > led.dis
clean:
rm -f *.o *.elf *.bin *.dis