




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、usb驅(qū)動(dòng)開(kāi)發(fā)工具比較USB驅(qū)動(dòng)開(kāi)發(fā)的主要工具:DDK(DDK是DeviceDevelopmentKit,設(shè)備開(kāi)發(fā)包的意思)、WinDriver、DriverStudio三種(不知道是否適合于其它驅(qū)動(dòng)的開(kāi)發(fā))。比較如下:用WinDriver和DriverStudio開(kāi)發(fā)驅(qū)動(dòng)比DDK簡(jiǎn)單容易上手,但WinDriver開(kāi)發(fā)驅(qū)動(dòng)沒(méi)法脫離WinDriver環(huán)境不好發(fā)布,所以還是用DriverStudio比較好。下面內(nèi)容轉(zhuǎn)自網(wǎng)絡(luò):1 Microsoft公司提供的WindowsDDK(DeviceDriverKit)。它有Windows98DDK和Windows2000DDK兩個(gè)版本。Windows98D
2、DK能夠開(kāi)發(fā)Windows95/98/Me/NT下的VxD、KMD和WDM驅(qū)動(dòng)程序。Windows2000DDK能夠開(kāi)發(fā)Windows98/Me/NT/2000下的KMD和WDM驅(qū)動(dòng)程序。由于DDK基于匯編語(yǔ)言的編程方式和內(nèi)核模式的調(diào)用,對(duì)沒(méi)有深厚的OS原理和編程水平的人員來(lái)說(shuō),任務(wù)相當(dāng)艱巨。2 NuMega公司提供的DriverStudio,它是一個(gè)大的開(kāi)發(fā)工具包,包含VtoolsD、SoftICE和DriverWorks等開(kāi)發(fā)工具。VtoolsD開(kāi)發(fā)包提供了對(duì)VxD編程的C/C+類庫(kù)支持,利用VtoolsD中的QuickVxD工具可以快速生成VxD的C/C+代碼框架,開(kāi)發(fā)者可以在此基礎(chǔ)上根
3、據(jù)各自的需要添加自己的代碼。DriverWorks用于開(kāi)發(fā)KMD和WDM驅(qū)動(dòng)程序,并且對(duì)DDK函數(shù)進(jìn)行了類的封裝,從而為開(kāi)發(fā)WindowsNT、Windows2000和Widnwos98WDM設(shè)備驅(qū)動(dòng)程序提供了一個(gè)自動(dòng)化的方法。DriverWorks,提供了VC+下的開(kāi)發(fā)向?qū)riverWizard,按照它的提示可以迅速地生成驅(qū)動(dòng)程序的框架。這個(gè)框架結(jié)構(gòu)提供可以正確執(zhí)行WDM動(dòng)態(tài)環(huán)境中IRP的請(qǐng)求,而且,也包含用于簡(jiǎn)化系統(tǒng)提供的標(biāo)準(zhǔn)類驅(qū)動(dòng)程序(如HID、流)和總線驅(qū)動(dòng)程序(如PCI和USB)接口的類等??傊?,利用DriverWorks開(kāi)發(fā)WDM驅(qū)動(dòng)程序,可以大大簡(jiǎn)化開(kāi)發(fā)人員的工作量、縮短開(kāi)發(fā)周
4、期以及降低開(kāi)發(fā)驅(qū)動(dòng)程序的難度。1用DriverWorks開(kāi)發(fā)WDM型USB設(shè)備驅(qū)動(dòng)程序要 想 使 用DriverWorks,必 須 先 安 裝 以 下 軟 件 :DriverStudio2.5,VisualStudio6.0,以 及Windows2000DDK。由于DriverWorks所用的類庫(kù)是對(duì)DDK的庫(kù)函數(shù)的封裝,還必須在VisualC+中編譯需要的庫(kù)文件3,下面介紹怎樣在VC環(huán)境中創(chuàng)建自己的庫(kù)文件。(1)啟動(dòng)VisualC+。(2)選擇菜單FileOpenWorkspace。打開(kāi)位于DriverStudioDriverWorksSourcevdwlibs.dsw的工作空間文件。(3)
5、選擇菜單BuildBatchBuild,在彈出的對(duì)話框架中選擇你想編譯的庫(kù)。(4)點(diǎn)擊對(duì)話框中的Build即可編譯你選擇的庫(kù)。下面就通過(guò)一個(gè)例子來(lái)說(shuō)明利用DriverWorks開(kāi)發(fā)USB設(shè)備驅(qū)動(dòng)程序的方法。這個(gè)USB設(shè)備有3個(gè)雙向端點(diǎn),每個(gè)端點(diǎn)的配置如下:端點(diǎn)類型地址緩沖區(qū)(字節(jié))0IN/OUT控制(Control)0 x80/0 x0016/161IN/OUT塊(Bulk)0 x81/0 x0116/162IN/OUT塊(Bulk)0 x82/0 x0264/64驅(qū)動(dòng)程序需要實(shí)現(xiàn)的功能就是控制設(shè)備上的LED燈的亮和滅,以及通過(guò)端點(diǎn)2對(duì)設(shè)備進(jìn)行讀寫(xiě)。(1)首先,通過(guò)快捷方式“SetupDDKa
6、ndStartMSVC”來(lái)啟動(dòng)VCIDE。這個(gè)快捷方式所指向的程序,會(huì)進(jìn)行一些必要的設(shè)置,然后再啟動(dòng)VCIDE,這樣我們的程序就可以使用DDK和DW的頭文件和庫(kù)了。(2)從VCIDE的菜單“DriverStudio”中選擇“DriverWizard,之后按對(duì)話框的提示填寫(xiě)項(xiàng)目名稱及所在目錄。并按向?qū)нx擇驅(qū)動(dòng)程序類型為WDM,總線類型為USB。(3)按端點(diǎn)的配置表進(jìn)行端點(diǎn)的設(shè)置。由于在USB中規(guī)定端點(diǎn)0是必須存在的,所以我們只需對(duì)端點(diǎn)1和端點(diǎn)2進(jìn)行定義即可。(4)選擇端點(diǎn)2產(chǎn)生BULKRead及BULKWrite的代碼,DriverWorks會(huì)自動(dòng)產(chǎn)生對(duì)端點(diǎn)2的讀寫(xiě)代碼,不用修改,就可以直接使用
7、。(5)增加一個(gè)IOCTL來(lái)控制USB設(shè)備的LED燈。IOCTL代碼名稱取為TEST_IOCTL_LED,其他值默認(rèn)。(6)最后按下Finish”按鈕,就結(jié)束了Wizard。在此過(guò)程中只針對(duì)需要修改的步驟進(jìn)行了說(shuō)明,未加說(shuō)明的部分均可直接按“Next”按鈕。至U此,我們已經(jīng)創(chuàng)建好了一個(gè)基本的驅(qū)動(dòng)程序,其中的塊讀寫(xiě)代碼都由DriverWorks自動(dòng)生成,無(wú)需另外加代碼,只有廠商請(qǐng)求通過(guò)Ioctl來(lái)進(jìn)行,控制LED燈的亮滅。代碼如下:NTSTATUSTESTDevice:TEST_IOCTL_LED_Handler(KIrpI)NTSTATUSstatus=STATUS_SUCCESS;tEnte
8、ringTESTDevice:TEST_IOCTL_LED_Handler,I選項(xiàng)彈出選項(xiàng)窗口,選擇”項(xiàng)目和解決方案-VC+目錄,”顯示以下內(nèi)容的目錄“可執(zhí)行文件”中添加C:WinDDKC:WinDDK7600.16385.0binx86x86C:WinDDK7600.16385.0binx86C:WinDDK7600.16385.0toolspfdbinbinx86包含文件中添加C:WinDDK7600.16385.0incC:WinDDK7600.16385.0incapiC:WinDDK7600.16385.0inccrtC:WinDDK7600.16385.0incddk引用文件”中添
9、加C:WinDDK7600.16385.0libwxpi386“庫(kù)文件”中添加C:WinDDK7600.16385.0libC:WinDDK7600.16385.0libwxpi386“源文件”中添加C:WinDDK7600.16385.0src以上添加完畢直接按確定關(guān)閉選項(xiàng)對(duì)話框如果編譯出現(xiàn) C2144 錯(cuò)誤的時(shí)候,請(qǐng)把以上添加的文件向前移動(dòng)(就是點(diǎn)擊選項(xiàng)”對(duì)話框中的向上的箭頭按鈕)2、設(shè)置虛擬機(jī)的可調(diào)模式:1)打開(kāi) boot 文件的方式可以選用以下兩種:1.我的電腦屬性局級(jí)“啟動(dòng)和故障恢復(fù)-編輯。2.運(yùn)行-“msconfig”-boot.iniboot.ini 的修改如下:在虛擬機(jī)中,編輯
10、 boot.ini 文件,在末尾添加一行:multi(0)disk(0)rdisk(0)partition(1)WINDOWS=MicrosoftWindowsXPProfessional/noexecute=optin/fastdetect/debug/debugport=com1/baudrate=1152002)保存后poweroff虛擬系統(tǒng)。在左邊欄中選擇Editvirtualmachinesettings-add-SerialPort-Outputtonamedpipe,此時(shí)出現(xiàn)三個(gè)文本框,依次填入:com_1和Thisendistheserver.,第3個(gè)修改為Theotheren
11、disanapplication.”3)保存。配置真實(shí)機(jī)。創(chuàng)建windbg.exe在桌面的快捷方式,屬性-目標(biāo)windbg.exe-b-kcom:port=.pipecom_1,baud=115200,pipe4)可以選擇配置真實(shí)機(jī)串口:我的電腦-管理-設(shè)備管理器-端口 com-com1-屬性-端口設(shè)置-每位秒數(shù)-1152005)啟動(dòng) windbg.exe,在 file-symbolfilepath,添加微軟官方符號(hào)表srv*c:symbols*http:/ 以及你自己工程中生成 sys文件的目錄(就是你要編譯的驅(qū)動(dòng)服務(wù)文件的目錄,需要事先生成要調(diào)試的驅(qū)動(dòng)服務(wù).sys 文件,并將.sys 文件
12、拷貝到虛擬機(jī)中),我的是 E:projectsTestsfirstobjchk_wxp_x86i386,兩路徑用分號(hào)分隔。勾選 reload6)啟動(dòng)虛擬機(jī),將 sys 文件提供的服務(wù)用 srvinstw.exe 安裝到虛擬機(jī)中。安裝中,選手動(dòng),NT 驅(qū)動(dòng)不用填7)重啟虛擬機(jī),選擇調(diào)試模式,啟動(dòng)真實(shí)機(jī)桌面設(shè)置過(guò)參數(shù)的 windbg 快捷方式,此時(shí)如果出現(xiàn)WinDbg:6.10.0003.233X86Couldnotstartkerneldebuggingusingcom:pipe,port=.pipevpcdebug,resets=10parameters,Win32error0n2Couldnotstartkerneldebuggingusingcom:pipe,port=.pipecom1,resets=10parameters,Win32error0n2系統(tǒng)找不到指定的文件說(shuō)明虛擬機(jī)還沒(méi)有啟動(dòng)起來(lái),只需要重啟 windbg。在系統(tǒng)出現(xiàn)中斷時(shí),在 windbg 中輸入 g。8)進(jìn)入到系統(tǒng)后,
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CARSA 1.1-2022基于低空無(wú)人機(jī)的高分衛(wèi)星遙感產(chǎn)品真實(shí)性檢驗(yàn)第1部分:總則
- T/CAPMA 7-2021土種綿羊原毛交易技術(shù)指南
- T/CAPE 12002-2021氣柜密封油
- 電子工程師面試題及答案
- 伊利面試題及答案
- 環(huán)保面試題及答案
- 軍工產(chǎn)品定價(jià)管理制度
- 家長(zhǎng)會(huì)英語(yǔ)老師發(fā)言稿模版
- 小學(xué)語(yǔ)文《橋》教案
- 快畢業(yè)后離開(kāi)學(xué)校協(xié)議書(shū)
- 2024行政處罰法:行政處罰的聽(tīng)證程序
- 《世界文化遺產(chǎn)長(zhǎng)城》課件
- GB/T 2982-2024工業(yè)車輛充氣輪胎規(guī)格、尺寸、氣壓與負(fù)荷
- 妊娠合并高血壓疾病護(hù)理查房
- 走進(jìn)泰國(guó)-課件
- 一站到底課件
- 西安中建一局裝修合同模板
- 《PLC應(yīng)用技術(shù)(西門子S7-1200)第二版》全套教學(xué)課件
- 《毫米、分米的認(rèn)識(shí)》課件
- 社會(huì)團(tuán)體財(cái)務(wù)報(bào)表
- iso220002024食品安全管理體系標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論