易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux设备模型之input子系统详解

一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检测到的所有按键都上报给了input子系统。Input子系统是所有I/O设备驱动的中间层,为上层提供了一个统一的界面。例如,在终端系统中,我们不需要去管有多少个键盘,多少个鼠标。它只要从input子系统中去取对应的事件(按键,鼠标移位等)就可以了。
二:使用input device的例子
下面的代码是基于linux kernel 2.6.25.分析的代码主要位于kernel2.6.25/drivers/input下面.
在内核自带的文档Documentation/input/input-programming.txt中。有一个使用input子系统的例子,并附带相应的说明。以此为例分析如下:
#include <linux/input.h>
#include <linux/module.h>
#include <linux/init.h>
#include <asm/irq.h>
#include <asm/io.h>
static void button_interrupt(int irq, void *dummy, struct pt_regs *fp)
{
        input_report_key(&button_dev, BTN_1, inb(BUTTON_PORT) & 1);
        input_sync(&button_dev);
}
static int __init button_init(void)
{
        if (request_irq(BUTTON_IRQ, button_interrupt, 0, "button", NULL)) {
                printk(KERN_ERR "button.c: Can't allocate irq %d\n", button_irq);
                return -EBUSY;
        }
 
        button_dev.evbit[0] = BIT(EV_KEY);
        button_dev.keybit[LONG(BTN_0)] = BIT(BTN_0);
 
        input_register_device(&button_dev);
}
static void __exit button_exit(void)
{
   &n


相关文档:

实战Linux Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

配置linux内核浅析

随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终被编译进 Linux 内核。这就需要了解 Linu ......

linux 中find命令详解

Linux中查找文件的命令通常为“find”命令,“find”命令能帮助我们在使用, 管理Linux的日常事务中方便的查找出我们需要的文件。对于Linux新手来说,“find” 命令也是了解和学习Linux文件特点的方法。因为Linux发行版本繁多,版本升级很快, 在Linux书籍上往往写明某个配置文件的所在位置, ......

linux 下svn命令


1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
   例如:svn checkout svn://192.168.1.1/pro/domain
    简写:svn co
2、往版本库中添加新的文件
  svn add file
   例如:svn add test.php(添加test.php)
   svn add *.php( ......

linux 用户间发送消息

wall命令
这个命令的功能是对全部已登录的用户发送信息,用户可以先把要发送的信息写好存入一个文件中,然后输入:
# wall < 文件名
这样就能对所有的用户发送信息了。
在上面的例子中符号“<”表示输入重定向,有关它的含义和用法请参阅第十章的有关内容。 例如:
# wall ‘Thank you!&rsquo ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号