在tiny6410的led首先要把外设基地址初始化。
由手册《S3C6410X》手册可知tiny6410的基地址是0x70000000,然后根据手册《Arm1176jzfs》的cp15的c15寄存器设置初始化基地址。
外设基地址初始化要加在svc初始化的下面。
set_peri_port:
ldr r0, =0x70000000
orr r0,r0,#0x13
mcr p15,0,r0,c15,c2,5
友善tiny6410的LED驱动设计分为两步:
1、设置GPIO控制寄存器,把引脚设置为输出功能。
2、根据原理图设置GPIO数据寄存器,点亮LED。
代码如下:
#define GPKCON 0x7F008800
#define GPKDAT 0x7F008808
light_led:
ldr r0, =GPKCON
ldr r1, =0x11110000
str r1, [r0]
ldr r0, =GPKDAT
ldr r1, =0xa0
str r1, [r0]
mov pc, lr