免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10952 | 回复: 11
打印 上一主题 下一主题

arm linux gpio keys 按键驱动已经好用,如何映射到标准输入? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-11 09:03 |只看该作者 |倒序浏览
基于gpio的按键驱动使用evtest测试是好用的,(只有两个按键 键码为键盘上的 左 右 键的键码)
如何才能实现我在控制台终端上按左右键的效果,即串口控制台上我按动左右键光标在超级终端上左右跑
我按动我做的开发板上的两个按键,超级终端上的光标也左右跑呢?

[root@localhost /usr/app]# ./evtest /dev/event0
Input driver version is 1.0.0evdev.c(EVIOCGBIT): Suspicious buffer size 511, limiting output to 64 bytes. See http://userweb.kernel.org/~dtor/eviocgbit-bug.html

Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpio-keys"
Supported events:
  Event type 0 (Sync)
  Event type 1 (Key)
    Event code 105 (Left)
    Event code 106 (Right)
  Event type 20 (Repeat)
Testing ... (interrupt to exit)
Event: time 1297342095.399174, type 1 (Key), code 105 (Left), value 1
Event: time 1297342095.399199, -------------- Report Sync ------------
Event: time 1297342095.509157, type 1 (Key), code 105 (Left), value 0
Event: time 1297342095.509175, -------------- Report Sync ------------
Event: time 1297342098.031100, type 1 (Key), code 106 (Right), value 1
Event: time 1297342098.031122, -------------- Report Sync ------------
Event: time 1297342098.103819, type 1 (Key), code 106 (Right), value 0
Event: time 1297342098.103835, -------------- Report Sync ------------
Event: time 1297342100.279170, type 1 (Key), code 105 (Left), value 1
Event: time 1297342100.279194, -------------- Report Sync ------------
Event: time 1297342100.469159, type 1 (Key), code 105 (Left), value 0
Event: time 1297342100.469177, -------------- Report Sync ------------
Event: time 1297342103.234875, type 1 (Key), code 106 (Right), value 1
Event: time 1297342103.234898, -------------- Report Sync ------------
Event: time 1297342103.479073, type 1 (Key), code 106 (Right), value 2
Event: time 1297342103.479088, -------------- Report Sync ------------
Event: time 1297342103.519089, type 1 (Key), code 106 (Right), value 2
Event: time 1297342103.519104, -------------- Report Sync ------------
Event: time 1297342103.559076, type 1 (Key), code 106 (Right), value 2
Event: time 1297342103.559090, -------------- Report Sync ------------
Event: time 1297342103.599049, type 1 (Key), code 106 (Right), value 2
Event: time 1297342103.599065, -------------- Report Sync ------------
Event: time 1297342103.639077, type 1 (Key), code 106 (Right), value 2
Event: time 1297342103.639092, -------------- Report Sync ------------
Event: time 1297342103.666372, type 1 (Key), code 106 (Right), value 0
Event: time 1297342103.666388, -------------- Report Sync ------------
^C
[root@localhost /usr/app]#

论坛徽章:
0
2 [报告]
发表于 2011-02-15 08:49 |只看该作者
葵花宝典 我顶!

论坛徽章:
0
3 [报告]
发表于 2011-02-23 14:40 |只看该作者
按键事件传递到了tty子系统,还没研究。看看楼下有什么高见

论坛徽章:
0
4 [报告]
发表于 2011-02-24 16:15 |只看该作者

论坛徽章:
0
5 [报告]
发表于 2011-03-09 13:45 |只看该作者
注册之前,看看gpio source的结构你是怎么定义的。

你只是打印出了中断时候的信息,你对按键名称的定义也需要加到结构里。

你可以参考内核,gpio_keys.c的文件,查找到它所有用到的结构体,然后看看它是怎么定义的。

论坛徽章:
0
6 [报告]
发表于 2011-03-09 15:21 |只看该作者
回楼上,我目前用的就是内核的gpio_keys.c文件,自己只是定义了gpio号和键码而已。

经在pc上用虚拟键盘的驱动比较测试发现,这种键盘的终端处理程序会把键码发送给当前的本机控制tty
比如PC机上的tty1,而哪个窗口是激活的那个窗口就会收到,而串口终端和telnet登录的远程的虚拟终端是不会收到这个键码的(实际这样也没有意义,就是说电脑上键盘上按按键,远程登录的终端不应该显示按键的)
实测是这样的。

论坛徽章:
0
7 [报告]
发表于 2011-03-10 13:06 |只看该作者
这个就不懂了.

ARM板子的键盘信号传送到PC的串口终端上响应光标的移动,等待楼下回答。

论坛徽章:
0
8 [报告]
发表于 2011-03-15 20:59 |只看该作者
在启动参数里加入console=tty1,将标准输出重定向到目标板上。

论坛徽章:
0
9 [报告]
发表于 2011-03-18 10:23 |只看该作者
在启动参数里加入console=tty1,将标准输出重定向到目标板上。
hujinzhi 发表于 2011-03-15 20:59



    板子上没有lcd的,看不到效果

论坛徽章:
0
10 [报告]
发表于 2011-04-18 16:30 |只看该作者
回复 1# armips


   大侠,我今天尝试编写GPIO引脚的input子系统键盘驱动,
但是不管怎么尝试,应用程序层总是只收到一次按键report。
请问这样的情况怎么去排查?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP