Tiny-S3C6410 - Linux下LED灯驱动移植过程

2020-04-17 20:34

UT-S3C6410 ARM11 Linux 下的LED驱动

一 、实验环境

操作系统:fedora13

交叉编译环境:arm-Linux-gcc 或以上,

6410板子内核源码路径在:忘了,需要厂家给的内核源代码

硬件平台:S3C6410开发板(其他类型的开发板也可以注意配置GPIO)

注:交叉编译环境一定要装好,一般的开发板给的配套资料中都会有,安装过程也都有详细的过程,如果没有,亲,你只有自己解决了。也可以联系我(476695721@qq.com),泪奔支持你们。

二 、实验原理

控制LED是最简单的一件事情,就像学C语言时候写的“hello world”程序一样,是一个入门的程序。

首先来了解一下相关的硬件知识:

UT-S3C6410 LED原理图

UT-S3C6410 LED外部引脚图

从上面的原理图可以得知,LED与CPU引脚的连接方法如下,高电平点亮。 LED1 -GPM0 LED2 -GPM1 LED3 -GPM2 LED4 -GPM3

从数据手册可以找到相应的控制方法。这里我们以LED1为例,介绍一下LED1的操作方法,其他的类似,请大家自行分析。

通过上面可以得知,需要先将GPM0设置为输出方式。将寄存器GPMCON低四位配置成0001。

然后将GPMDAT寄存器的第0位置1灯亮,置LED0灯亮,开发板上有四个LED所以要对GPMDAT的低四位进行操作,就可以实现对灯的亮灭操作了。

三、实验步骤

1、编写驱动程序

mini6410_leds.c

#include #include #include

//#include #include #include #include #include #include #include #include #include

#include #include #include #include #include #include #include #include #include #include #include #include

#include #include #include

#include #include #define DEVICE_NAME \

static long sbc2440_leds_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) {

switch(cmd) { unsigned tmp;

case 0: case 1:

if (arg > 4) { return -EINVAL; }

tmp = readl(S3C64XX_GPKDAT); tmp &= ~(1 << (4 + arg)); tmp |= ( (!cmd) << (4 + arg) ); writel(tmp, S3C64XX_GPKDAT);

//printk (DEVICE_NAME\return 0; default:

return -EINVAL; } }

static struct file_operations dev_fops = { .owner = THIS_MODULE,

.unlocked_ioctl = sbc2440_leds_ioctl, };

static struct miscdevice misc = {

.minor = MISC_DYNAMIC_MINOR, .name = DEVICE_NAME, .fops = &dev_fops, };

static int __init dev_init(void) {

int ret; {

unsigned tmp;

tmp = readl(S3C64XX_GPKCON);

tmp = (tmp & ~(0xffffU<<16))|(0x1111U<<16); writel(tmp, S3C64XX_GPKCON); tmp = readl(S3C64XX_GPKDAT); tmp |= (0xF << 4);

writel(tmp, S3C64XX_GPKDAT); }

ret = misc_register(&misc);

printk (DEVICE_NAME\return ret; }

static void __exit dev_exit(void) {

misc_deregister(&misc); }


Tiny-S3C6410 - Linux下LED灯驱动移植过程.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电子管6N1制作小型胆机功放电路

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: