女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣理解Gadget框架

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-13 11:18 ? 次閱讀

USB 協(xié)議是主從結(jié)構(gòu):

圖片

左邊主機(jī),右邊從機(jī);USB 有主機(jī)控制器 UHC 和從機(jī)控制器 UDC,主機(jī)側(cè)有 USB Device Driver,從機(jī)側(cè)有 USB
Function Driver。

意思是說,一個(gè)開發(fā)板,可以當(dāng) USB 主機(jī),接鼠標(biāo)、鍵盤等從機(jī);一個(gè)開發(fā)板也可以當(dāng) U 盤,接入 PC
電腦,此時(shí)開發(fā)板是從機(jī)。因此,我們要掌握兩套驅(qū)動(dòng)框架。這是 Linux 下 USB 相對(duì)于 I2C、SPI 復(fù)雜的地方,I2C 等根本不會(huì)考慮主控 Soc
作為從機(jī)的情況,但 USB 需要考慮。

本文主要針對(duì)主控 Soc 作為 USB 從機(jī)的情況,Linux 為其提供了 Gadget 框架。

編寫 USB 設(shè)備驅(qū)動(dòng)程序時(shí),主要是:

讀取設(shè)備的各類描述符,比如 endpoint 描述符,得到端點(diǎn)號(hào)

使用底層 USB Host Controller 驅(qū)動(dòng)程序提供的 API 函數(shù),從 endpoint 上讀寫數(shù)據(jù)

基于 Gadget 驅(qū)動(dòng)框架模擬一個(gè) USB 設(shè)備時(shí),endpoint 的數(shù)據(jù)傳輸能力是底層的 USB Device Controller
驅(qū)動(dòng)提供的,我們要做的就是:

提供各類設(shè)備描述符

使用底層 USB Device Controller 驅(qū)動(dòng)程序提供的 API 函數(shù),從 endpoint 得到數(shù)據(jù)、反饋數(shù)據(jù)

Gadget 的含義是“小器件”,在 Linux 的 USB 系統(tǒng)中,它表示“usb device”。Gadget 驅(qū)動(dòng)程序,就是用來模擬 USB
Device。對(duì)于真實(shí)的 USB Device,它有兩大要素:

怎么表示自己?

每個(gè) USB Device 都有 1 個(gè)設(shè)備描述符

都 1 個(gè)或多個(gè)配置描述符

每個(gè)配置描述符里面有 1個(gè) 或多個(gè)接口描述符

每個(gè)接口描述符里面有 0 個(gè)多個(gè)端點(diǎn)描述符

怎么進(jìn)行數(shù)據(jù)傳輸?

通過端點(diǎn)進(jìn)行傳輸

有端點(diǎn)的操作函數(shù)

圖片

在學(xué)習(xí)過程中,記住這幾個(gè)要點(diǎn)非常有幫助:

各類描述符的構(gòu)造

USB Host 獲得 Gadget 各類描述符的過程

