Samsung 6410 矩阵键盘驱动移植
目录
1 概述:
由于项目需要用到键盘操作,所以移植了6410的键盘驱动程序,先GOOGLE一下前辈的精华,在结合自己实际移植情况,做一些简单记录,以备忘。
因为移植都还比较顺利,本文描述的也比较简单,有不足或错误的地方,欢迎大家讨论,学习交流。
内核版本: 2.6.28
硬件部分:略,基本按DATASHEET来
上层应用:QT2.2.0
欢迎讨论:QQ 67016879 或 lxj_com@163.com
移植好的驱动下载: http://download.youkuaiyun.com/detail/lxj_com2006/4381793
2 驱动文件:
linux2.6.28/drivers/input/keyboard/s3c-keypad.h
linux2.6.28/drivers/input/keyboard/s3c-keypad.c

3 编译到内核:
make menuconfig
选择 DeviceDrivers -> Input device support -> Keyboards -> S3C keypad support
将驱动编译进内核

4 驱动文件分析:
4.1 s3c-keypad.h
先看头文件,头文件是非常可帮助了解文件结构和接口的。

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

5 应用层获取键盘事件
如QT中:我们在写窗口程序时,只要覆盖相关虚函数:
void keyReleaseEvent(QKeyEvent *event);
void keyUpEvent(QKeyEvent *event);
通过QKeyEvent可以获得键盘不同事件和键码,并进行自己的流程处理。

注:还有些复杂按键,如:2,3组合键等,在此略。
Samsung6410矩阵键盘驱动移植
本文介绍Samsung6410矩阵键盘驱动的移植过程及应用层获取键盘事件的方法。内核版本为2.6.28,上层应用使用QT2.2.0。文中详细解释了驱动文件s3c-keypad.h和s3c-keypad.c的作用,以及如何将驱动编译进内核。
190

被折叠的 条评论
为什么被折叠?



