您好,登錄后才能下訂單哦!
linux如何發現和加載對應的USB對應的設備驅動
1.整體流程
加載USB設備驅動-->注冊USB設備(注冊的USB設備結構體包含了USB設備的vender ID和product ID)
USB設備插入后,匹配到vendor ID和product ID,即調用改USB注冊結構里的probe函數,開始和USB設備進行通信。
2.USB設備結構體
static struct usb_driver test_usb_driver={
.OWNER = THIS_MODULE,
.name = "test USB device",
.id_table = test_usb_table_id,
.probe = test_usb_probe,
.disconnect = test_usb_disconnect
};
3.USB設備table ID
static struct usb_device_id test_usb_table_id={
{USB_DEVICE(TEST_USB_VENDOR_ID,TEST_USB_PRODUCT_ID)};
{}
};
擴展:
usb設備table ID對應usb_device_id
i2c設備table ID對應i2c_device_id
usb設備的table id保存在USB設備內,在作為device從設備,插入host(主設備)后,host通過端口0從usb設備中讀出來。
i2c設備則是定義在device tree里,kernel啟動后,遍歷device tree,加載對應的i2c設備驅動。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。