1. led_on.S
@******************************************************************************
@ File:led_on.S
@ 功能:LED点灯程序,点亮LED1
@******************************************************************************
.text
.global _start
_start:
LDR R0,=0x56000050 @ R0设为GPFCON寄存器。此寄存器
@ 用于选择端口B各引脚的功能:
@ 是输出、是输入、还是其他
MOV R1,#0x00000100 @ 将0x00000100 给R1寄存器
STR R1,[R0] @ 设置GPF4为输出口, 位[8:7]=0b01 将R1里的值给R0所值的地址
LDR R0,=0x56000054 @ R0设为GPBDAT寄存器。此寄存器
@ 用于读/写端口B各引脚的数据
MOV R1,#0x00000000 @ 此值改为0x00000010,
@ 可让LED1熄灭
STR R1,[R0] @ GPF4输出0,LED1点亮
MAIN_LOOP:
B MAIN_LOOP
2.Makefile文件
led_on.bin : led_on.S
arm-linux-gcc -g -c -o led_on.o led_on.S # -c 汇编将.S汇编成.o文件 -o输出文件 -g 调试
arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf #生成elf文件 -Ttext 代表汇编代码的代码段起始地址
arm-linux-objcopy -O binary -S led_on_elf led_on.bin #-s代表编译 -o binary 输出可执行二进制文件 led_on.bin
clean:
rm -f led_on.bin led_on_elf *.o