一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

怎樣理解Gadget框架

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-13 11:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

圖片

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

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

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

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

讀取設(shè)備的各類描述符,比如 endpoint 描述符,得到端點號

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

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

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

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

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

怎么表示自己?

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

都 1 個或多個配置描述符

每個配置描述符里面有 1個 或多個接口描述符

每個接口描述符里面有 0 個多個端點描述符

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

通過端點進行傳輸

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

圖片

在學習過程中,記住這幾個要點非常有幫助:

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

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

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

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

    關(guān)注

    5150

    文章

    19665

    瀏覽量

    317448
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11509

    瀏覽量

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

    關(guān)注

    0

    文章

    404

    瀏覽量

    17890
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

    Intel Power Gadget支持baytrail平臺嗎?

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

    Modbus程序框架流程是怎樣

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

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

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

    怎樣理解阻抗匹配?

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

    怎樣理解EMC電路

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

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

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

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

    代碼重用攻擊的實施過程較為繁雜,通常需要一些工具輔助人工來完成 gadget序列的構(gòu)建,但現(xiàn)有的自動化構(gòu)建工具效率較低。在分析 Ropper、 angrop和BoPC等典型開源 gadget工具語義
    發(fā)表于 03-12 14:52 ?20次下載
    工具SemExpr可實現(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ū)動模塊,便于
    發(fā)表于 11-02 11:36 ?12次下載
    [嵌入式linux]將linux板卡虛擬為USB網(wǎng)卡設(shè)備(Ethernet <b class='flag-5'>Gadget</b>)

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

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

    AMD Xilinx Linux 2022.1 USB Gadget使用

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

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

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

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

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

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

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

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

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