這個 USB 設(shè)備含有廠家信息:它記錄在設(shè)備描述符里,所以設(shè)備描述符應(yīng)該由你提供
這個芯片可能有多種配置,這也是由你決定,所以配置描述符應(yīng)該由你提供
某個配置下多個接口,接口就是功能,Linux 內(nèi)核里事先提供了很多功能的驅(qū)動程序,所以:接口描述符是內(nèi)核提供的
某個接口下需要什么端點,也是內(nèi)核里各類功能的驅(qū)動程序提供的
以 zero.c 為例:
配置 1:loopback,Host 寫數(shù)據(jù)給它,就可以讀出原樣的數(shù)據(jù)
配置 2:sourcesink,Host 寫數(shù)據(jù)給它(它只是記錄下數(shù)據(jù)),Host 還可以讀數(shù)據(jù)(讀到的都是0)
從下到上涉及這些文件:
閱讀源碼時,入口函數(shù)是usb_composite_probe(&zero_driver):
函數(shù)調(diào)用過程中主要的函數(shù)如下,重點關(guān)注“xxx_bind”函數(shù),bind 就是初始化的意思:
usb_composite_probe
composite_bind
zero_bind
sourcesink_bind/loopback_bind
深入解讀描述符的構(gòu)造過程,可以得到下面的圖:
構(gòu)造出一個 usb_composite_dev 結(jié)構(gòu)體
它把各層串聯(lián)起來,里面構(gòu)造有設(shè)備描述符、配置描述符、接口描述符、端點描述符
-
嵌入式
+關(guān)注
關(guān)注
5152文章
19675瀏覽量
317550 -
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213803 -
框架
+關(guān)注
關(guān)注
0文章
404瀏覽量
17894
發(fā)布評論請先 登錄
USB描述符詳解
UBL UBOOT 描述符
usb標(biāo)準(zhǔn)描述符之技巧
USB HID報告及報告描述符簡介
Descriptor描述符解釋
Linux中文件及文件描述符概述
USB設(shè)備鍵值表描述符說明資料免費下載

USB各描述符之間的依賴是怎么樣的

隱藏描述符工具應(yīng)用程序免費下載

Linux系統(tǒng)編程中的文件描述符調(diào)用

科普一下什么是USB的描述符
從獲取描述符的角度理解Gadget框架

基于DWC_ether_qos的以太網(wǎng)驅(qū)動開發(fā)-描述符格式介紹

Python的優(yōu)雅之處:Descriptor(描述符)

評論