數(shù)據(jù)傳輸?shù)牧鞒?/p>

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5138

    文章

    19524

    瀏覽量

    314644
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11456

    瀏覽量

    212724
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    404

    瀏覽量

    17780
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    請(qǐng)問對(duì)話框和框架控件之間的關(guān)系該怎么理解

    理解對(duì)話框就是框架控件中放置了一些其他小控件(比如Botton)。是不是這樣理解?謝謝!
    發(fā)表于 09-12 04:35

    Intel Power Gadget支持baytrail平臺(tái)嗎?

    Intel Power Gadget支持baytrail平臺(tái)嗎?
    發(fā)表于 08-22 21:06

    Modbus程序框架流程是怎樣

    什么是Modbus協(xié)議?Modbus程序框架流程是怎樣的?
    發(fā)表于 10-20 07:13

    RK3288使用USB GADGET實(shí)現(xiàn)大容量存儲(chǔ)腳本

    (){mount -t configfs none /sys/kernel/configmkdir /sys/kernel/config/usb_gadget/rockchip -m
    發(fā)表于 11-18 16:33

    怎樣理解阻抗匹配?

    怎樣理解阻抗匹配? 阻抗匹配是指信號(hào)源或者傳輸線跟負(fù)載之間的一種合適的搭配方式。阻抗匹配分為低頻和高頻兩種情況討論。
    發(fā)表于 11-30 10:30 ?1571次閱讀

    怎樣理解EMC電路

    怎樣理解EMC電路 電磁兼容設(shè)計(jì)通常要運(yùn)用各項(xiàng)控制技術(shù),一般來說,越接近EMI源,實(shí)現(xiàn)EM控制所需的成本就越小。PCB上的集成電路芯
    發(fā)表于 04-09 18:02 ?2222次閱讀

    RS亞太首發(fā)Gadget Renesas開發(fā)套件

      全球領(lǐng)先的電子與維修產(chǎn)品高端服務(wù)分銷商、Electrocomponents plc 集團(tuán)公司(LSE:ECM)的貿(mào)易品牌 RS Components 公司今天宣布,將于其亞太區(qū)電子商務(wù)平臺(tái)開始銷售 Gadget Renesas 。Gadget R
    發(fā)表于 11-27 09:07 ?1088次閱讀

    工具SemExpr可實(shí)現(xiàn)gadget搜索與語義分析

    代碼重用攻擊的實(shí)施過程較為繁雜,通常需要一些工具輔助人工來完成 gadget序列的構(gòu)建,但現(xiàn)有的自動(dòng)化構(gòu)建工具效率較低。在分析 Ropper、 angrop和BoPC等典型開源 gadget工具語義
    發(fā)表于 03-12 14:52 ?20次下載
    工具SemExpr可實(shí)現(xiàn)<b class='flag-5'>gadget</b>搜索與語義分析

    [嵌入式linux]將linux板卡虛擬為USB網(wǎng)卡設(shè)備(Ethernet Gadget

    kernel menuconfig-> Device Drivers ->USB support -> USB Gadget Support 建議最好選成M,作為內(nèi)核驅(qū)動(dòng)模塊,便于
    發(fā)表于 11-02 11:36 ?12次下載
    [嵌入式linux]將linux板卡虛擬為USB網(wǎng)卡設(shè)備(Ethernet <b class='flag-5'>Gadget</b>)

    怎樣理解各種電機(jī)之間的區(qū)別?

    電機(jī)本來種類就多,命名也比較混亂,怎樣理解各種電機(jī)之間的區(qū)別?下面這些電機(jī),看了是不是有點(diǎn)兒頭大,每種都能弄個(gè)明白嗎?
    發(fā)表于 03-13 18:00 ?2585次閱讀

    AMD Xilinx Linux 2022.1 USB Gadget使用

    有客戶使用Linux中的USB Gadget功能,把MPSoC器件做USB從設(shè)備
    的頭像 發(fā)表于 07-07 14:15 ?871次閱讀

    USB Gadget serial應(yīng)用實(shí)例(上)

    1. 硬件體驗(yàn) 使用 Linux 自帶的 USB Gadget 驅(qū)動(dòng) /drivers/usb/gadget/legacy/serial.c 使用 USB 線,連接板子的 OTG 口和 PC
    的頭像 發(fā)表于 07-13 11:06 ?3768次閱讀
    USB <b class='flag-5'>Gadget</b> serial應(yīng)用實(shí)例(上)

    USB Gadget zero應(yīng)用實(shí)例程序

    /usb/gadget/legacy/zero.c】。 應(yīng)用程序編程框架如下: 找到設(shè)備 選擇配置:zero.c 提供了兩種配置,loopback、sourcesink 得到端點(diǎn):找到
    的頭像 發(fā)表于 07-13 11:14 ?1549次閱讀
    USB <b class='flag-5'>Gadget</b> zero應(yīng)用實(shí)例程序

    從硬件軟件角度理解Gadget框架

    2. 從硬件軟件角度理解 Gadget 框架 USB 傳輸?shù)暮诵氖?endpoint,使用 endpoint 可以收發(fā)數(shù)據(jù)。在 endpoint 之上,就可以模擬 USB 串口、USB 觸碰屏
    的頭像 發(fā)表于 07-13 11:32 ?1457次閱讀
    從硬件軟件角度<b class='flag-5'>理解</b><b class='flag-5'>Gadget</b><b class='flag-5'>框架</b>

    從獲取描述符的角度理解Gadget框架

    安裝好 gadget 驅(qū)動(dòng)程序后(比如 modprobe g_zero), 它只是構(gòu)造好了各類描述符。在設(shè)備的枚舉過程會(huì)讀取描述符。 使用 OTG 線連接電腦和開發(fā)板時(shí),電腦軟件會(huì)執(zhí)行如下
    的頭像 發(fā)表于 07-13 11:38 ?1218次閱讀
    從獲取描述符的角度<b class='flag-5'>理解</b><b class='flag-5'>Gadget</b><b class='flag-5'>框架</b>