vxworks-usb-mouse-driver分析_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Vxwksusbmouse驅(qū)動(dòng)分析概述:最近在做嵌入式vxwks下usb觸摸屏設(shè)計(jì),參考了vxwks里面的usbmouse驅(qū)動(dòng)的代碼,分析了usbmouse驅(qū)動(dòng),根據(jù)自己的理解,寫這個(gè)文檔。如有任何問(wèn)題請(qǐng)聯(lián)系yxj_5421@,轉(zhuǎn)載請(qǐng)標(biāo)明出處。系統(tǒng)資源:Vxwks6.71、USB主機(jī)驅(qū)動(dòng)棧模型原理USB主機(jī)驅(qū)動(dòng)棧模型下圖所示:USB主控制器(USBHC)USB主控制器驅(qū)動(dòng)(HCD)USB總線驅(qū)動(dòng)(USBD)USB客戶軟件USB設(shè)備類驅(qū)動(dòng)

2、主機(jī)應(yīng)用軟件應(yīng)用層設(shè)備驅(qū)動(dòng)層USB核心驅(qū)動(dòng)層主機(jī)控制器驅(qū)動(dòng)層硬件層1.1硬件層在USB主機(jī)驅(qū)動(dòng)棧的最底部是USB主控制器(USBHC,即USBHostController)。目前,USB主控制器可分為三類:通用型主控制器接口(UHCI)、開放型主控制器接口(OHCI)和增強(qiáng)型主控制接口和增強(qiáng)型主控制接口(EHCI)。其中,UHCI和OHCl支持USBl1低速接口,EHCl支持USB20高速接口。1.2主控制器驅(qū)動(dòng)層對(duì)予每一類型的主控制器

3、都有一個(gè)與硬件獨(dú)立的USB主控制器驅(qū)動(dòng)(HostControllerDriver,簡(jiǎn)稱HCD)。WindRiver提供了兩個(gè)驅(qū)動(dòng):usbHedUheiLib(UHCI主控制器庫(kù))和usbHcdohciLib(OHCl主控制器庫(kù))。該模塊向下直接與USB主控制器硬件進(jìn)行交互操作,向上與USBD層的功能接口,提供各種功能函數(shù)的調(diào)用,支持對(duì)上層模塊封裝具體的HCD驅(qū)動(dòng)的實(shí)現(xiàn)。安裝驅(qū)動(dòng)的IO函數(shù),添加驅(qū)動(dòng)到驅(qū)動(dòng)表里面接著調(diào)用驅(qū)動(dòng)層初始化函數(shù)if

4、(usbMouseDevInit()==OK)usbMouseLib.c(targetsrcdrvusb)printf(“usbMouseDevInit()returnedOKn“)這個(gè)函數(shù)如果成功,會(huì)輸出打印上面的信息表明驅(qū)動(dòng)已經(jīng)加載,并且和usb設(shè)備已經(jīng)匹配上。接著調(diào)用驅(qū)動(dòng)層動(dòng)態(tài)注冊(cè)函數(shù)if(usbMouseDynamicAttachRegister(usbMseDrvAttachCallback(void)NULL)!=OK)us

5、bMouseLib.c(targetsrcdrvusb)這個(gè)函數(shù)會(huì)把usbMseDrvAttachCallback保存在驅(qū)動(dòng)層創(chuàng)建的一個(gè)隊(duì)列里面,當(dāng)usb設(shè)備熱插拔時(shí),都會(huì)調(diào)用這個(gè)函數(shù)。如果已經(jīng)插入了usbmouse,就會(huì)馬上調(diào)用usbMseDrvAttachCallback,參數(shù)為USB_MSE_ATTACH,如果沒有插入,那么驅(qū)動(dòng)加載已經(jīng)完成了??磚sbMseDrvAttachCallback(usrUsbMseInit.c(tar

6、getconfigcompssrc))因?yàn)榈谝淮螀?shù)是USB_MSE_ATTACH,就會(huì)進(jìn)入if(attachCode==USB_MSE_ATTACH)這個(gè)分支:首先調(diào)用驅(qū)動(dòng)層的if(usbMouseSioChanLock(pChan)!=OK),標(biāo)記SIO_CHANstructure已經(jīng)在使用接著調(diào)用sprintf(mseName“%s%d“USB_MSE_NAMEmseCount)if(usbMseDevCreate(mseName

7、pChan)!=OK)創(chuàng)建設(shè)備文件,即創(chuàng)建“usbMoX“,X由mseCount決定,同時(shí)創(chuàng)建文件層設(shè)備結(jié)構(gòu),并放在鏈表里面,調(diào)用iosDevAdd將設(shè)備添加到系統(tǒng)設(shè)備列表里面接著調(diào)用if(usbMseDevFind(pChanreturn根據(jù)pchan在鏈表里面找到這個(gè)usb設(shè)備的文件層設(shè)備結(jié)構(gòu)接著調(diào)用if((pChanpDrvFuncscallbackInstall)(pChanSIO_CALLBACK_PUT_MOUSE_REPT

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論