LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 920|回复: 1

怎样写uclinux系统的的小键盘驱动啊?

[复制链接]
发表于 2007-3-20 16:02:06 | 显示全部楼层 |阅读模式
最近实验室买了一个44B0的开发板,可是恶心的供货商竟然不提供键盘驱动,于是准备自己写,由于它自带的demo程序中有关于键盘测试的裸机程序,研究了一些,基本搞清了键盘的接口参数,接下来就是在具体的uclinux系统下写驱动了。
可是在研究了网上的很多资料后,我不禁头大了,总的来说遇到如下几个问题:
1、很多资料都是简单的扫描程序,根本不是驱动程序的结构,没法借鉴;
2、很多都是针对PS/2键盘的,而我的键盘是个4×4小键盘;
3、实现方法多种多样,但都没给出具体的函数实现;

在经过了N久的痛苦思索之后,我初步制定了自己的键盘驱动的算法流程:
1、初始化键盘,初始化一个等待队列;
2、open函数,实现对键盘的扫描,如果有键被按下,则将数据放入环形缓冲区,并唤醒read进程。
3、read函数,开始判断缓冲区是否为空,若是,则将自己阻塞,进入睡眠态;若不是,则直接读缓冲区中的数据;

上述是我的一个基本的想法,可是具体的我不知道怎么实践啊,我曾尝试编了一个用简单字符设备来模拟这个流程的模拟程序,可是根本没法工作。

哪位能帮忙指点一下啊,最近什么阻塞,等待,中断,搞的我头都大了,郁闷啊!
 楼主| 发表于 2007-3-20 16:14:01 | 显示全部楼层
刚才又想了下,我提的问题太模糊了,所以归纳一下,有如下几个问题亟待解决:
1、如何让系统识别我小键盘上上面的四个控制键:上,下,cancle,enter
2、如何把我输入的字符转化为数字,也就是在遇到enter时,将前面的转化为数字;
3、如何实现我在输入时,结果能逐字回显在终端上
4、网上有的帖子说,可以调用系统的handle_scancode()等函数实现,上述功能,那该如何实现呢?

谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表