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