底,花了2个月啃学习USB2.0协议。现在终于开始要派上用场了,开始和代码打交道了。
当然,现在只是从简单的开始usb设备驱动开始,后面再慢慢的分析usb总线,usb的hub之类。
先给出代码,后面再一句一句分析。
#include <linux/kernel.h>#include <linux/slab.h>#include <linux/module.h>#include <linux/init.h>#include <linux/usb/input.h>#include <linux/hid.h>static int usb_simple_probe(struct usb_interface *intf, const struct usb_device_id *id){printk(KERN_INFO"usb_simple_probe\n");return 0;}static void usb_simple_disconnect(struct usb_interface *intf){printk(KERN_INFO"usb_mouse_disconnect\n");}static const struct usb_device_id usb_simple_id_table[] = {{ USB_INTERFACE_INFO(USB_INTERFACE_CLASS_HID, USB_INTERFACE_SUBCLASS_BOOT,USB_INTERFACE_PROTOCOL_MOUSE) },{} /* Terminating entry */};static struct usb_driver usb_simple_driver = {.name =