- 论坛徽章:
- 0
|
学linux USB驱动有一段时间了,但是始终有一个问题还在困恼我:下面我将问题阐述如下,请高手们指点:
static struct usb_driver usb_dht_driver = {
.name = "usbdht",
.probe = usb_dht_probe,
.disconnect = usb_dht_disconnect,
.id_table = usb_dht_id_table,
};
在USB驱动程序的probe函数中会定义 会注册设备的操作接口(如字符设备的 open,read,write等操作),
static const struct file_operations skel_fops = {
.owner = THIS_MODULE,
.read = skel_read,
.write = skel_write,
.open = skel_open,
.release = skel_release,
.flush = skel_flush,
};
static struct usb_class_driver skel_class = {
.name = "my_skeleton",
.fops = &skel_fops,
.minor_base = USB_SKEL_MINOR_BASE,
};
int retval = usb_register_dev(interface, &skel_class);
我的问题是 我根本没法想象read ,write函数是怎么能够操作硬件(读到数据或是写数据) ,我对字符设备的理解是read ,write 是必须对 先关的硬件设置的(比如IO口设置)但是USB设备的 read write好像不需要对硬件设置 就能获取数据或是成功写数据。
不懂 请高手指点! |
|