關(guān) 閉

新聞中心

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

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

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

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

本文引用地址:http://2s4d.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端點從設(shè)備側(cè)的代表,總線控制器驅(qū)動程序中列出了在gadget->ep_list里所有的通用端點,但控制端點不在列表中,它僅在回應(yīng)驅(qū)動程序的setup 0 回調(diào)函數(shù)時才被訪問,其代碼如下:



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

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

上一頁 1 2 下一頁

關(guān)鍵詞: Linux USB 設(shè)備驅(qū)動

評論


相關(guān)推薦

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

關(guān)閉