趁寒假有空,学一下ARM程序设计,熟悉一下汇编语言,也为我的嵌入式之路打下一点基础吧。。。
首先看看我的板子,(s3c2440)
可以看出,要使LED灯管亮,只要将nLED1置为低电平即可,就是将对应的GPIO引脚置为低电平。
从上面两幅图可以发现,LED1、LED2、LED4对应着S3c2440的GPF端口,于是,通过查询手册
可以知道对应寄存器的地址。于是可以开始编程了
.text
.global _start
_start:
@将GPF配置为输出引脚
LDR R0, =0x56000050
MOV R1, #0x00005500
STR R1, [R0]
@输出低电平
LDR R0, =0x56000054
MOV R1, #0x00000050
STR R1, [R0]
MAIN_LOOP:
B MAIN_LOOP
Makefile
led_on.bin: led_on.S
arm-linux-gcc -g -c -o led_on.o led_on.S
arm-linux-ld -Ttext 0x00000000 -g led_on.o -o led_on_elf
arm-linux-objcopy -O binary -S led_on_elf led_on.bin
clean:
rm -f led_on.bin led_on_elf *.o *.bak
然后通过
tftp 30000000 led_on.bin
nand write bootloader led_on.bin 4000
将可执行文件烧写至Nand Flash即可。