主题 : linux下同时打开两个/dev设备的问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 82084
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
综合积分: 18 分
注册时间: 2012-11-17
最后登录: 2014-12-19
楼主  发表于: 2013-06-01 22:36

 linux下同时打开两个/dev设备的问题

最近做应用时碰到一个问题,是这样的,我需要扩展一个通道选择的芯片,于是对扩展的gpio写了个简单的驱动程序,设备注册名就假定为/dev/channel吧,对应与通道选择芯片信号输出有个处理的驱动,比如说就/dev/adc吧,对其做AD转换,然后我要实现的的应用程序中应该是要先open该/devc/channel驱动程序,调用iocrl对通道进行选择,然后再open一个/dev/adc对信号进行转换,那么在我的应用程序中同时要打开两个/dev设备,那么我利用ioctrl进行操作的时候,是不是会有问题?还是压根同时打开两个设备时就会出现问题?又或是需要先打开/dev/channel设备后,进行了ioctl操作后再关闭/dev/channel然后再打开/dev/adc,再进行ioctl操作?请大神指点迷津!!!!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2013-06-02 10:31
操作两个设备理论上是没有问题的,ioctl会根据fd参数把命令传递给相应的设备。你可以在这两个设备的驱动的ioctl接口里加上调试信息确认。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 82084
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
综合积分: 18 分
注册时间: 2012-11-17
最后登录: 2014-12-19
2楼  发表于: 2013-06-03 10:47

 回 1楼(kasim) 的帖子

谢谢大版的耐心指点。