易截截图软件、单文件、免安装、纯绿色、仅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 打包

linux 打包命令tar:
tar cvf my.tar file1  // 单个文件
tar cvf my.tar file1 file2 .. // 多个文件
tar cvf my.tar dir1  // 单个目录
tar cvf my.tar dir1 dir2 .. // 多个目录
以上仅打包并无压缩。
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
- ......

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 mysql 乱码问题

 今天在数据库中插入了中文,发现有的是乱码,有的不是,很是纳闷。
最后找到了解决办法:
打开 /etc/mysql/my.cnf
在[mysqld]和[client]节下分别添加:
default-character-set = utf8
然后重新启动mysql,需要注意的是,对修改以前创建的数据库来说,他的字符集还是原来的,所以还是会出现乱马,而新创建的数据 ......

Linux fopen函数 stat函数

   1.
     今天上班追了个问题,追了半天发现是fopen打开大于2G的文件有问题。
马上Google下,做个笔记:
  //   定义宏,使得可以处理大文件(>4GB)  
  #undef   _FILE_OFFSET_BITS  
  #define   _FILE_OFFSET_BITS   64 &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号