国产探花免费观看_亚洲丰满少妇自慰呻吟_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。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 子长县| 临湘市| 鹤山市| 金湖县| 柳河县| 夏津县| 武乡县| 沂南县| 甘泉县| 湟中县| 沧州市| 石家庄市| 东丽区| 青阳县| 乐安县| 扎兰屯市| 辽阳市| 六枝特区| 栾川县| 精河县| 重庆市| 惠水县| 高唐县| 永德县| 轮台县| 顺昌县| 漳平市| 耒阳市| 望江县| 南丹县| 南郑县| 右玉县| 墨脱县| 天津市| 乐陵市| 康马县| 湛江市| 文安县| 玉龙| 阳江市| 湘乡市|