嵌入式bootloader开发之六(Tiny 6410)

概要:

          本节记录有关S3C6410的GPIO配置的有关知识,以点亮LED灯配置为例。

     

          友善之臂Tiny6410开放板的核心板上提供了5个LED灯,一个用于指示系统是否运行,其他四个是可以由用户配置的LED灯。电路连接情况如下:

LED1~LED4分别对应于GPK4~GPK7,由S3C6410开发手册中查阅到这些GPIO所映射的内存地址,若要其正常运行主要配置以下寄存器:

其中GPKCON0中GPK4~GPK7的情况如下:

LED灯应该配置成输出,GPKDAT是要输出的数据,GPKDAT按位对应,GPKPUD对应于上拉或者下拉电阻,一般用不到。

若要点亮LED灯,只要手册中所指示的信息正确配置信息即可。具体代码如下:

#define GPKPUD (*(volatile unsigned long *)0x7F00880C) 
#define GPKCON0 (*(volatile unsigned long *)0x7F008800) 
#define GPKDAT (*(volatile unsigned long *)0x7F008808 )


void (*show)(char*,...)=0xc7e13140;
void led_init();
void led_on(unsigned data);
void led_off();
static volatile unsigned int cnt = 0;

int main(void)
{
	led_init();
	led_on(0x5);
	return 0;
}

void led_init()
{
	GPKCON0 &= ~(0xFFFF << 16);//清除GPKCON4~GPKCON7	
	GPKCON0 |= (0x1111 << 16);
	GPKPUD &= ~(0xFF << 8);//clear disable
	GPKDAT = (0xF << 4);	
}
void led_on(unsigned data)
{
	GPKDAT = ((0xF &data) << 4);//
}
void led_off()
{
	GPKDAT |= (0xF<< 4);
}

编译并下载到开发板上即可看到LED2和LED4灯亮而LED1和LED3灯灭。 

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值