WindowCE驅(qū)動(dòng)程序.ppt
《WindowCE驅(qū)動(dòng)程序.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《WindowCE驅(qū)動(dòng)程序.ppt(22頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
WindowsCE驅(qū)動(dòng)程序 WindowsCE驅(qū)動(dòng)程序 WindowsCE驅(qū)動(dòng)程序模型WindowsCE驅(qū)動(dòng)程序的宿主程序WindowsCE驅(qū)動(dòng)程序的類型WindowsCE驅(qū)動(dòng)程序的分類示例驅(qū)動(dòng)程序的代碼 WindowsCE驅(qū)動(dòng)程序模型 桌面Windows驅(qū)動(dòng)程序模型操作系統(tǒng)在啟動(dòng)后對(duì)硬件進(jìn)行延遲加載 但依然把驅(qū)動(dòng)程序加載到操作系統(tǒng)的內(nèi)核空間中 驅(qū)動(dòng)程序工作在系統(tǒng)的地址空間內(nèi) 實(shí)現(xiàn)了驅(qū)動(dòng)的動(dòng)態(tài)加載 桌面Windows驅(qū)動(dòng)程序最早采用VxD 已廢棄 從Windows2000開(kāi)始采用WDM WindowsDriverModel 模型 驅(qū)動(dòng)程序調(diào)用DDK Vista以及以后的版本采用WDF WindowsDriverFounation 是對(duì)WDM的建模與封裝 但隱藏了更多的細(xì)節(jié) 但降低了開(kāi)發(fā)難度 WindowsCE驅(qū)動(dòng)程序模型 桌面Windows驅(qū)動(dòng)程序模型操作系統(tǒng)在啟動(dòng)后對(duì)硬件進(jìn)行延遲加載 但依然把驅(qū)動(dòng)程序加載到操作系統(tǒng)的內(nèi)核空間中 驅(qū)動(dòng)程序工作在系統(tǒng)的地址空間內(nèi) 實(shí)現(xiàn)了驅(qū)動(dòng)的動(dòng)態(tài)加載 桌面Windows驅(qū)動(dòng)程序最早采用VxD 已廢棄 從Windows2000開(kāi)始采用WDM WindowsDriverModel 模型 驅(qū)動(dòng)程序調(diào)用DDK Vista以及以后的版本采用WDF WindowsDriverFounation 是對(duì)WDM的建模與封裝 但隱藏了更多的細(xì)節(jié) 但降低了開(kāi)發(fā)難度 WindowsCE驅(qū)動(dòng)程序模型 什么是設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序是與硬件設(shè)備進(jìn)行信息交互的系統(tǒng)程序 應(yīng)用程序通過(guò)操作系統(tǒng)提供的驅(qū)動(dòng)程序與硬件設(shè)備交互 但應(yīng)用程序與硬件設(shè)備無(wú)關(guān) 對(duì)于每一款硬件設(shè)備 都有其對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)程序 設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)與硬件交互手段 是連接硬件與操作系統(tǒng)之間的橋梁 驅(qū)動(dòng)程序與硬件的標(biāo)準(zhǔn)化接口由操作系統(tǒng)定義 應(yīng)用程序?qū)⒃O(shè)備當(dāng)作文件進(jìn)行訪問(wèn) 通過(guò)系統(tǒng)調(diào)用與硬件交互 WindowsCE驅(qū)動(dòng)程序模型 何時(shí)編寫(xiě)設(shè)備驅(qū)動(dòng)程序 操作系統(tǒng)沒(méi)有內(nèi)置支持的硬件 擴(kuò)展已有的驅(qū)動(dòng)能力 提供軟件層面的服務(wù) 編寫(xiě)驅(qū)動(dòng)程序的要素要了解驅(qū)動(dòng)程序針對(duì)的硬件工作特性 了解目標(biāo)操作系統(tǒng)下驅(qū)動(dòng)的工作機(jī)制 了解驅(qū)動(dòng)程序的模型 WindowsCE驅(qū)動(dòng)程序模型 設(shè)備驅(qū)動(dòng)程序控制硬件 通過(guò)端口操作 對(duì)于某些硬件是不需要驅(qū)動(dòng)的CPU內(nèi)存儲(chǔ)器 WinCE驅(qū)動(dòng)分類本地設(shè)備驅(qū)動(dòng)流接口設(shè)備驅(qū)動(dòng)可通過(guò)WinCE提供的內(nèi)建驅(qū)動(dòng)源代碼 如觸摸屏驅(qū)動(dòng) 顯示驅(qū)動(dòng) 鼠標(biāo)及鍵盤(pán)驅(qū)動(dòng)等 來(lái)學(xué)習(xí)與開(kāi)發(fā)驅(qū)動(dòng)程序 WindowsCE驅(qū)動(dòng)程序模型 WindowsCE驅(qū)動(dòng)程序模型在WindowsCE下 所有的驅(qū)動(dòng)程序都以用戶態(tài)下的DLL文件形式存在 編寫(xiě)WindowsCE驅(qū)動(dòng)程序用到的方法及工具與編寫(xiě)其他任何一個(gè)普通的DLL一樣 WindowsCE驅(qū)動(dòng)開(kāi)發(fā)可以使用PlatformBuilder或者VisualStudio2005以上版本開(kāi)發(fā) 對(duì)于WinCE6 0 PlatformBuilder最為一個(gè)插件被集成到VS2005中 VS2005可以進(jìn)行系統(tǒng)定制開(kāi)發(fā)以及應(yīng)用程序開(kāi)發(fā) 與所有的Win32DLL一樣 WindowsCE驅(qū)動(dòng)程序DLL中的代碼被一些進(jìn)程動(dòng)態(tài)加載到地址空間 運(yùn)行在用戶態(tài)下 WindowsCE驅(qū)動(dòng)程序模型 WindowsCE驅(qū)動(dòng)程序作為用戶態(tài)的DLL來(lái)實(shí)現(xiàn)的優(yōu)點(diǎn) 給操作系統(tǒng)和驅(qū)動(dòng)程序帶來(lái)了很大的靈活性 操作系統(tǒng)可在運(yùn)行時(shí)動(dòng)態(tài)地加載所需要的驅(qū)動(dòng)程序 可輕松實(shí)現(xiàn)外設(shè)的即插即用 Plug Play 驅(qū)動(dòng)程序放在用戶態(tài)而不是核心態(tài)來(lái)實(shí)現(xiàn) 也增強(qiáng)了系統(tǒng)的穩(wěn)定性 驅(qū)動(dòng)程序的崩潰不會(huì)影響到操作系統(tǒng)內(nèi)核 驅(qū)動(dòng)程序放在用戶態(tài)下可給驅(qū)動(dòng)開(kāi)發(fā)人員提供便利 WindowsCE驅(qū)動(dòng)程序的宿主 如果要運(yùn)行DLL中的代碼 那么必須先有一個(gè)EXE進(jìn)程 把該DLL加載道自己的地址空間內(nèi) 然后才可執(zhí)行DLL中的代碼 WindowsCE的驅(qū)動(dòng)程序也必須被其他EXE 宿主加載Device exe又稱做設(shè)備管理器 負(fù)責(zé)加載和管理WindowsCE下絕大多數(shù)的設(shè)備驅(qū)動(dòng)程序 GWES exe負(fù)責(zé)加載一些與圖形界面相關(guān)的I O設(shè)備驅(qū)動(dòng) FileSys exe在系統(tǒng)中負(fù)責(zé)管理WindowsCE中的對(duì)象存儲(chǔ)和文件系統(tǒng) 負(fù)責(zé)加載所有的文件系統(tǒng)驅(qū)動(dòng)程序 WindowsCE驅(qū)動(dòng)程序的類型 WindowsCE驅(qū)動(dòng)程序的類型單層驅(qū)動(dòng)程序分層驅(qū)動(dòng)程序 單層驅(qū)動(dòng)程序 單層驅(qū)動(dòng)程序 就是所有的驅(qū)動(dòng)程序 包括中斷處理 I O操作及硬件控制等都放在了一起 DDI接口 DeviceDriverInterface 單層驅(qū)動(dòng)程序提供的接口 是操作系統(tǒng)與驅(qū)動(dòng)程序交互的接口協(xié)議 優(yōu)點(diǎn) 代碼不作分層處理 驅(qū)動(dòng)程序的代碼相對(duì)緊湊 選用單層驅(qū)動(dòng)程序會(huì)提高驅(qū)動(dòng)的性能 對(duì)于一些較簡(jiǎn)單的硬件設(shè)備驅(qū)動(dòng)程序 使用單層驅(qū)動(dòng)程序模型 可更加清晰明了 分層驅(qū)動(dòng)程序 分層驅(qū)動(dòng)程序把驅(qū)動(dòng)程序的代碼分為兩層 模型設(shè)備驅(qū)動(dòng) ModelDeviceDriver MDD 包含某一類型的驅(qū)動(dòng)程序所通用的代碼 MDD層一般以庫(kù)文件形式存在 平臺(tái)相關(guān)驅(qū)動(dòng) PlatDependenceDriver PDD 包含特定的硬件或平臺(tái)專用的代碼 分層驅(qū)動(dòng)程序 MDD和PDD之間還需要一個(gè)接口協(xié)議 這樣 在分層驅(qū)動(dòng)程序中 就有兩類接口函數(shù)在操作系統(tǒng)與MDD之間的DDI DeviceDriverInterface MDD和PDD之間的DDSI DeviceDriverServiceproviderInterface 操作系統(tǒng)通過(guò)DDI函數(shù)訪問(wèn)內(nèi)建驅(qū)動(dòng)的MDD層 MDD層以庫(kù)形式存在 向下調(diào)用的DDSI函數(shù)形式固定 但內(nèi)容為空 需要PDD層實(shí)現(xiàn) PDD層以代碼形式存在 需實(shí)現(xiàn)相應(yīng)的DDSI函數(shù)內(nèi)容 分層驅(qū)動(dòng)程序 MDD具有下列特征 包含給定類型的所有驅(qū)動(dòng)程序所共有的代碼 調(diào)用PDD函數(shù)以訪問(wèn)硬件 鏈接到PDD層 并且定義MDD期望在該層中調(diào)用的設(shè)備驅(qū)動(dòng)程序服務(wù)提供程序接口 DDSI 函數(shù) 向操作系統(tǒng) OS 公開(kāi)設(shè)備驅(qū)動(dòng)程序接口 DDI 函數(shù) OS的其他部分可以調(diào)用這些函數(shù) 處理中斷處理 可供開(kāi)發(fā)人員重用 可以鏈接到多個(gè)PDD 通常不需要進(jìn)行更改 如果進(jìn)行了更改 則在將驅(qū)動(dòng)程序遷移到將來(lái)的版本時(shí)可能會(huì)遇到麻煩 包含任何中斷服務(wù)線程 IST 分層驅(qū)動(dòng)程序 PDD具有下列特征 由硬件平臺(tái)特有的代碼組成 對(duì)于不同的硬件產(chǎn)品或標(biāo)準(zhǔn) 有不同的實(shí)現(xiàn) 只能與某一類MDD協(xié)同工作 實(shí)現(xiàn)MDD所需要的DDSI函數(shù) 分層驅(qū)動(dòng)程序 優(yōu)點(diǎn)驅(qū)動(dòng)程序分層帶來(lái)了一定的靈活性 使驅(qū)動(dòng)程序的編寫(xiě)更為清晰 簡(jiǎn)單 驅(qū)動(dòng)程序的移植也會(huì)變得相對(duì)簡(jiǎn)單 只需對(duì)PDD層的代碼進(jìn)行修改 缺點(diǎn)分層后 MDD層對(duì)PDD層的函數(shù)調(diào)用會(huì)給驅(qū)動(dòng)程序帶來(lái)額外的性能開(kāi)銷(xiāo) WindowsCE驅(qū)動(dòng)程序的分類 WindowsCE整體上將設(shè)備驅(qū)動(dòng)分為三種 內(nèi)置驅(qū)動(dòng)總線驅(qū)動(dòng)流接口驅(qū)動(dòng) 內(nèi)置驅(qū)動(dòng) 硬件所必須的驅(qū)動(dòng)程序 這些驅(qū)動(dòng)程序通常由設(shè)計(jì)OEM廠商進(jìn)行設(shè)計(jì) 如 鍵盤(pán) 觸摸屏 音頻設(shè)備 可能不支持一般的驅(qū)動(dòng)接口 也有可能帶有擴(kuò)展的接口或者完全提供一個(gè)用戶自定義的接口 內(nèi)置驅(qū)動(dòng)通常需要針對(duì)具體的操作系統(tǒng)進(jìn)行小幅改動(dòng) 總線驅(qū)動(dòng) 管理系統(tǒng)總線如PCI總線等 負(fù)責(zé)處理總線上硬件的詢問(wèn) 以及資源的分配 同時(shí)也請(qǐng)求設(shè)備管理器為總線上的硬件安裝適當(dāng)驅(qū)動(dòng)程序 驅(qū)動(dòng)分類 詳細(xì) AudioDriversBatteryDriversBlockDriversBluetoothHCITransportDriverDirect3DDeviceDriverInterfaceDirectDrawDisplayDriversDisplayDriversDVD VideoRendererIEEE1394DriversKeyboardDriversNotificationLEDDriversParallelPortDriversPCCardDriversPrinterDriversSerialPortDriversSmartCardDriversStreamInterfaceDriversTouchScreenDriversUSBDrivers 參見(jiàn)文檔 示例驅(qū)動(dòng)程序的代碼 PlatformBuilder中自帶了大量的驅(qū)動(dòng)程序代碼 可以通過(guò)閱讀這些代碼來(lái)學(xué)習(xí)編寫(xiě)驅(qū)動(dòng)程序 大部分驅(qū)動(dòng)程序的代碼放在目錄 WINCEROOT Public Common OAK Drivers下 這些驅(qū)動(dòng)程序都是與平臺(tái)無(wú)關(guān)的 WINCEROOT Platform src drivers 中 這些驅(qū)動(dòng)都是與平臺(tái)相關(guān)的 從WindowsCE5 0開(kāi)始 微軟引入了Production QualityDeviceDriver的概念 主要是為了提高驅(qū)動(dòng)程序代碼的可靠性和穩(wěn)定性- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- WindowCE 驅(qū)動(dòng)程序
鏈接地址:http://ioszen.com/p-6568910.html