基于Linux的USB從設備驅動研究 (2)2013-03-13 13:50:55 來源:dzsc關鍵字:Linux USB從設備 驅動研究基于完成這些功能,每個驅動程序都需要注冊和注銷,這樣,內核才能知道有這個驅動的存在或者驅動的卸載。下面是兩個最基本的模塊: module_init(usb_skel_init); module_exit(usb_skel_exit); 對于USB從設備而言,結構USB_gadget就可以代表。Gadget通過“Gadget驅動程序”來實現(xiàn)設備功能,處理所有的USB配置 和接口。通過操作函數(shù)集,Gadget驅動程序與硬件特定代碼間接通信。它將Gadget驅動程序與那個硬件細節(jié)隔開,并通過I/O隊列包裝硬件端點。 “usb_gadget”“usb_ep”接口則可提供對硬件的隔離。 其結構usb_gadget的代碼如下:
結構usb_gadget_ops是USB設備控制期的設備控制函數(shù)集,其操作包括get_frames、wakeup、pullop、
ioctl等。結構struct
usb_ep是USB端點從設備側的代表,總線控制器驅動程序中列出了在gadget->ep_list里所有的通用端點,但控制端點不在列表中,
它僅在回應驅動程序的setup 0 回調函數(shù)時才被訪問,其代碼如下:
4 結束語 本文主要通過在S3C2401上實現(xiàn)USB從設備的驅動程序,介紹了USB從設備驅動的研究方法。Linux作為一個開源操作系統(tǒng),設備驅動程 序的開發(fā)有著其它操作系統(tǒng)不可比擬的優(yōu)勢,大量的開放源代碼無疑可以加速USB從設備驅動,并使其應用更加廣泛。因此,USB作為一種新型的高速外設總 線,它必將更加促進linux系統(tǒng)源碼的開發(fā)和完善,同時亦會促進自身的更廣泛的應用。 參考文獻: [1]. UDC datasheet http://www.dzsc.com/datasheet/UDC_1172741.html. |
|
|