当前位置: 技术问答>linux和unix
关于设备操作的一点迷惑:计算机如何知道驱动程序要操作的设备正好是指定的设备?
来源: 互联网 发布时间:2015-12-10
本文导语: 如题:现在通过register_chrdev可以把主设备号和操作联系起来。然后再到操作结果fops中相应的操作中作出对端口的一系列操作。 现在我的问题是:主设备号是动态生成的,总线设备(如:PCI)端口号也是可以动态分配...
如题:现在通过register_chrdev可以把主设备号和操作联系起来。然后再到操作结果fops中相应的操作中作出对端口的一系列操作。
现在我的问题是:主设备号是动态生成的,总线设备(如:PCI)端口号也是可以动态分配的,那么现在怎么能够确定fops中的操作正好对应到我想要的设备上去呢?
现在我的问题是:主设备号是动态生成的,总线设备(如:PCI)端口号也是可以动态分配的,那么现在怎么能够确定fops中的操作正好对应到我想要的设备上去呢?
|
理解了:对端口操作时就是对特定的硬件进行操作。
|
open(struct inode *inode, struct file *filp) inode->i_cdev 再由cdev 可以得到自定义的dev , filp->private_data = dev; 以后的操作再由filp->private_data 得到dev 信息,块设备的i_bdev 也一样的
|
硬件有硬件各自的控制器,那是硬编程得,驱动程序就是要控制那些控制器,通过与其提供得寄存器交互来控制。