我有一个硬件客户端 1 ,它是我为其编写的Linux PCI内核驱动程序的数据采集卡系列。
根据用户指定的使用方式,该卡一次只能传送1-4个字节,在这种情况下,我使用ioctl
来实现某些功能,但也使用{{3 }}结构,将卡视为基本字符设备,如果卡用户只希望与卡进行简单的1字节通信,就可以仅使用file_operations
或read
。>
与客户端讨论驱动程序后,他们的一位开发人员理解为,使用open/read/write
将卡视为字符设备会在PCI 总线上引入延迟使用open/ioctl
。
鉴于驱动程序不区分其打开方式,并且ioctl
和read/write
函数调用相同的代码,对此是否有意义?
如果是这样,我该如何从驱动程序代码中测试 bus 延迟?我可以调用内核功能来对此进行测试吗?
最后,我对总线的测试仅对我的特定设置(内核设置,平台,内存时序,CPU等)有效吗?
1:他们只有2个其他开发人员,都没有使用过Linux
答案 0 :(得分:2)
我怀疑客户的开发人员有些困惑。他认为使用$dbConfig = getenv(); // associative array
$dbPassword = $dbConfig['DB_PASSWORD'];
或read
与write
之间的区别对应于总线上执行的操作类型。如果您向他解释这仅是软件API的区别,并且任一选项在总线上执行的操作完全相同,则应该满足它们。