⑴ 如何用VS2005或者2008開發wince應用程序
先說開發工具,目前用得比較多的開發工具有EVC4(SP4)、VS2005、VS2008和Platform Builder。
其中Platform Builder主要是用來定製操作系統的,雖然也支持編寫應用程序,但用得相對較少。記得沒錯的話,它還得先編譯系統,才能新建應用程序的工程。
VS2005和VS2008是微軟的集大成開發工具,PB6.0就是作為VS2005的插件安裝的(PB6.0目前應該是不支持VS2008)。在VS2005中,你可以編譯WinCE6.0的操作系統,也可以編譯設備上的應用程序,省去了切換開發環境的麻煩。
EVC4(SP4)即嵌入式的VC,使用起來基本跟VC6.0一致。
WinCE應用程序的開發相對桌面Windows應用程序的開發有一些特點,如下彎凳:
1. UNICODE編碼。WinCE中的應用程序只能使用UNICODE編碼,桌面系統則支持UNICODE和ANSI碼。在移植PC端程序到設備上時需要注意這一點。
2.SDK。SDK即軟體開發支持包,軟體開發都少不了這個,但在WinCE應用程序的開發中尤為重要。因為WinCE系統本身是一個非標的操作系統,它的組件特性和可裁剪性決定了不同的系統支持的API是不同的。而桌面系統相對標准,SDK的作用就弱化了。WinCE中的SDK由系統開發人員在編譯完系統後,通過Platform Builder導出。應用程序的開發人員安裝此埋搜旅SDK,並編寫應用程序,最終將應用程序下載到目標平台上運行測試。一般來說,SDK是應用程序和操作系統之間的紐帶,但他們之間也並不是完全一一對應的。譬如,在硬體和操作系統都沒調試好時,我們可以先用標準的SDK或者自己定製一個模擬器的SDK進行應用程序的開發,等硬體和系統調試完成後再做聯調。應用程序基於新的SDK編譯一下,甚至無需重新編譯也可運行。當然,一個應用程序在別的設備上跑得很好,但到漏橘另外一個設備上卻不能工作也是很正常的。就像很多WM上的應用程序在WinCE中不能跑一樣,雖然內核相同,但系統不同,支持的API也是不同的。
最後說說開發語言,WinCE應用程序的開發有Win32、MFC和Managed等幾種方式。對於開發者來說,選擇使用哪一個主要看效能,開發的效能和運行的效能。根據能量守恆定律,開發效能和運行效能應該是一個此消彼長的關系。呵呵,跟能量守恆定律有關系么?勉強找個有力證據吧。託管代碼的開發效率很高,但執行效率相對就低了。這在物資還不是極大豐富的嵌入式系統上,就顯得尤為突出,實時性也得不到保證。MFC是基於Window32的一個基礎類庫,封裝了很多Win32的API,方便開發者使用,但它也是有缺點的,似乎也沒再更新。Win32是這三者中最底層的一個,編譯出的程序小,沒有額外的包袱,運行起來快,所以開發的難度自然就大了,代碼量也很大。我們在開發應用程序時應根據實際情況選擇更合適的。
⑵ VS2008 開發wince軟體
這是我配置vs2005的模擬器,你參考一下吧。
1. 在VS2005里新建項目中時,選擇創建Platform builder for CE 6.0的OS Design,新項目可以自
命名,這里命名為「MyEmulator」。
2. 創建MyEmulator的向導中,BSP一定要選擇「Device Emulator: ARMV4I」,下一步;
3. 模板(Design Templates)選擇「PDA Device」,下一步;
4. 選擇「Mobile Handheld」,下一步;
5. 應用程序(Application & Media)就隨自己的需要選擇,下一步;
6. 網路和通信(Networking & Communications)在此只選擇「Local Area Network(LAN)」,下一步;
7. 選擇完成;
8. 選擇Acknowledge;
到此工程建完;
四.添加組件(可以根據需要添加,這里主要添加漢字相關的組件)
(1) 添加漢字字型檔(這里要記得加入,很多人這里沒有加入,就出現漢字只看到方框的現象):
1. 在Catalog View添加「Core OS」-->「CEBASE」-->「International」-->「Locale Specific support」-->「Chinese (Simplified)」-->「Fonts」-->「SimSun & NSimSum(choose 1)」-->「SimSun & NSimSun」或者「SimSum & NSimSun (Subset 2_50)」;
2. 在Catalog View添加「Core OS」-->「CEBASE」-->「International」-->「Locale Specific support」-->「Chinese (Simplified)」-->「GB18030 Data Vonverter」和「Monotype Imaging AC3 Font Compression」;
(2)添加中文輸入法:
在Catalog View添加「Core OS」-->「CEBASE」-->「International」-->「Locale Specific support」-->「Chinese (Simplified)」-->「Input Method Editor」-->「MSPY 3.0 for Windows Embedded CE」;
(3) VS2005中菜單「項目」-->「MyEmulator(項目名)屬性」,配置選擇「所有配置」,配置屬性-->「Build Options」,在「Build Options」中去掉「Enable KITL (no IMGNOKITL=1)」 (這里如果加入了KITL功能的話,可能在模擬器運行的時候,會一直是黑屏的);
(4) 「Locale」中,Locales先Clear All,然後選擇「中文(中國)」,Default local選擇「中文(中國)」;
(5) 運行VS2005菜單「生成」-->「生成MyEmulator」;
五.構建SDK:
1. 運行VS2005菜單「項目」-->「Add New SDK…」,在SDK屬性頁中填寫必要的信息,屬性「Emulation」中Configuration 選擇Debug,可以設置模擬器的顯示屏大小及色深,還有內存大小,在此設置為240 x 320,16色深,128M內存,然後「應用」,「確定」。。
2. 然後運行VS2005菜單「生成」-->「Build All SDK…」,順利的話,就會在%WINCEROOT\OSDesigns\ \MyEmulator\MyEmulator\SDKs\SDK1\MSI\下會有MyEmulator.msi;
六.配置VS2005:
1、先安裝生成好的MyEmulator.msi。運行Visual Studio 2005,選擇菜單「工具->選項」,打開選項設置對話框,從左邊的樹型列表中選擇「設備工具->設備」,右邊的下拉列表框拉到底可以看到 「MyEmulator」,這就是剛剛生成的那個模擬器。下面的設備列表裡有兩項,雙擊MyEmulator,設定傳輸為DMA傳輸,再點擊「模擬器選 項」,在「顯示」選項卡里設定好模擬器屏幕尺寸,顏色深度等,全部保存。
2、用VS2005新建一個智能設備項目,向導選擇平台時,先刪除Pocket PC 2003,選擇MyEmulator,完成。然後按F5運行程序,順利的話定製的模擬器就會出來了(不過這個過程比較慢,需要等待一段時間)。
⑶ Win10下開發WinCE的配置
設置目標或測試計算機是配置計算機以便進行自動驅動程序部署、測試和調試的過程。一個測試和調試環境具有兩台計算機:主計算機和目標計算機。目標計算機也稱為「測試計算機」。使用主機上的 Visual Studio 開發和構建驅動程序。調試程序在主機上運行並且位於 Visual Studio 用戶界面中。當測試和調試驅動程序時,驅動程序在目標計算機上運行。
主計算機和目標計算機必須能夠彼此按名稱執行 ping 操作。如果兩台計算機已加入到同一工作組或同一網路域,則此操作可能更容易。如果你的計算機位於工作組中,我們建議你使用路由器(而非集線器或交換機)連接計算機。不支持對虛擬機進行設置。
准備目標計算機以進行設置
在目標計算機上,安裝將用於運行和測試驅動程序的操作系統。
如果在 x86 或 x64 目標計算機上啟用「安全啟動」,則禁用該功能。
如果目標計算機使用 ARM 處理器,則安裝 Windows 調試策略。則無需禁用「安全啟動」。
在目標計算機上,運行與目標計算機平台匹配的 WDK 測試目標安裝程序 MSI。可以在 Remote 下的 Windows 驅動程序工具包 (WDK) 安裝目錄中找到該 MSI。
例如:C:Program Files (x86)Windows Kits10Remotex64WDK Test Target Setup x64-x64_en-us.msi
如果目標計算機運行的是 N 或 KN 版本的 Windows,則安裝適用於 N 和 KN 版本的 Windows 的媒體功能包。
如果目標計算機運行的是 Windows Server,請查找剛才通過 WDK 測試目標設置 MSI 創建的 DriverTest 文件夾。(例如:c:DriverTest)。右鍵單擊「DriverTest」文件夾,然後選擇「屬性」。在「安全」選項卡上,向「經過身份驗證的用戶」組授予「修改」許可權。
驗證主機和目標計算機可以彼此執行 ping 操作。打開命令提示符窗口,並輸入 ping 192.186.X.X(ip_adress)。
如果主計算機和目標計算機已加入到一個工作組,但它們位於不同的子網上,你可能必須調整某些防火牆設置,以便主計算機和目標計算機可以通信。請按照下列步驟進行操作:
兩種方法(選一即可):
方法一:
在目標計算機上的「控制面板」中,轉到「網路和 Internet」>「網路共享中心」。注意你的活動網路。它可能是「公共網路」、「私有網路」或「域」。
在目標計算機上的「控制面板」中,轉到「系統和安全」>「Windows 防火牆」>「高級設置」>「入站規則」。
在入站規則列表中,查找用於活動網路的所有網路發現規則。(例如,查找所有「配置文件」為「專用」的網路發現規則。)雙擊每個規則,然後打開「作用域」選項卡。在「遠程 IP 地址」下,選擇「任何 IP 地址」。
在入站規則列表中,查找用於活動網路的所有「文件和列印機共享」規則。對於每個規則,雙擊該規則,將打開「作用域」選項卡。在「遠程 IP 地址」下,選擇「任何 IP 地址」。
方法二:
「控制面板」->「系統和安全」->「Windows防火牆」->"啟動或關閉Windows防火牆"->"關閉Windows防火牆"
設置目標計算機
現在,你可以隨時在 Visual Studio 中通過主計算機設置目標計算機。
在主計算機上,在 Visual Studio 的「Driver」菜單中,選擇「Test」>「Configure Deivce」。
單擊「Add New Device」。
在「Network host name」中輸入目標計算機的名稱。選擇「Provision Device and choose debugger setting」。
選擇某種調試連接類型,並輸入所需的參數。
設置過程將需要幾分鍾時間,並且可能會自動重新啟動目標計算機一到兩次。設置完成後,單擊「完成」。
WDK 10 與 Microsoft Visual Studio 完全集成。你可以使用 Visual Studio 開發環境生成驅動程序,也可以使用 Microsoft Build Engine (MSBuild) 直接從命令行生成驅動程序。
從 Windows 驅動程序工具包 (WDK) 8 開始,MSBuild 就已經取代了在早期版本的 WDK 中使用的 Windows 構建實用工具 (Build.exe)。現在,WDK 可使用與你用於構建 Visual Studio 項目相同的編譯器和構建工具。使用早期版本的 WDK 構建的驅動程序項目必須進行轉換才能在 Visual Studio 環境中工作。你可以從命令行運行轉換實用工具,也可以通過從現有的源創建新的 Visual Studio 項目來轉換現有驅動程序。
構建驅動程序主要有以下兩種方式(選一即可)
方法一:使用 Visual Studio 構建驅動程序
構建驅動程序的方法與在 Visual Studio 中構建任何項目或解決方案的方法相同。當使用 Windows 驅動程序模板創建新的驅動程序項目時,該模板定義默認(活動)的項目配置以及默認(活動)的解決方案生成配置。
注意你可以將使用 WDK 8 或 Windows 驅動程序工具包 (WDK) 8.1 所創建的項目和解決方案轉換為適用於 Windows 驅動程序工具包 (WDK) 10 和 Visual Studio 2015。打開項目或解決方案前,請先運行 ProjectUpgradeTool。ProjectUpgradeTool 將轉換項目和解決方案,以便可以使用 WDK 10 構建它們。
1、確保安裝在你的計算機上的 SDK 和 WDK 的版本相同。
2、在 Visual Studio 中打開驅動程序項目或解決方案。
3、在「解決方案資源管理器」中右鍵單擊解決方案,並選擇「配置管理器」。
4、從「配置管理器」中,選擇與你感興趣的構建類型相對應的活動解決方案配置(例如,「調試」或「發布」)以及活動解決方案平台(例如,「Win32」)。
5、選擇要構建驅動程序的目標操作系統。導航到「驅動程序」>「常規」中的項目屬性,然後設置 TargetVersion 屬性。
6、為驅動程序或驅動程序包配置項目屬性。 可以為部署、驅動程序簽署或其他任務設置屬性。
7、從「構建」菜單中,單擊「構建解決方案」 (Ctrl+Shift+B)。
方法二:
使用命令行構建驅動程序 (MSBuild)
你可以使用「Visual Studio 命令提示符」窗口和 Microsoft Build Engine (MSBuild) 來從命令行構建驅動程序。
使用「Visual Studio 命令提示符」窗口構建驅動程序
打開「適用於 VS2015 的開發人員命令提示符」窗口。
在此窗口中,你可以藉助 MSBuild.exe,通過指定項目 (.VcxProj) 或解決方案 (.Sln) 文件來構建任何 Visual Studio 項目。
導航到項目目錄並為你的目標輸入 MSbuild 命令。
例如,若要使用默認的平台和配置生成名為 MyDriver.vcxproj 的全新的 Visual Studio 驅動程序項目,請導航到項目目錄並輸入以下 MSBuild 命令:
msbuild /t:clean /t:build .MyDriver.vcxproj
語法 - 若要指定特定的配置和平台,請使用以下命令語法:
msbuild /t:clean /t:build ProjectFile /p:Configuration=<Debug|Release> /p:Platform=architecture /p:TargetPlatformVersion=a.b.c.d /p:TargetVersion=OS
例如,以下命令將為「調試」配置、「Win32」平台和 Windows 10 生成一個通用 Windows 驅動程序。
msbuild /t:clean /t:build .MyDriver.vcxproj /p:Configuration="Debug" /p:Platform=Win32 /p:TargetVersion=」Windows10」 /p:TargetPlatformVersion=」10.0.10010.0」
「TargetPlatformVersion」設置為可選項,並且允許你指定用於生成的工具包版本。默認值為使用最新的工具包。
使用 Visual Studio 中的選項增加構建輸出詳細信息的步驟
1、單擊 Tools > Options。
2、單擊「項目和解決方案」文件夾並單擊「生成並運行」。
3、更改「MSBuild 項目構建輸出詳細信息」和「MSBuild 項目構建日誌文件詳細信息」。 默認情況下,這些都設置為「最少」。
⑷ 如何開發arm開發板winceOS下運行的程序
開發WinCE應用程序較多使用EVC,其界面與VC6類似
也可以使用VS2005開發
你可能還需要安裝一個WinCE的標准SDK
關於調試:
WinCE設備可以通過Activesync與PC相連,然後在開發平台如VS2005下選擇一些連接設備,選擇Activesync連接方式,這時候,你再選運行調試就會自動下載到已經連接到Activesync的WinCE設備,可以單步調試,到這里就和調試PC上的應用程序沒什麼區別了
⑸ 如何在 Windows CE 5.0 中開發和測試設備驅動程序
本文介紹如何開發和測試 Windows CE 5.0 設備驅動程序。本文循序漸進地介紹如何創建流驅動程序,如何創建自定義 Windows CE Test Kit
(CETK) 測試,以及如何編寫應用程序來測試驅動程序。這要花費大約 60 分鍾來完成。
本頁內容
第一部分:建立設備驅動程序
第二部分:測試流驅動程序測試代碼
第三部分:檢驗驅動程序
第四部分:使用
Windows CE Test Kit
第五部分:創建自定義
CETK 測試
第六部分:確定誰擁有流驅動程序
小結
第一部分:建立設備驅動程序
在本練習中,您將使用 Platform Builder 來添加作為設備驅動程序的項目。
在 開始編寫驅動程序之前,您應該了解設備驅動程序的用途。驅動程序將基礎硬體從梁頃操作系統中抽象出來,使之更好地面對應用程序開發人員。應用程序開發人員無需
知道顯示硬體或串列硬體的詳細信息 — 例如,串列設備是用 Universal Asynchronous Receiver/Transmitter (UART)
實現的還是用 field-programmable gate array (FPGA)
實現的。在大多數情況下,應用程序開發人員根本不需要知道硬體是如何實現的。
Microsoft Windows 為開發人員公開了調用硬體的應用程序編程介面
(API),他們不需要知道物理硬體的情況。例如,為了向串列埠寫入數據,應用程序開發人員只需調用 COMx 上的 CreateFile( )(其中 x
表示您要打開的串列埠編號,例如 COM1 代表串列埠 1),再調用 WriteFile( ) 以將一些位元組數據寫入串列埠,然後調用
CloseHandle( ) 以關閉串列埠。不管基礎串列硬體是什麼(也不管您運行的是哪個 Windows 操作系統),API 都會以同樣的順序執行。
相同的情況也適用於其他 API:如果您希望在顯示表面畫一條線,那麼您只需調用 PolyLine( )、MoveToEx( ) 或 LineTo(
)。作為應用程序開發人員,大多數情況下您都不需要知道顯示硬體的情況。此處調用的 API 將返回顯示表面的維數、顏色深度等碼銷等。
好 消息是開發人員可以調用一個一致的、眾所周知的 API 集。這些 API
將他們的應用程序從基礎硬體中抽象出來。這至關重要,因為應用程序開發人員無法知道應用程序是運行在攜帶型計算機上,還是運行在 Tablet PC
上,抑或運行在桌面計算機上。無論電腦以 1024×768 還是 1600×1200
的解析度運行,應用程序開發人員都可以在運行時查詢屏幕解析度和顏色深度,因此不需要構建只在特定硬體上運行的應用程序。
驅動程序只是一 個動態鏈接庫(DLL)。將 DLL 載入到父進程地址空間;然後父進程就可以調用從該 DLL 公開的任何介面。通常,父進程通過調用
LoadLibrary( ) 或 LoadDriver( ) 來載入驅動程序。LoadDriver 不僅將 DLL 載入到父進程地址空間中,而且還要確保 DLL
沒有「paged out」。
調用進程如何知道從您的 DLL 或驅動程序公開了哪些 API 或函數呢?父進程調用 GetProcAddress( ),後者可以獲取函數名稱和所載入的
DLL 的 hInstance。如果函數存在,調用返回該函數指針;如果沒有從 DLL 公開該函數,則返回 NULL。
流驅動程序也公開了一個眾所周知的函數集。對於流驅動程序,您會希望能夠將位元組流寫入設備中,或者從設備中讀取位元組流。因此,在前面使用的串列埠示例中,您可能希望從您的驅動程序公開如下函數集:Open、Close、Read
和
Write。流驅動程序還公開一些其他函數:PowerUp、PowerDown、IOControl、Init
和 DeInit。
您可以將現有的操作系統映像用於模擬器平台(Basic Lab MyPlatform 平台最理想)。然後,您就可以將
DLL/驅動程序項目添加到該平台了。
橡模陸在構建並下載了該平台之後(這表明操作系統啟動並運行良好),您需要創建您的主幹驅動程序。您可以使用 File 菜單上的 Platform
Builder New Project or File 命令創建一個 Microsoft Windows CE DLL。創建用於公開函數或資源的
DLL 與創建用作驅動程序的 DLL 之間沒有什麼不同;唯一的不同之處在於 DLL 公開哪些函數,以及如何在平台上注冊或使用 DLL。
此 外,一種創建國際化應用程序的方法是,首先創建包含一組核心語言字元串、對話框和資源的基本應用程序,然後創建許多外部
DLL,其中每個都包含針對特定區域設置的對話框、字元串和資源。然後,應用程序就可以在運行時載入相應的語言資源。只需要添加 DLL
文件,您就可以將語言添加到應用程序中。在 Developing International
Software 一書中描述了與此相關的主題以及其他一些有趣的主題,可以在 Microsoft Press 網站上獲得此書。
添加一個作為設備驅動程序的項目
用 Platform Builder 打開現有的 MyPlatform 工作區。
在 File 菜單上,單擊 New Project or File。
選擇 WCE Dynamic-Link Library,給它一個合適的名稱(例如,StreamDrv),然後單擊
OK,如下圖所示。
在下圖所顯示的頁面中多少填寫一些您需要的信息,然後單擊 Next。
單擊 A simple Windows CE DLL project,如下圖所示。
單擊 Finish 完成此向導。
此時,DLL 只包含一個空的 DllMain
函數。您可以公開一些應用程序要調用的函數,並公開一些資源(可能使之成為識別語言/文化的應用程序的一部分),或者使之成為一個設備驅動程序。在本文中,您將使用
Windows CE Stream Driver Wizard 創建您的主幹流驅動程序。
在 Windows CE 中,打開流驅動程序就像打開文件一樣,只需根據唯一的三字母前綴(例如,COM)。
為您的驅動程序選擇一個唯一的三字母標識符。在 Location
框中輸入您之前創建的流驅動程序的完整路徑。或者使用「browse」按鈕定位到 Platform Builder 安裝中的 PBWorkspaces
目錄,找到您前面創建的平台,然後找到流驅動程序的名稱(在前面的示例中,此路徑為 PBWorkspaces\TuxPlat\StreamDrv)。
在 Driver Filename 框中輸入驅動程序的名稱。如下圖所示,使用與您前面使用名稱 (StreamDrv)
相同的名稱,以確保改寫在 Platform Builder 中創建的原始文件。
按 Go,將生成流驅動程序源代碼。
返回頁首
第二部分:測試流驅動程序測試代碼
現在您已經編寫了用於 Windows CE 的自定義流驅動程序的基本代碼。此時,驅動程序還沒有與任何硬體連接。
在 編寫完驅動程序之後,您需要為開發人員提供一種測試它的方法。Windows CE 附帶了 Windows CE Test Kit
(CETK),它提供了用於各種驅動程序類型的驅動程序測試,包含網路連接、藍牙、串列埠以及顯示。您編寫的驅動程序是一種自定義的流驅動程序,它沒有
公開與現有的驅動程序測試一樣的功能,因此您需要為該驅動程序編寫一個自定義測試。雖然您完全可以編寫一個應用程序來演練驅動程序,但提供一個 CETK
模塊或許更好些,在開發期間可以使用此模塊,並且還可以將此模塊提供給客戶,供他們在裝配硬體上測試驅動程序。
在這一部分的練習中,您將執行以下過程:
創建主幹 Tux 模塊
將自定義驅動程序的測試代碼添加到 Tux DLL 中
重新構建操作系統
設置斷點
創建主幹 Tux 模塊
在 Platform Builder 中,在 File 菜單上單擊 New Project or File。
選擇 WCE TUX Dynamic-Link Library,鍵入 TuxTest 作為項目名稱,輸入一個位置,單擊
Workspace Project,然後單擊 OK,如下圖所示。(實際上,您可以選擇任意一個項目類型;對於本文,單擊
Workspace Project)。
在下圖顯示的頁面中多少填寫一些您需要的信息,然後單擊 Next。
閱讀下圖所顯示的屏幕上的信息,然後單擊 Next。
在最後一頁上,您可以選擇選取 Release Type 下的
CETK,如下圖所示。該選項關閉了某些二進制的優化,以提高調試工作效率。單擊 Finish。
單擊 View | File View,然後展開 Projects 樹顯示 tux
源代碼,如下圖所示。
前圖中需要注意的重要文件是:
ft.h — 該文件包含 tux DLL 所用的函數表。
test.cpp — 該文件包含從該函數表中調用的測試過程。
TuxStreamTest.cpp — 該文件包含 DLLMain 和 ShellProc,後者是從 Tux.exe
調用的。
將自定義驅動程序測試代碼添加到 Tux DLL 中
打開源代碼 Test.cpp。
使用 CodeClip 來獲得 Tux_Custom_Test | TuxCode 源代碼。
用 CodeClip 中的代碼替代函數 TestProc 中的內容。
您會注意到,Test.cpp 中的代碼載入了一個名為 Demo.dll 的驅動程序。對於本文,您創建了一個名為 StreamDrv
的驅動程序。您需要修改源代碼以載入您的 StreamDrv.dll 驅動程序。
找到 Test.cpp 中調用 LoadLibrary 的源代碼的位置,然後將要從 Demo.dll
中載入的驅動程序的名稱修改為 StreamDrv.dll。
在 Platform Builder 文件視圖中,右鍵單擊 TuxTest 項目,然後單擊 Build Current
Project。
您還需要從該目錄中添加 Windows CE Test Kit 組件。
在 Device Drivers 下,找到該目錄中 Windows CE Test Kit 組件的位置,然後選擇
Add the Windows CE Test Kit,將該組件添加到您的平台中。
注 將該組件添加到您的平台上並沒有將任何文件添加到最後的操作系統映像中;它將 Clientside 文件添加到 build release
文件夾中。您可以從 Platform Builder 下載 Clientside 應用程序,並在目標設備上運行該應用程序。
現在您需要重新構建您的操作系統,以便合並這些變更。
重新構建操作系統
在 Platform Builder 中,選擇 Build OS | Sysgen。
構建過程將會花大約 5 分鍾完成。
當載入驅動程序時,在流驅動程序的入口點設置一個斷點來觀察非常有用。
設置斷點
單擊 File View,打開 StreamDrv 項目,然後打開 Source files。
找到並打開 StreamDrv.cpp。
找到 DllMain,然後找到並單擊 switch 語句。
按 F9 設置斷點。
單擊 Target | Attach,將操作系統下載到模擬環境中。
您會看到以下調試輸出,斷點將啟用。注意,在載入操作系統的用戶介面 (UI) 之前,這早就發生了。
4294780036 PID:23f767b6 TID:23f767e6 0x83fa6800: >>> Loading mole
streamdrv.dll at address 0x01ED0000-0x01ED5000
Loaded symbols for
'C:\WINCE500\PBWORKSPACES\DRVDEMO\RELDIR\EMULATOR_X86_DEBUG\STREAMDRV.DLL'
單擊 switch 語句,然後按 F9 禁用斷點。
按 F5,允許操作系統繼續載入。
現在,您已經構建了一個 Windows CE 5.0
操作系統,它包含一個自定義流驅動程序,並且您已經在操作系統引導順序的過程中看到了驅動程序載入。
返回頁首
第三部分:檢驗驅動程序
在這一部分的練習中,您將執行以下過程:
使用命令行工具查看從驅動程序公開的函數
使用遠程系統信息 (Remote System Information) 工具檢驗驅動程序
確定驅動程序已載入
檢驗您所創建的設備驅動程序的第一種方法是查看從該驅動程序公開的函數。Windows CE 附帶了一個名為 Dumpbin
的命令行工具,可以用於檢驗導入應用程序或模塊的內容,或者從 DLL(或驅動程序)導出的內容。
使用命令行工具查看從驅動程序公開的函數
在 Platform Builder 中,單擊 Build OS | Open Release
Directory。該操作為當前的工作區打開 build release 文件夾中的 Command Prompt 窗口。
鍵入 mpbin exports StreamDrv.dll
下圖顯示輸出。您可以看到,所有需要的流驅動程序函數都是從驅動程序公開的;函數是從 DLL 公開的(通過該項目的 .def 文件)。
鍵入 Exit 關閉 Command Prompt 窗口
StreamDrv.def 文件的內容如下所示。
LIBRARY DemoDriver
EXPORTS
DEM_Init
DEM_Deinit
DEM_Open
DEM_Close
DEM_IOControl
DEM_PowerUp
DEM_PowerDown
DEM_Read
DEM_Write
DEM_Seek
CustomFunction
CustomFunctionEx
您可以檢驗驅動程序的第二種方法是通過遠程系統信息工具。
通過遠程系統信息工具檢驗驅動程序
在 Platform Builder 中,單擊 Tools | Remote System
Information。
選擇 Windows CE Default Platform | Default Device,然後單擊
OK,如下圖所示。
此過程將遠程系統信息應用程序連接到 Platform Builder 正在使用的當前活動平台上。下圖顯示了結果。
您也可以使用載入模塊列表來確定已載入了您的驅動程序。
確定驅動程序已載入
在 Platform Builder 中,使用 Target Control 窗口 (gi mod) 或 View |
Debug Windows | Moles and Symbols。
下圖顯示了此過程的結果。
返回頁首
第四部分:使用 Windows CE Test Kit
Windows CE Test Kit 包含設備端組件和桌面組件。設備端組件叫做 Clientside.exe,通過從目錄中添加 CETK
組件,您可以將設備端組件添加到您的工作區中。注意,將 Clientside.exe
應用程序添加到工作區中並沒有將任何文件添加到最終操作系統映像中,但它卻將應用程序復制到 build release 文件夾中。
在桌面計算機上運行 CETK 之前,您需要啟動設備上的 Clientside.exe 應用程序。沒有鏈接工具(比如遠程工具)的原因在於,CETK
也將運行在裝配(零售)設備(比如 Pocket PC)上。
在這一部分的練習中,您將執行以下過程:
檢驗 Windows CE Test Kit 用戶介面
運行一個標准測試
檢驗 Windows CE Test Kit 用戶介面
在 Platform Builder 中,在 Tools 菜單上單擊 Windows CE Test
Kit。
這 一步啟動 Windows CE Test Kit 應用程序,如下圖所示。注意,這不是一個標準的遠程工具。Windows CE
附帶的大多數遠程工具都使用 Kernel Independent Transport Layer
(KITL),一種將工具從基礎通信硬體中抽象出來的傳輸,以便這些工具可以運行在乙太網、串列埠、1394、USB 或者其他傳輸上。
雖然對於 Windows CE 5.0,Windows CE Test Kit 通常通過套接字連接,但是也已經更新了工具來支持 KITL。
在 Windows CE Test Kit 中,單擊 Connection | Start
Client。
這一步顯示 Device Connection 對話框,其中您可以選擇是通過套接字連接還是通過 KITL 連接。
確保清除了 Use Windows Sockets for the client/server communication
復選框,如下圖所示。
單擊 Connect。
在遠程工具 (KITL) 的標准用戶界面中,選擇 Windows CE Default Platform | Default
Device,然後單擊 OK,如下圖所示。
該過程在目標設備上啟動 Clientside.exe,並連接到目標設備上。在完成連接之後,CETK 枚舉目標平台上支持的設備,並禁用 CETK
中不支持的設備。
在 CETK 連接到目標設備並枚舉設備之後,UI 如下圖所示。注意,禁用了某些硬體類別,比如 Bluetooth、IR
Port 和 Modem。
將自定義測試添加到 CETK 中之前,您可以運行一個標准測試,以查看測試工作如何進行。
運行標准測試
在 CETK 中,展開 Windows CE (x86)。
找到並展開 Serial Port。
右鍵單擊 Serial Port Driver Test,然後單擊 Quick Start。
這一步只運行了這一個測試,還沒有運行所選的其他測試。UI 指示測試正在進行,如下圖所示。
CETK 提供測試過程和測試輸出的更新。您也可以在 Platform Builder 中檢驗調試輸出,以便查看測試過程,如下例所示。
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
405920 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 ***
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
如果 CETK UI
指示模擬器上的串列埠測試已經失敗(如下圖所示),那麼失敗可能不是由於每個測試的完全失敗而導致的。它可能表明,全部測試套件只有一部分已經失敗,並且這部分實際上也是期望的行為。
右鍵單擊 Serial Port Driver Test [Failed],然後單擊 View
Results。
出現如下圖所示的窗口。
查看上圖所示的結果,您可以看到,已經運行了 10 個單獨的測試。除了 Set and verify receive timeout
以外,所有這些測試都已經通過。
要獲得更多信息,您可以單擊個別測試。
返回頁首
第五部分:創建自定義 CETK 測試
通過使用 Platform Builder User-Defined Test Wizard,您可以創建一個自定義 CETK
測試。該測試將驗證自定義流驅動程序(您也已經將其添加到平台中)的導出函數。
在這一部分的練習中,您將執行以下過程:
列出 CETK 中的自定義流驅動程序測試
運行自定義流驅動程序測試
列出 CETK 中的自定義流驅動程序測試
在 CETK 中,單擊 Tests | User Defined。
這一步啟動 User-Defined Test Wizard。該向導的第一頁只是一些信息。
單擊 Next,如下圖所示。
單擊 Add a New Test,然後單擊 Next,如下圖所示。
輸入下列信息,然後單擊 Next:
· 在 Name of Test 框中鍵入 Custom Stream Driver Test
· 在 Tux Mole (DLL) 框中,定位到
C:\Wince500\PBWorkspaces\MyPlatform\RelDir\Emulator_x86_Debug 目錄,然後選擇
test.dll 或 TuxTest.dll(這依賴於您在 Platform Builder 中所使用的 Tux
測試的名稱)。
· 在 Command Line 框中,保留當前測試的默認設置。
· 在 Processor 框中鍵入 x86
下圖顯示信息如何出現在當前的向導頁中。
單擊 Copy the files to the directory for user-defined tests,然後單擊
Next,如下圖所示。
您需要將自定義驅動程序測試(您的 DLL)復制到用戶定義的測試文件夾中。如果您要刪除現有的工作區,那麼自定義驅動程序測試仍然保持完好。
單擊 Next,如下圖所示。
單擊 Finish,如下圖所示。
CETK 應用程序不會用新的測試進行自動刷新。您需要重新同步桌面應用程序,以查看新添加的測試。
右鍵單擊 Windows CE (x86),然後單擊 Redetect Peripherals。
該過程添加了一個名為 User Tests 的新驅動程序類別。您只添加了一個測試,因此,當您展開這個項目時,您只能看到 Custom
Stream Driver Test。
注 已經將自定義流驅動程序測試的 DLL 復制到下列位置: C:\Program Files\Windows CE Platform
Builder\5.00\CEPB\wcetk\user\x86.
運行自定義流驅動程序測試
在可用的測試列表中展開 User Tests。
右鍵單擊 Custom Stream Driver Test,然後單擊 Quick Start。