Samsung 6410 矩阵键盘驱动移植

Samsung 6410 矩阵键盘驱动移植

目录

 

1       概述:...1

2       驱动文件:...1

3       编译到内核:...2

4       驱动文件分析:...2

4.1        s3c-keypad.h.2

4.2        s3c-keypad.c.3

5       应用层获取键盘事件...4

 

1       概述:

由于项目需要用到键盘操作,所以移植了6410的键盘驱动程序,先GOOGLE一下前辈的精华,在结合自己实际移植情况,做一些简单记录,以备忘。

 

因为移植都还比较顺利,本文描述的也比较简单,有不足或错误的地方,欢迎大家讨论,学习交流。

 

内核版本: 2.6.28

硬件部分:略,基本按DATASHEET来

上层应用:QT2.2.0

 

欢迎讨论:QQ  67016879 或 [email protected]

移植好的驱动下载: http://download.csdn.net/detail/lxj_com2006/4381793

2       驱动文件:

linux2.6.28/drivers/input/keyboard/s3c-keypad.h

linux2.6.28/drivers/input/keyboard/s3c-keypad.c

 Samsung 6410 矩阵键盘驱动移植_第1张图片

3       编译到内核:

make menuconfig

 

选择 DeviceDrivers -> Input device support -> Keyboards -> S3C keypad support

将驱动编译进内核

 Samsung 6410 矩阵键盘驱动移植_第2张图片

4       驱动文件分析:

 

4.1    s3c-keypad.h

 

先看头文件,头文件是非常可帮助了解文件结构和接口的。

 Samsung 6410 矩阵键盘驱动移植_第3张图片

4.2    s3c-keypad.c

linux内核封装了keypad到应用层的接口,驱动程序从按键设备获取中断后,利用一个定时器,检测那些按键是否,按下(防抖),弹起,长按键等,分类出不同的事件通过 input_report_key 函数送入 linux,而应用层则通过和linux的底层通讯,可以主动或被动获得这些消息,然后再分发出去。

 Samsung 6410 矩阵键盘驱动移植_第4张图片

5       应用层获取键盘事件

如QT中:我们在写窗口程序时,只要覆盖相关虚函数:

 

void keyReleaseEvent(QKeyEvent *event);

void keyUpEvent(QKeyEvent *event);

 

通过QKeyEvent可以获得键盘不同事件和键码,并进行自己的流程处理。

Samsung 6410 矩阵键盘驱动移植_第5张图片

 

注:还有些复杂按键,如:2,3组合键等,在此略。


你可能感兴趣的:(linux,report,Google,input,qt,通讯)