LED灯GPIO连接示意图:
---------
|GPM0 |--LED1
---------
|GPM1 |--LED2
---------
|GPM2 |--LED3
---------
|GPM3 |--LED4
---------
active low
相关寄存器:
Register Address R/W Description Reset Value
GPMCON 0x7F008820 R/W Port M Configuration Register 0x00222222
GPMDAT 0x7F008824 R/W Port M Data Register Undefined
GPMCON Bit Description Initial State
GPM0 [3:0] 0000 = Input 0001 = Output 0010
0010 = Host I/F CSn 0011 = Ext. Interrupt[23]
0100 = Reserved 0101 = Reserved
0110 = CE_CF[0] 0111 = Reserved
点亮4盏灯的代码如下:
#define GPMCON 0x7F008820 #define GPMDAT 0x7F008824 .text .align 2 .global _start _start: mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 @设为输入 ldr r0, =GPMCON ldr r1, [r0] ldr r2, =0xffff bic r1, r1, r2 ldr r2, =0x1111 orr r1, r1, r2 str r1, [r0] @LED全亮 ldr r0, =GPMDAT ldr r1, [r0] ldr r2, =0xf bic r1, r1, r2 str r1, [r0] sub sp, fp, #12 ldmfd sp, {fp, sp, lr} mov pc, lr
Makefile文件:
all: arm-linux-gcc -c start.S arm-linux-ld start.o -o start arm-linux-objcopy -O binary start start.bin mv start.bin /tftpboot