18、led驱动程序的实现

Led的设备驱动程序实例

写字符驱动的顺序是:首先是搭建内核模块框架,接着是写字符驱动,最后是写open和ioctl函数,实现led灯的控制驱动程序。

首先是led.c的代码:

Makefile的实现:

Make之后生成的文件:

接着是我们的应用程序:led_app.c:

编译生成led_app程序:

把两个文件:一个驱动文件,一个可执行程序拷贝到开发板。

首先先执行驱动文件:insmod led.ko,然后cat /proc/devices.查看主设备号:

接着是根据设备驱动的主设备号,创建驱动设备文件:

接着如上,我们运行程序,参数是1,就是灯全亮。

最后运行上面的命令,灯就全灭了。

这就是一个完整的驱动的硬件操作。

时间: 2024-12-13 23:22:31

18、led驱动程序的实现的相关文章

20150223 IMX257 LED驱动程序实现

20150223 IMX257 LED驱动程序实现 2015-02-23 李海沿 由于昨天对IMX257的地址分配不了解,所以前面只能用s3c24xx的驱动程序来了解ioremap等对IO端口的工作原理. 但是经过昨晚对IMX257芯片的细细梳理,今天早上起来又把IMX257的芯片资料看了一遍,终于成功看懂了,下面意义给大家道来. 我们此处使用ERR_LED 也就是GPIO3_23引脚 一.IMX257 芯片资料分析 1.确定相关寄存器基址 确定IOMUX地址 GPIO3的地址 2.确定相关寄存

LED驱动程序 S3C6410

这两天写了个LED驱动程序,网上也看了好多的帖子. 开始思路很清晰了,就是先看电路图,发现LED灯是接在GPM端口上的, 然后看S3C6410数据手册,先向GPMCON口写命令字,让GPM0-5设置为输出,再向GPMDAT口写数据字,在GPM0-5引脚拉低或拉高电平, 从而控制LED的亮灭. 1.电路图 很显然LED灯是接在GPM口引脚下面的 2.数据手册 3.LED驱动程序 #include <linux/module.h> #include <linux/kernel.h> #

ok6410之led驱动程序编写

led驱动程序编写 本文主要包含三部分,led驱动程序led.c编写,编译驱动程序的makefile的编写,以及使用驱动程序的应用程序led_app的编写 一.led.c编写 1 #include <linux/module.h> 2 #include <linux/init.h> 3 #include <linux/cdev.h> 4 #include <linux/fs.h> 5 #include <linux/io.h> 6 #includ

【Linux驱动】TQ2440 LED驱动程序

★总体介绍 LED驱动程序主要实现了TQ2440开发板上的4个LED灯的硬件驱动,实现了对引脚GPIOB5.GPIOB6.GPIOB7.GPIOB8的高低电平设置(common-smdk.c中已经实现了对引脚的配置),利用测试程序调用该驱动程序,通过命令控制LED灯的亮灭. ★详细介绍 1.驱动程序代码:My_led.c #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #

LED驱动程序分析

混杂设备 LED驱动程序分析 /******************************* * *杂项设备驱动:miscdevice *majior=10; * * *****************************/ #include <linux/kernel.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/types.h> #include <lin

led驱动程序的设计

1.led驱动程序属于字符设备->又是内核模块->字符驱动:a.open:b.ioctl 编写led.c led.h makefile led_app.c 把应用程序集驱动程序都拷贝到开发板->先安装insmod led.ko->查看对应设备号->cat /proc/devices ->创建设备文件->mknod /dev/myled c 253 0 ->运行应用程序 ./led_app 1点亮:./led_app 0熄灭.

TQ2440按键点亮LED驱动程序

一,硬件分析: 1.打开TQ2440的底板原理图找到按键测试的模块,如下图所示: 从图我们知道,控制按键k1 k2 k3 k4 的管脚为EINT1 EINT4 EINT2 EINT0 ,当按键按下时,管脚输出低电平,当按键没有被按下时,管脚输出高电平. 2.打开TQ2440核心板原理图找到EINT1  EINT4 EINT2 EINT0所对应的cpu控制引脚,如下图所示: 从图我们可以知道,EINT1  EINT4 EINT2 EINT0 对应的cpu控制引脚为GPF1 GPF4 GPF2 GP

《驱动学习 - LED驱动程序

1.编写LED驱动程序步骤 1.1 框架 1.2 完善硬件操作 1.2.1 查看原理图 1.2.2 看2440手册 1.2.3 写代码 其中需要注意的是:单片机通常直接用物理地址去操作寄存器.而这里要将物理地址映射为虚拟地址,用ioremap函数. 2.查看原理图 从mini2440的原理图可以看到,2440是低电平点亮LED.然后继续查看nLED引脚 所以对应的是: 查看上s3c2440芯片手册: 可以看到GPBCON和GPBDAT的物理地址,这个是后面点亮LED的需要操作的两个寄存器. 需要

基于设备树的led驱动程序

1 #include <linux/module.h> 2 #include <linux/kernel.h> 3 #include <linux/fs.h> 4 #include <linux/init.h> 5 #include <linux/delay.h> 6 #include <asm/io.h> 7 #include <linux/cdev.h> 8 #include <linux/device.h>