网上有一副图基本就是整个usb匹配识别的流程框架了
usb_bus_type总线
linux设备模型由3部分构成,设备、驱动、总线。
先来看看总线,在usb/core/driver.c文件中定义
struct bus_type usb_bus_type = {
.name = "usb",
.match = usb_device_match,
.uevent = usb_uevent,
};
static int __init usb_init(void)
{
...
bus_register(&usb_bus_type);
...
}
在usb_init函数中通过bus_register(&usb_bus_type)注册usb_bus_type总线,所有的usb设备和usb驱动的总线都是它。
设备驱动模型中的总线