嵌入式Linux ARM 汇编点亮一个LED的流程

 嵌入式Linux交叉开发环境

         开发主机(Host)

         目标机(Target)

         连接介质

汇编程序: 

    .text

    @设置LED灯的配置寄存器 GPX2CON7 为输出状态
    ldr r0,=0x11000c40
    ldr r1,[r0]
    bic r1,#0xf0000000
    orr r1,#0x10000000
    str r1,[r0]

loop:
    @设置LED灯输出高电平  GPX2DAT
    ldr r0,=0x11000c44
    ldr r1,[r1]
    orr r1,#0x80
    str r1,[r0]
    
    bl delayis

    @ 设置LED灯输出低电平
    ldr r0,=0x11000c44
    ldr r1,[r0]
    ldr r1,#0x80
    str r1,[r0]

    bl delayis
    b loop

delayis:
    ldr r4,=0x1fffffff

delayis_loop:
    sub r4,r4,#1
    cmp r4,#0
    bne delayis_loop
    mov pc,lr

    .end

Makefile :

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

环境变量 :

export PATH=/home/linux/gcc-4.6.4/bin:$PATH
发布了51 篇原创文章 · 获赞 7 · 访问量 7903

猜你喜欢

转载自blog.csdn.net/qq_44226094/article/details/104131904