您的位置:首页 > 编程语言

用ARM语言写的跑马灯汇编程序

2015-12-07 15:35 405 查看
.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

.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: