当前位置: 技术问答>linux和unix
linux键盘及串口驱动问题,初学,大家指教。急,在线等。谢谢了
来源: 互联网 发布时间:2016-04-10
本文导语: 目前要做一个事情,就是把以前的i2c的键盘驱动改为串口的。 有以下几个问题: 1、串口的驱动文件在哪个位置?如何确定cpu中用了哪种控制串口的芯片? 2、串口读...
目前要做一个事情,就是把以前的i2c的键盘驱动改为串口的。
有以下几个问题:
1、串口的驱动文件在哪个位置?如何确定cpu中用了哪种控制串口的芯片?
2、串口读写函数要怎么找,看了一下我们的kernel里好像用的是8250(不敢确定),但是在includelinux8250.h里并没有把读写等函数公布出来,是我找错了文件,还是怎么回事?
3、archarmmach-davinciserial.c在这个文件里对串口0做了初始化,我要用串口2,是不是要把对串口2的初始化也加进去?
其他问题:
archarmmach-davinci这个目录主要用来干什么,完成什么工作?在这个目录下看到对串口0的初始化,为什么要这么做,像linux驱动里不是编译成模块形式的驱动,在系统启动完成后都会在/dev目录下产生相应的设备,都加载了,为什么在这个目录下要初始化呢,难道不初始化,串口驱动就没有加载吗,就不能用吗?
小弟初学,问题有点多,希望高手不吝赐教,可以再加分。
有以下几个问题:
1、串口的驱动文件在哪个位置?如何确定cpu中用了哪种控制串口的芯片?
2、串口读写函数要怎么找,看了一下我们的kernel里好像用的是8250(不敢确定),但是在includelinux8250.h里并没有把读写等函数公布出来,是我找错了文件,还是怎么回事?
3、archarmmach-davinciserial.c在这个文件里对串口0做了初始化,我要用串口2,是不是要把对串口2的初始化也加进去?
其他问题:
archarmmach-davinci这个目录主要用来干什么,完成什么工作?在这个目录下看到对串口0的初始化,为什么要这么做,像linux驱动里不是编译成模块形式的驱动,在系统启动完成后都会在/dev目录下产生相应的设备,都加载了,为什么在这个目录下要初始化呢,难道不初始化,串口驱动就没有加载吗,就不能用吗?
小弟初学,问题有点多,希望高手不吝赐教,可以再加分。
|
先了解下串口的基本工作原理,看看如下几个文件:
drivers/char/tty_io.c
drivers/char/n_tty.c:
drivers/serial/serial_core.c
drivers/serial/8250.c
Reference: http://www.linuxdriver.cn/html/200711/317.htm
估计你需要实现一个ldisc之类的driver来实现 键盘驱动和串口之间的中间层,当然,你也可以不这样做:)
至于ldisc嘛,内核用到的地方还是有不少的,比如ppp,bluetooth等都用到了。
比如:ppp就是自己实现一个ldisc来达到和串口驱动之间的数据交互的!
具体怎么实现,还需要你自己去摸索和实践!
GOOD LUCK!
drivers/char/tty_io.c
drivers/char/n_tty.c:
drivers/serial/serial_core.c
drivers/serial/8250.c
Reference: http://www.linuxdriver.cn/html/200711/317.htm
估计你需要实现一个ldisc之类的driver来实现 键盘驱动和串口之间的中间层,当然,你也可以不这样做:)
至于ldisc嘛,内核用到的地方还是有不少的,比如ppp,bluetooth等都用到了。
比如:ppp就是自己实现一个ldisc来达到和串口驱动之间的数据交互的!
具体怎么实现,还需要你自己去摸索和实践!
GOOD LUCK!