canopen 发表于 2016-7-2 19:13:19

关于linux 设备驱动中调用其他驱动的问题

请教下, 开发linux 驱动时,可不可以在驱动程序中操作其他设备。

比如,想开发 iic 陀螺仪的驱动,能不能直接在iic 陀螺仪的驱动中 打开 系统中已经挂载的iic 设备?

还有,能否在驱动中使用socket 进行网络通信。

谢谢

honami520 发表于 2016-7-2 19:49:46

没听说过在某个驱动里面,还能去操作其他驱动的

NJ8888 发表于 2016-7-2 23:02:29

应该能,因为linux应用层可以通过mmap操作任何寄存器,驱动当然也能用mmap而且是必须能用

canopen 发表于 2016-7-3 18:11:16

honami520 发表于 2016-7-2 19:49
没听说过在某个驱动里面,还能去操作其他驱动的

我的意思是,在 陀螺仪的驱动程序里打开 iic的设备问题。 底层用iic的驱动去操作硬件。

相当于在 iic 驱动外面又封装了一次。

canopen 发表于 2016-7-3 18:12:11

NJ8888 发表于 2016-7-2 23:02
应该能,因为linux应用层可以通过mmap操作任何寄存器,驱动当然也能用mmap而且是必须能用 ...

嗯嗯         。

honami520 发表于 2016-7-3 19:50:31

canopen 发表于 2016-7-3 18:11
我的意思是,在 陀螺仪的驱动程序里打开 iic的设备问题。 底层用iic的驱动去操作硬件。

相当于在 iic 驱 ...

如果是使用I2C总线或者SPI总线,这个是可以得。

canopen 发表于 2016-7-4 22:32:21

honami520 发表于 2016-7-3 19:50
如果是使用I2C总线或者SPI总线,这个是可以得。

喔,好的,谢谢。

yinjinzhong 发表于 2016-9-27 09:48:23

canopen 发表于 2016-7-4 22:32
喔,好的,谢谢。

linux下面i2c的驱动实现方法有三种。
你说的这种办法,简单点的就是将陀螺仪这个设备注册成一个字符设备。
通过ioctl函数,直接读写数据。

网上也有很多这方面的资料,具体的你可以看看这边。
http://blog.csdn.net/luckywang1103/article/details/16834519

yerrmin 发表于 2016-9-27 10:24:20

当然可以了,楼主参考RTC、触摸等这些的驱动,他们都是基于i2c总线的设备
在驱动中网络通信有点太另类了吧
页: [1]
查看完整版本: 关于linux 设备驱动中调用其他驱动的问题