注冊USB設(shè)備(注冊的USB設(shè)備結(jié)構(gòu)體包含了USB設(shè)備的vender ID和product ID)USB設(shè)備插..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux如何發(fā)現(xiàn)和加載對應(yīng)的USB設(shè)備驅(qū)動(dòng)

發(fā)布時(shí)間:2020-07-28 04:29:03 來源:網(wǎng)絡(luò) 閱讀:319 作者:MrStone 欄目:系統(tǒng)運(yùn)維

linux如何發(fā)現(xiàn)和加載對應(yīng)的USB對應(yīng)的設(shè)備驅(qū)動(dòng)
1.整體流程
加載USB設(shè)備驅(qū)動(dòng)-->注冊USB設(shè)備(注冊的USB設(shè)備結(jié)構(gòu)體包含了USB設(shè)備的vender ID和product ID)
USB設(shè)備插入后,匹配到vendor ID和product ID,即調(diào)用改USB注冊結(jié)構(gòu)里的probe函數(shù),開始和USB設(shè)備進(jìn)行通信。
2.USB設(shè)備結(jié)構(gòu)體
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設(shè)備table ID
static struct usb_device_id test_usb_table_id={
{USB_DEVICE(TEST_USB_VENDOR_ID,TEST_USB_PRODUCT_ID)};
{}
};

擴(kuò)展:
usb設(shè)備table ID對應(yīng)usb_device_id
i2c設(shè)備table ID對應(yīng)i2c_device_id

usb設(shè)備的table id保存在USB設(shè)備內(nèi),在作為device從設(shè)備,插入host(主設(shè)備)后,host通過端口0從usb設(shè)備中讀出來。
i2c設(shè)備則是定義在device tree里,kernel啟動(dòng)后,遍歷device tree,加載對應(yīng)的i2c設(shè)備驅(qū)動(dòng)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI