国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux下USB從設備使用gadget API

2024-08-28 00:12:01
字體:
來源:轉載
供稿:網友

最近在做Linux下USB從設備的驅動,程序寫的差不多了,做一個整理小結。歡迎交流,如有錯誤請指正,謝謝!--Jason

一、USB從設備驅動介紹

USB總線上主要有三類設備:主控制器(Host Controller, such as EHCI、UHCI、OHCI)、集線器(hub)和設備(device)。Host controller(HC)負責總線的管理,是總線的指揮官,總線上一切傳輸都是由HC發起的,支持OTG的Device也能發起傳輸;Hub是總線的節點,用來擴展總線上可接入設備的數量,對于驅動來說是透明的;Device就是各種各樣的設備了,每個設備都有自己的功能,比如U盤、USB攝像頭等等。

Linux下主機端USB設備的驅動(device driver)編寫的資料有很多,LDD3中有相應的介紹。主要是通過內核中USB core這個模塊與設備交互。本文只介紹運行Linux的嵌入式USB設備驅動的編寫。因為Host端已經使用了device driver一詞,為了避免混淆,使用USB gadget driver一次表示從設備驅動。In USB protocol interactions, the device driver is the master (or client driver) and the gadget driver is the slave (or function driver).

Linux USB gadget driver API定義了一個通用的gadget driver的接口,gadget driver通過API與底層USB controller driver通信。該API屏蔽了底層硬件的不同,使gadget driver注重功能的實現,盡量與硬件無關。Slave端系統的架構如下圖所示:

Linux下USB從設備使用gadget API

其中,gadgetfs提供給用戶空間程序直接與USB device controller交互的能力。

二、相關資料

USB gadget API Layer的相關資料:

1. http://www.linux-usb.org/gadget/

2. 內核中/KernelDoc/gadget/目錄下的文檔

3.最重要的就是/include/linux/usb_gadget.h文件,該文件中有gadget API接口數據結構和方法的詳細定義及注釋。

Gadget Driver的例子:

4. 內核/drivers/usb/gadget/目錄下有一些gadget driver的例子,zero.c為最簡單的例子,file_storage.c是存儲設備的gadget driver。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河南省| 大英县| 沧州市| 怀集县| 宁夏| 阿拉善右旗| 黔西县| 海盐县| 泽州县| 太谷县| 乐亭县| 松潘县| 莎车县| 龙岩市| 宁南县| 华坪县| 湖北省| 濮阳县| 民乐县| 高台县| 宁晋县| 南雄市| 当阳市| 佛山市| 沁水县| 双峰县| 祁东县| 高青县| 呈贡县| 依兰县| 浪卡子县| 尤溪县| 焉耆| 南安市| 新干县| 临沭县| 克什克腾旗| 肇庆市| 建平县| 白朗县| 麻阳|