




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、如何在 Windows CE 5.0 中開發(fā)和測(cè)試設(shè)備驅(qū)動(dòng)程序發(fā)布日期: 2005-3-31 | 更新日期: 2005-3-31Mike HallMicrosoft適用于:Microsoft Windows CE version 5.0摘要:本文介紹如何開發(fā)和測(cè)試 Windows CE 5.0 設(shè)備驅(qū)動(dòng)程序。本文循序漸進(jìn)地介紹如何創(chuàng)建流驅(qū)動(dòng)程序,如何創(chuàng)建自定義Windows CE Test Kit (CETK) 測(cè)試,以及如何編寫應(yīng)用程序來測(cè)試驅(qū)動(dòng)程序。這要花費(fèi)大約 60 分鐘來完成。從 Microsoft 下載中心下載Windows CE 5.0 Embedded Development L
2、abs.msi。本頁內(nèi)容第一部分:建立設(shè)備驅(qū)動(dòng)程序第二部分:測(cè)試流驅(qū)動(dòng)程序測(cè)試代碼第三部分:檢驗(yàn)驅(qū)動(dòng)程序第四部分:使用 Windows CE Test Kit第五部分:創(chuàng)建自定義 CETK 測(cè)試第六部分:確定誰擁有流驅(qū)動(dòng)程序小結(jié)第一部分:建立設(shè)備驅(qū)動(dòng)程序在本練習(xí)中,您將使用 Platform Builder 來添加作為設(shè)備驅(qū)動(dòng)程序的項(xiàng)目。在開始編寫驅(qū)動(dòng)程序之前,您應(yīng)該了解設(shè)備驅(qū)動(dòng)程序的用途。驅(qū)動(dòng)程序?qū)⒒A(chǔ)硬件從操作系統(tǒng)中抽象出來,使之更好地面對(duì)應(yīng)用程序開發(fā)人員。應(yīng)用程序開發(fā)人員無需知道顯示硬件或串行硬件的詳細(xì)信息 例如,串行設(shè)備是用 Universal Asynchronous Receive
3、r/Transmitter (UART) 實(shí)現(xiàn)的還是用field-programmable gate array (FPGA) 實(shí)現(xiàn)的。在大多數(shù)情況下,應(yīng)用程序開發(fā)人員根本不需要知道硬件是如何實(shí)現(xiàn)的。Microsoft Windows 為開發(fā)人員公開了調(diào)用硬件的應(yīng)用程序編程接口(API),他們不需要知道物理硬件的情況。例如,為了向串行端口寫入數(shù)據(jù),應(yīng)用程序開發(fā)人員只需調(diào)用 COMx 上的 CreateFile( )(其中 x表示您要打開的串行端口編號(hào),例如 COM1 代表串行端口 1),再調(diào)用 WriteFile( ) 以將一些字節(jié)數(shù)據(jù)寫入串行端口,然后調(diào)用CloseHandle( ) 以關(guān)閉
4、串行端口。不管基礎(chǔ)串行硬件是什么(也不管您運(yùn)行的是哪個(gè) Windows 操作系統(tǒng)),API 都會(huì)以同樣的順序執(zhí)行。相同的情況也適用于其他 API:如果您希望在顯示表面畫一條線,那么您只需調(diào)用 PolyLine( )、MoveToEx( ) 或 LineTo()。作為應(yīng)用程序開發(fā)人員,大多數(shù)情況下您都不需要知道顯示硬件的情況。此處調(diào)用的 API 將返回顯示表面的維數(shù)、顏色深度等等。好消息是開發(fā)人員可以調(diào)用一個(gè)一致的、眾所周知的 API 集。這些 API將他們的應(yīng)用程序從基礎(chǔ)硬件中抽象出來。這至關(guān)重要,因?yàn)閼?yīng)用程序開發(fā)人員無法知道應(yīng)用程序是運(yùn)行在便攜式計(jì)算機(jī)上,還是運(yùn)行在 Tablet PC上,抑
5、或運(yùn)行在桌面計(jì)算機(jī)上。無論電腦以 1024×768 還是 1600×1200的分辨率運(yùn)行,應(yīng)用程序開發(fā)人員都可以在運(yùn)行時(shí)查詢屏幕分辨率和顏色深度,因此不需要構(gòu)建只在特定硬件上運(yùn)行的應(yīng)用程序。驅(qū)動(dòng)程序只是一個(gè)動(dòng)態(tài)鏈接庫(DLL)。將 DLL 加載到父進(jìn)程地址空間;然后父進(jìn)程就可以調(diào)用從該 DLL 公開的任何接口。通常,父進(jìn)程通過調(diào)用LoadLibrary( ) 或 LoadDriver( ) 來加載驅(qū)動(dòng)程序。LoadDriver 不僅將 DLL 加載到父進(jìn)程地址空間中,而且還要確保 DLL沒有“paged out”。調(diào)用進(jìn)程如何知道從您的 DLL 或驅(qū)動(dòng)程序公開了哪些 API
6、 或函數(shù)呢?父進(jìn)程調(diào)用 GetProcAddress( ),后者可以獲取函數(shù)名稱和所加載的DLL 的 hInstance。如果函數(shù)存在,調(diào)用返回該函數(shù)指針;如果沒有從 DLL 公開該函數(shù),則返回 NULL。流驅(qū)動(dòng)程序也公開了一個(gè)眾所周知的函數(shù)集。對(duì)于流驅(qū)動(dòng)程序,您會(huì)希望能夠?qū)⒆止?jié)流寫入設(shè)備中,或者從設(shè)備中讀取字節(jié)流。因此,在前面使用的串行端口示例中,您可能希望從您的驅(qū)動(dòng)程序公開如下函數(shù)集:Open、Close、Read和Write。流驅(qū)動(dòng)程序還公開一些其他函數(shù):PowerUp、PowerDown、IOControl、Init和DeInit。您可以將現(xiàn)有的操作系統(tǒng)映像用于模擬器平臺(tái)(Basic
7、Lab MyPlatform 平臺(tái)最理想)。然后,您就可以將 DLL/驅(qū)動(dòng)程序項(xiàng)目添加到該平臺(tái)了。在構(gòu)建并下載了該平臺(tái)之后(這表明操作系統(tǒng)啟動(dòng)并運(yùn)行良好),您需要?jiǎng)?chuàng)建您的主干驅(qū)動(dòng)程序。您可以使用File菜單上的 Platform Builder New Project or File命令創(chuàng)建一個(gè) Microsoft Windows CE DLL。創(chuàng)建用于公開函數(shù)或資源的DLL 與創(chuàng)建用作驅(qū)動(dòng)程序的 DLL 之間沒有什么不同;唯一的不同之處在于 DLL 公開哪些函數(shù),以及如何在平臺(tái)上注冊(cè)或使用 DLL。此外,一種創(chuàng)建國際化應(yīng)用程序的方法是,首先創(chuàng)建包含一組核心語言字符串、對(duì)話框和資源的基本應(yīng)用程
8、序,然后創(chuàng)建許多外部DLL,其中每個(gè)都包含針對(duì)特定區(qū)域設(shè)置的對(duì)話框、字符串和資源。然后,應(yīng)用程序就可以在運(yùn)行時(shí)加載相應(yīng)的語言資源。只需要添加 DLL文件,您就可以將語言添加到應(yīng)用程序中。在Developing International Software一書中描述了與此相關(guān)的主題以及其他一些有趣的主題,可以在Microsoft Press 網(wǎng)站上獲得此書。添加一個(gè)作為設(shè)備驅(qū)動(dòng)程序的項(xiàng)目1.用 Platform Builder 打開現(xiàn)有的MyPlatform工作區(qū)。2.在File菜單上,單擊New Project or File。3.選擇WCE Dynamic-Link Library,給它一個(gè)
9、合適的名稱(例如,StreamDrv),然后單擊OK,如下圖所示。4.在下圖所顯示的頁面中多少填寫一些您需要的信息,然后單擊Next。5.單擊A simple Windows CE DLL project,如下圖所示。6.單擊Finish完成此向?qū)?。此時(shí),DLL 只包含一個(gè)空的DllMain函數(shù)。您可以公開一些應(yīng)用程序要調(diào)用的函數(shù),并公開一些資源(可能使之成為識(shí)別語言/文化的應(yīng)用程序的一部分),或者使之成為一個(gè)設(shè)備驅(qū)動(dòng)程序。在本文中,您將使用Windows CE Stream Driver Wizard 創(chuàng)建您的主干流驅(qū)動(dòng)程序。在 Windows CE 中,打開流驅(qū)動(dòng)程序就像打開文件一樣,只需
10、根據(jù)唯一的三字母前綴(例如,COM)。7.為您的驅(qū)動(dòng)程序選擇一個(gè)唯一的三字母標(biāo)識(shí)符。在Location框中輸入您之前創(chuàng)建的流驅(qū)動(dòng)程序的完整路徑。或者使用“browse”按鈕定位到Platform Builder 安裝中的 PBWorkspaces 目錄,找到您前面創(chuàng)建的平臺(tái),然后找到流驅(qū)動(dòng)程序的名稱(在前面的示例中,此路徑為PBWorkspacesTuxPlatStreamDrv)。8.在Driver Filename框中輸入驅(qū)動(dòng)程序的名稱。如下圖所示,使用與您前面使用名稱 (StreamDrv) 相同的名稱,以確保改寫在 Platform Builder 中創(chuàng)建的原始文件。9.按Go,將生成
11、流驅(qū)動(dòng)程序源代碼。返回頁首第二部分:測(cè)試流驅(qū)動(dòng)程序測(cè)試代碼現(xiàn)在您已經(jīng)編寫了用于 Windows CE 的自定義流驅(qū)動(dòng)程序的基本代碼。此時(shí),驅(qū)動(dòng)程序還沒有與任何硬件連接。在編寫完驅(qū)動(dòng)程序之后,您需要為開發(fā)人員提供一種測(cè)試它的方法。Windows CE 附帶了 Windows CE Test Kit(CETK),它提供了用于各種驅(qū)動(dòng)程序類型的驅(qū)動(dòng)程序測(cè)試,包含網(wǎng)絡(luò)連接、藍(lán)牙、串行端口以及顯示。您編寫的驅(qū)動(dòng)程序是一種自定義的流驅(qū)動(dòng)程序,它沒有公開與現(xiàn)有的驅(qū)動(dòng)程序測(cè)試一樣的功能,因此您需要為該驅(qū)動(dòng)程序編寫一個(gè)自定義測(cè)試。雖然您完全可以編寫一個(gè)應(yīng)用程序來演練驅(qū)動(dòng)程序,但提供一個(gè)CETK 模塊或許更好些,
12、在開發(fā)期間可以使用此模塊,并且還可以將此模塊提供給客戶,供他們?cè)谘b配硬件上測(cè)試驅(qū)動(dòng)程序。在這一部分的練習(xí)中,您將執(zhí)行以下過程:創(chuàng)建主干 Tux 模塊將自定義驅(qū)動(dòng)程序的測(cè)試代碼添加到 Tux DLL 中重新構(gòu)建操作系統(tǒng)設(shè)置斷點(diǎn)創(chuàng)建主干 Tux 模塊1.在 Platform Builder 中,在File菜單上單擊New Project or File。2.選擇WCE TUX Dynamic-Link Library,鍵入TuxTest作為項(xiàng)目名稱,輸入一個(gè)位置,單擊Workspace Project,然后單擊OK,如下圖所示。(實(shí)際上,您可以選擇任意一個(gè)項(xiàng)目類型;對(duì)于本文,單擊Workspace
13、 Project)。3.在下圖顯示的頁面中多少填寫一些您需要的信息,然后單擊Next。4.閱讀下圖所顯示的屏幕上的信息,然后單擊Next。5.在最后一頁上,您可以選擇選取Release Type下的CETK,如下圖所示。該選項(xiàng)關(guān)閉了某些二進(jìn)制的優(yōu)化,以提高調(diào)試工作效率。單擊Finish。6.單擊View | File View,然后展開Projects樹顯示 tux 源代碼,如下圖所示。前圖中需要注意的重要文件是:ft.h 該文件包含 tux DLL 所用的函數(shù)表。 test.cpp 該文件包含從該函數(shù)表中調(diào)用的測(cè)試過程。 TuxStreamTest.cpp 該文件包含DLLMain和Shel
14、lProc,后者是從 Tux.exe調(diào)用的。將自定義驅(qū)動(dòng)程序測(cè)試代碼添加到 Tux DLL 中1.打開源代碼 Test.cpp。2.使用 CodeClip 來獲得Tux_Custom_Test | TuxCode源代碼。3.用 CodeClip 中的代碼替代函數(shù)TestProc中的內(nèi)容。您會(huì)注意到,Test.cpp 中的代碼加載了一個(gè)名為 Demo.dll 的驅(qū)動(dòng)程序。對(duì)于本文,您創(chuàng)建了一個(gè)名為 StreamDrv的驅(qū)動(dòng)程序。您需要修改源代碼以加載您的 StreamDrv.dll 驅(qū)動(dòng)程序。4.找到 Test.cpp 中調(diào)用LoadLibrary的源代碼的位置,然后將要從Demo.dll中加載
15、的驅(qū)動(dòng)程序的名稱修改為StreamDrv.dll。5.在 Platform Builder 文件視圖中,右鍵單擊TuxTest項(xiàng)目,然后單擊Build Current Project。您還需要從該目錄中添加 Windows CE Test Kit 組件。6.在Device Drivers下,找到該目錄中Windows CE Test Kit組件的位置,然后選擇Add the Windows CE Test Kit,將該組件添加到您的平臺(tái)中。注將該組件添加到您的平臺(tái)上并沒有將任何文件添加到最后的操作系統(tǒng)映像中;它將 Clientside 文件添加到 build release文件夾中。您可以從
16、Platform Builder 下載 Clientside 應(yīng)用程序,并在目標(biāo)設(shè)備上運(yùn)行該應(yīng)用程序?,F(xiàn)在您需要重新構(gòu)建您的操作系統(tǒng),以便合并這些變更。重新構(gòu)建操作系統(tǒng)在 Platform Builder 中,選擇BuildOS | Sysgen。構(gòu)建過程將會(huì)花大約 5 分鐘完成。當(dāng)加載驅(qū)動(dòng)程序時(shí),在流驅(qū)動(dòng)程序的入口點(diǎn)設(shè)置一個(gè)斷點(diǎn)來觀察非常有用。設(shè)置斷點(diǎn)1.單擊File View,打開StreamDrv項(xiàng)目,然后打開Source files。2.找到并打開 StreamDrv.cpp。3.找到DllMain,然后找到并單擊switch語句。4.按 F9 設(shè)置斷點(diǎn)。5.單擊Target | At
17、tach,將操作系統(tǒng)下載到模擬環(huán)境中。您會(huì)看到以下調(diào)試輸出,斷點(diǎn)將啟用。注意,在加載操作系統(tǒng)的用戶接口 (UI) 之前,這早就發(fā)生了。4294780036 PID:23f767b6 TID:23f767e6 0x83fa6800: >>> Loading module streamdrv.dll at address 0x01ED0000-0x01ED5000Loaded symbols for 'C:WINCE500PBWORKSPACESDRVDEMORELDIREMULATOR_X86_DEBUGSTREAMDRV.DLL'6.單擊switch語句,然后
18、按 F9 禁用斷點(diǎn)。7.按 F5,允許操作系統(tǒng)繼續(xù)加載。現(xiàn)在,您已經(jīng)構(gòu)建了一個(gè) Windows CE 5.0操作系統(tǒng),它包含一個(gè)自定義流驅(qū)動(dòng)程序,并且您已經(jīng)在操作系統(tǒng)引導(dǎo)順序的過程中看到了驅(qū)動(dòng)程序加載。返回頁首第三部分:檢驗(yàn)驅(qū)動(dòng)程序在這一部分的練習(xí)中,您將執(zhí)行以下過程:使用命令行工具查看從驅(qū)動(dòng)程序公開的函數(shù)使用遠(yuǎn)程系統(tǒng)信息 (Remote System Information) 工具檢驗(yàn)驅(qū)動(dòng)程序確定驅(qū)動(dòng)程序已加載檢驗(yàn)?zāi)鶆?chuàng)建的設(shè)備驅(qū)動(dòng)程序的第一種方法是查看從該驅(qū)動(dòng)程序公開的函數(shù)。Windows CE 附帶了一個(gè)名為 Dumpbin的命令行工具,可以用于檢驗(yàn)導(dǎo)入應(yīng)用程序或模塊的內(nèi)容,或者從 DL
19、L(或驅(qū)動(dòng)程序)導(dǎo)出的內(nèi)容。使用命令行工具查看從驅(qū)動(dòng)程序公開的函數(shù)1.在 Platform Builder 中,單擊Build OS | Open Release Directory。該操作為當(dāng)前的工作區(qū)打開 build release 文件夾中的 Command Prompt 窗口。2.鍵入dumpbin exports StreamDrv.dll下圖顯示輸出。您可以看到,所有需要的流驅(qū)動(dòng)程序函數(shù)都是從驅(qū)動(dòng)程序公開的;函數(shù)是從 DLL 公開的(通過該項(xiàng)目的 .def 文件)。3.鍵入Exit關(guān)閉 Command Prompt 窗口StreamDrv.def 文件的內(nèi)容如下所示。LIBRARY
20、 DemoDriverEXPORTS DEM_Init DEM_Deinit DEM_Open DEM_Close DEM_IOControl DEM_PowerUp DEM_PowerDown DEM_Read DEM_Write DEM_Seek CustomFunction CustomFunctionEx您可以檢驗(yàn)驅(qū)動(dòng)程序的第二種方法是通過遠(yuǎn)程系統(tǒng)信息工具。通過遠(yuǎn)程系統(tǒng)信息工具檢驗(yàn)驅(qū)動(dòng)程序1.在 Platform Builder 中,單擊Tools | Remote System Information。2.選擇Windows CE Default Platform | Default
21、 Device,然后單擊OK,如下圖所示。此過程將遠(yuǎn)程系統(tǒng)信息應(yīng)用程序連接到 Platform Builder 正在使用的當(dāng)前活動(dòng)平臺(tái)上。下圖顯示了結(jié)果。您也可以使用加載模塊列表來確定已加載了您的驅(qū)動(dòng)程序。確定驅(qū)動(dòng)程序已加載在 Platform Builder 中,使用 Target Control 窗口 (gi mod) 或View | Debug Windows | Modules and Symbols。下圖顯示了此過程的結(jié)果。返回頁首第四部分:使用 Windows CE Test KitWindows CE Test Kit 包含設(shè)備端組件和桌面組件。設(shè)備端組件叫做 Clientsid
22、e.exe,通過從目錄中添加 CETK組件,您可以將設(shè)備端組件添加到您的工作區(qū)中。注意,將 Clientside.exe應(yīng)用程序添加到工作區(qū)中并沒有將任何文件添加到最終操作系統(tǒng)映像中,但它卻將應(yīng)用程序復(fù)制到 build release 文件夾中。在桌面計(jì)算機(jī)上運(yùn)行 CETK 之前,您需要啟動(dòng)設(shè)備上的 Clientside.exe 應(yīng)用程序。沒有鏈接工具(比如遠(yuǎn)程工具)的原因在于,CETK也將運(yùn)行在裝配(零售)設(shè)備(比如 Pocket PC)上。在這一部分的練習(xí)中,您將執(zhí)行以下過程:1.檢驗(yàn) Windows CE Test Kit 用戶接口2.運(yùn)行一個(gè)標(biāo)準(zhǔn)測(cè)試檢驗(yàn) Windows CE Test
23、 Kit 用戶接口在 Platform Builder 中,在Tools菜單上單擊Windows CE Test Kit。這一步啟動(dòng) Windows CE Test Kit 應(yīng)用程序,如下圖所示。注意,這不是一個(gè)標(biāo)準(zhǔn)的遠(yuǎn)程工具。Windows CE 附帶的大多數(shù)遠(yuǎn)程工具都使用 Kernel Independent Transport Layer (KITL),一種將工具從基礎(chǔ)通信硬件中抽象出來的傳輸,以便這些工具可以運(yùn)行在以太網(wǎng)、串行端口、1394、USB 或者其他傳輸上。雖然對(duì)于 Windows CE 5.0,Windows CE Test Kit 通常通過套接字連接,但是也已經(jīng)更新了工具來
24、支持 KITL。在 Windows CE Test Kit 中,單擊Connection | Start Client。這一步顯示Device Connection對(duì)話框,其中您可以選擇是通過套接字連接還是通過 KITL 連接。確保清除了Use Windows Sockets for the client/server communication復(fù)選框,如下圖所示。單擊Connect。在遠(yuǎn)程工具 (KITL) 的標(biāo)準(zhǔn)用戶界面中,選擇Windows CE Default Platform | Default Device,然后單擊OK,如下圖所示。該過程在目標(biāo)設(shè)備上啟動(dòng) Clientside.e
25、xe,并連接到目標(biāo)設(shè)備上。在完成連接之后,CETK 枚舉目標(biāo)平臺(tái)上支持的設(shè)備,并禁用 CETK中不支持的設(shè)備。在 CETK 連接到目標(biāo)設(shè)備并枚舉設(shè)備之后,UI 如下圖所示。注意,禁用了某些硬件類別,比如Bluetooth、IR Port和Modem。將自定義測(cè)試添加到 CETK 中之前,您可以運(yùn)行一個(gè)標(biāo)準(zhǔn)測(cè)試,以查看測(cè)試工作如何進(jìn)行。運(yùn)行標(biāo)準(zhǔn)測(cè)試1.在 CETK 中,展開Windows CE (x86)。2.找到并展開Serial Port。3.右鍵單擊Serial Port Driver Test,然后單擊Quick Start。這一步只運(yùn)行了這一個(gè)測(cè)試,還沒有運(yùn)行所選的其他測(cè)試。UI 指示
26、測(cè)試正在進(jìn)行,如下圖所示。CETK 提供測(cè)試過程和測(cè)試輸出的更新。您也可以在 Platform Builder 中檢驗(yàn)調(diào)試輸出,以便查看測(cè)試過程,如下例所示。405910 PID:83d4ee4a TID:83ea5a8a * Test Name: Set event mask and wait for thread to close comm port handle 405920 PID:83d4ee4a TID:83ea5a8a * Test ID: 1007 405920 PID:83d4ee4a TID:83ea5a8a * Library Path: serdrvbvt.dll 40
27、5920 PID:83d4ee4a TID:83ea5a8a * Command Line: 405920 PID:83d4ee4a TID:83ea5a8a * Result: Passed 405920 PID:83d4ee4a TID:83ea5a8a * Random Seed: 15595 405930 PID:83d4ee4a TID:83ea5a8a * Thread Count: 1 405930 PID:83d4ee4a TID:83ea5a8a * Execution Time: 0:00:05.110 405930 PID:83d4ee4a TID:83ea5a8a *
28、如果 CETK UI指示模擬器上的串行端口測(cè)試已經(jīng)失?。ㄈ缦聢D所示),那么失敗可能不是由于每個(gè)測(cè)試的完全失敗而導(dǎo)致的。它可能表明,全部測(cè)試套件只有一部分已經(jīng)失敗,并且這部分實(shí)際上也是期望的行為。右鍵單擊Serial Port Driver Test Failed,然后單擊View Results。出現(xiàn)如下圖所示的窗口。查看上圖所示的結(jié)果,您可以看到,已經(jīng)運(yùn)行了 10 個(gè)單獨(dú)的測(cè)試。除了Set and verify receive timeout以外,所有這些測(cè)試都已經(jīng)通過。要獲得更多信息,您可以單擊個(gè)別測(cè)試。返回頁首第五部分:創(chuàng)建自定義 CETK 測(cè)試通過使用 Platform Builder
29、 User-Defined Test Wizard,您可以創(chuàng)建一個(gè)自定義 CETK測(cè)試。該測(cè)試將驗(yàn)證自定義流驅(qū)動(dòng)程序(您也已經(jīng)將其添加到平臺(tái)中)的導(dǎo)出函數(shù)。在這一部分的練習(xí)中,您將執(zhí)行以下過程:列出 CETK 中的自定義流驅(qū)動(dòng)程序測(cè)試運(yùn)行自定義流驅(qū)動(dòng)程序測(cè)試列出 CETK 中的自定義流驅(qū)動(dòng)程序測(cè)試1.在 CETK 中,單擊Tests | User Defined。這一步啟動(dòng) User-Defined Test Wizard。該向?qū)У牡谝豁撝皇且恍┬畔ⅰ?.單擊Next,如下圖所示。3.單擊Add a New Test,然后單擊Next,如下圖所示。4.輸入下列信息,然后單擊Next:1.在 N
30、ame of Test 框中鍵入 Custom Stream Driver Test2.在 Tux Module (DLL) 框中,定位到 C:Wince500PBWorkspacesMyPlatformRelDirEmulator_x86_Debug 目錄,然后選擇 test.dll 或 TuxTest.dll(這依賴于您在 Platform Builder 中所使用的 Tux 測(cè)試的名稱)。 3.在 Command Line 框中,保留當(dāng)前測(cè)試的默認(rèn)設(shè)置。 4.在 Processor 框中鍵入 x86下圖顯示信息如何出現(xiàn)在當(dāng)前的向?qū)ы撝小?.單擊Copy the files to the
31、directory for user-defined tests,然后單擊Next,如下圖所示。您需要將自定義驅(qū)動(dòng)程序測(cè)試(您的 DLL)復(fù)制到用戶定義的測(cè)試文件夾中。如果您要?jiǎng)h除現(xiàn)有的工作區(qū),那么自定義驅(qū)動(dòng)程序測(cè)試仍然保持完好。1.單擊Next,如下圖所示。2.單擊Finish,如下圖所示。CETK 應(yīng)用程序不會(huì)用新的測(cè)試進(jìn)行自動(dòng)刷新。您需要重新同步桌面應(yīng)用程序,以查看新添加的測(cè)試。3.右鍵單擊Windows CE (x86),然后單擊Redetect Peripherals。該過程添加了一個(gè)名為User Tests的新驅(qū)動(dòng)程序類別。您只添加了一個(gè)測(cè)試,因此,當(dāng)您展開這個(gè)項(xiàng)目時(shí),您只能看到C
32、ustom Stream Driver Test。注已經(jīng)將自定義流驅(qū)動(dòng)程序測(cè)試的 DLL 復(fù)制到下列位置: C:Program FilesWindows CE Platform Builder5.00CEPBwcetkuserx86.運(yùn)行自定義流驅(qū)動(dòng)程序測(cè)試1.在可用的測(cè)試列表中展開User Tests。2.右鍵單擊Custom Stream Driver Test,然后單擊Quick Start。注意 Platform Builder 中顯示的下列調(diào)試信息。1162630 PID:3c92032 TID:3efe3ea * TEST STARTING1162630 PID:3c92032 T
33、ID:3efe3ea *1162630 PID:3c92032 TID:3efe3ea * Test Name: Sample test1162630 PID:3c92032 TID:3efe3ea * Test ID: 11162640 PID:3c92032 TID:3efe3ea * Library Path: test.dll1162650 PID:3c92032 TID:3efe3ea * Command Line:1162650 PID:3c92032 TID:3efe3ea * Random Seed: 266481162650 PID:3c92032 TID:3efe3ea *
34、 Thread Count: 01162650 PID:3c92032 TID:3efe3ea * vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv1162660 PID:3c92032 TID:3efe3ea test: ShellProc(SPM_BEGIN_TEST, .) called1162660 PID:3c92032 TID:3efe3ea BEGIN TEST: "Sample test", Threads=0, Seed=266481162690 PID:3c92032 T
35、ID:3efe3ea Custom Stream Driver Test Starting1162690 PID:3c92032 TID:3efe3ea Custom Driver Test - Loading Demo.DLL1162710 PID:3c92032 TID:3efe3ea 0x83d3dc28: >>> Loading module streamdrv.dll at address 0x01ED0000-0x01ED50001162720 PID:3c92032 TID:3efe3ea StreamDrv - DLL_PROCESS_ATTACH116272
36、0 PID:3c92032 TID:3efe3ea Custom Driver Test - Loaded Demo.DLL OK1162740 PID:3c92032 TID:3efe3ea Custom Driver Test - Checking Interfaces.1162740 PID:3c92032 TID:3efe3ea Custom Driver Test - Checking DEM_Open1162740 PID:3c92032 TID:3efe3ea Custom Driver Test - DEM_Open OK1162740 PID:3c92032 TID:3efe
37、3ea Custom Driver Test - Checking DEM_Close1162750 PID:3c92032 TID:3efe3ea Custom Driver Test - DEM_Close OK1162750 PID:3c92032 TID:3efe3ea Custom Driver Test - Checking DEM_Read1162750 PID:3c92032 TID:3efe3ea Custom Driver Test - DEM_Read OK1162770 PID:3c92032 TID:3efe3ea Custom Driver Test - Check
38、ing DEM_Write1162790 PID:3c92032 TID:3efe3ea Custom Driver Test - DEM_Write OK1162790 PID:3c92032 TID:3efe3ea Custom Driver Test - Checking DEM_Init1162790 PID:3c92032 TID:3efe3ea Custom Driver Test - DEM_Init OK1162790 PID:3c92032 TID:3efe3ea Custom Driver Test - Checking DEM_Deinit1162800 PID:3c92
39、032 TID:3efe3ea Custom Driver Test - DEM_Deinit OK1162800 PID:3c92032 TID:3efe3ea Custom Driver Test - Checking DEM_PowerUp1162800 PID:3c92032 TID:3efe3ea Custom Driver Test - DEM_PowerUp OK1162800 PID:3c92032 TID:3efe3ea Custom Driver Test - Checking DEM_PowerDown1162810 PID:3c92032 TID:3efe3ea Cus
40、tom Driver Test - DEM_PowerDown OK1162810 PID:3c92032 TID:3efe3ea Custom Driver Test - Checking DEM_IOControl1162810 PID:3c92032 TID:3efe3ea Custom Driver Test - DEM_IOControl OK1162810 PID:3c92032 TID:3efe3ea Custom Driver Test - Checking DEM_Seek1162820 PID:3c92032 TID:3efe3ea Custom Driver Test - DEM_Seek OK1162830 PID:3c92032 TID:3efe3ea StreamDrv - DLL_PROCESS_DETACH1162840 PID:3c92032 TID:3efe3ea 0x83d3dc28: <<< Unloading module streamdrv.dll at address 0x01ED0000-0x01ED50001162870 PID:3c92032 TID:3efe3ea test: ShellProc(SPM_END_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 口腔修復(fù)技術(shù)臨床應(yīng)用
- 口腔疑難病例討論
- 吸痰技術(shù)流程并發(fā)癥管理策略
- Cilostamide-Standard-OPC3689-Standard-生命科學(xué)試劑-MCE
- 輪式裝甲車輛市場(chǎng)分析:預(yù)計(jì)2031年全球市場(chǎng)銷售額將達(dá)到249.9億美元
- 鋁合金犧牲陽極在海洋工程中的應(yīng)用實(shí)踐與成效
- 《化工儀表及控制供電系統(tǒng)設(shè)計(jì)規(guī)范》征求意見稿
- 新能源汽車二手車2025年市場(chǎng)流通服務(wù)模式創(chuàng)新與優(yōu)化報(bào)告
- 新能源產(chǎn)業(yè)園區(qū)建設(shè)與周邊社區(qū)環(huán)境穩(wěn)定風(fēng)險(xiǎn)分析報(bào)告
- 五金制品行業(yè)跨境電商市場(chǎng)布局與戰(zhàn)略研究報(bào)告
- 呼倫貝爾農(nóng)業(yè)無人機(jī)項(xiàng)目可行性研究報(bào)告(范文)
- LTPS-LCD工藝流程簡介資料
- 初中生物總復(fù)習(xí)(七八年級(jí)上下冊(cè))
- (完整版)10KV配電室安裝工程施工方案
- 幼兒衛(wèi)生保健試題和參考答案解析
- 鍋爐基礎(chǔ)知識(shí)及水泥余熱發(fā)電鍋爐性能1
- 遼寧省建筑施工三類人員安全生產(chǎn)考核合格證變更申請(qǐng)表
- (完整版)家庭親密度與適應(yīng)性量表
- DOE操作作業(yè)指導(dǎo)書
- 初三自主招生簡歷范文
- 側(cè)索硬化癥的概述
評(píng)論
0/150
提交評(píng)論