關(guān) 閉

        新聞中心

        EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于Linux的USB從設(shè)備驅(qū)動(dòng)研究

        基于Linux的USB從設(shè)備驅(qū)動(dòng)研究

        作者: 時(shí)間:2009-12-07 來(lái)源:網(wǎng)絡(luò) 收藏

        3
        驅(qū)動(dòng)程序完成的功能包括初始化設(shè)備、為各類(lèi)設(shè)備提供服務(wù)、負(fù)責(zé)內(nèi)核與設(shè)備間的數(shù)據(jù)交換、以及檢測(cè)和處理設(shè)備工作過(guò)程中出現(xiàn)的錯(cuò)誤等。
        基于完成這些功能,每個(gè)驅(qū)動(dòng)程序都需要注冊(cè)和注銷(xiāo),這樣,內(nèi)核才能知道有這個(gè)驅(qū)動(dòng)的存在或者驅(qū)動(dòng)的卸載。下面是兩個(gè)最基本的模塊:
        module_init(usb_skel_init);
        module_exit(usb_skel_exit);
        對(duì)于從設(shè)備而言,結(jié)構(gòu)_gadget就可以代表。Gadget通過(guò)“Gadget驅(qū)動(dòng)程序”來(lái)實(shí)現(xiàn)設(shè)備功能,處理所有的USB配置和接口。通過(guò)操作函數(shù)集,Gadget驅(qū)動(dòng)程序與硬件特定代碼間接通信。它將Gadget驅(qū)動(dòng)程序與那個(gè)硬件細(xì)節(jié)隔開(kāi),并通過(guò)I/O隊(duì)列包裝硬件端點(diǎn)。 “usb_gadget”“usb_ep”接口則可提供對(duì)硬件的隔離。
        其結(jié)構(gòu)usb_gadget的代碼如下:

        本文引用地址:http://www.104case.com/article/202610.htm


        結(jié)構(gòu)usb_gadget_ops是USB設(shè)備控制期的設(shè)備控制函數(shù)集,其操作包括get_frames、wakeup、pullop、ioctl等。結(jié)構(gòu)struct usb_ep是USB端點(diǎn)從設(shè)備側(cè)的代表,總線控制器驅(qū)動(dòng)程序中列出了在gadget->ep_list里所有的通用端點(diǎn),但控制端點(diǎn)不在列表中,它僅在回應(yīng)驅(qū)動(dòng)程序的setup 0 回調(diào)函數(shù)時(shí)才被訪問(wèn),其代碼如下:



        4 結(jié)束語(yǔ)
        本文主要通過(guò)在S3C2401上實(shí)現(xiàn)USB從設(shè)備的驅(qū)動(dòng)程序,介紹了USB從的研究方法。作為一個(gè)開(kāi)源操作系統(tǒng),程序的開(kāi)發(fā)有著其它操作系統(tǒng)不可比擬的優(yōu)勢(shì),大量的開(kāi)放源代碼無(wú)疑可以加速USB從設(shè)備驅(qū)動(dòng),并使其應(yīng)用更加廣泛。因此,USB作為一種新型的高速外設(shè)總線,它必將更加促進(jìn)linux系統(tǒng)源碼的開(kāi)發(fā)和完善,同時(shí)亦會(huì)促進(jìn)自身的更廣泛的應(yīng)用。

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 固原市| 海原县| 宁海县| 渭南市| 阿合奇县| 沐川县| 锡林浩特市| 鄂托克前旗| 江川县| 陕西省| 嫩江县| 禄丰县| 南靖县| 大冶市| 郑州市| 武胜县| 纳雍县| 怀化市| 如皋市| 阿拉善左旗| 平泉县| 加查县| 桂阳县| 二连浩特市| 潜山县| 庆城县| 宝清县| 兴仁县| 承德县| 邵东县| 伽师县| 南通市| 灵山县| 长春市| 万年县| 大渡口区| 山东| 视频| 中宁县| 行唐县| 河西区|