WINDOWS CE 驅動簡介

來源:互聯網
上載者:User

第一章 WINDOWS CE 驅動簡介

1.1什麼是驅動

裝置驅動是從作業系統中提取物理或者虛擬設備的軟體。

裝置驅動程式是作業系統與硬體互動的途徑,是串連硬體與

作業系統的橋樑。

分類:

(1)       按是否分層進行分類:單層驅動、分層驅動、混合驅動;

(2)       按載入的時間進行分類:內建驅動、流驅動;

(3)       按載入到的位置進行分類:使用者態驅動和核心態驅動。

驅動模型名詞解釋:

(1)       DDI(Device Driver Interface)函數:是作業系統與驅動程式通訊的介面協議;

(2)       MDD(Model Device Driver)模型裝置驅動;

(3)       PDD(Platform Dependence Driver):平台相關驅動;

(4)       DDSI(Device Driver Service Provider Interface)函數:是MDD與PDD之間通訊的介面協議。

分層驅動:(MDD/PDD)

MDD對於不同的平台來講它的模型驅動程式是通用的,既是源碼也是庫,它串連PDD層並定義它希望調用的函數,把預先定義好的函數提供給作業系統,處理比如中斷處理這樣的複雜任務。一般情況下MDD不需要修改

PDD與MDD都有硬體介面,這就要求它們必須適合目標平台的需要,一個PDD由針對具體硬體的函數組成而這些函數與一個MDD相對應,但這種對應不是直接的一一對應。

單層驅動:

單層驅動就是把所有的驅動程式都寫在了一起,是一種比較老的驅動編程方法,對程式人員的要求很高。

內建驅動;

內建驅動不是用驅動管理器來管理的,它也沒有必要匯出和普通驅動一致的API介面。內建驅動程式通常僅僅被GWES(Graphical Windows and Event System)進程使用,由GWES.EXE載入它,此類驅動一般都是與圖形介面相關的I/O裝置驅動。

流驅動:

流驅動是流介面驅動程式的簡稱,不管是物理裝置還是虛擬設備,只要它們的驅動程式匯出流介面函數給系統或應用程式使用,這樣的驅動就可以叫做流驅動。

Windows CE 的流驅動程式被當作一個特定的檔案系統裝置,它提供的流介面函數跟通常的檔案系統的API函數緊密聯絡,如OpenFile()、ReadFile()等,在使用這些API函數的時候,要把指定的檔案名稱改成相應的裝置名稱就可以。

流驅動是通過裝置管理員(Device Manager)來載入或管理的

使用者模式和核心模式驅動

在WIN CE架構中,驅動既可以在使用者模式下運行又可以在核心模式下運行。核心模式驅動運行在核心上下文中,使用者模式驅動運行在一個或多個進程上。裝置管理員(devmgr.dll)管理著使用者模式和核心模式驅動。

核心模式驅動:

裝置管理員把所有驅動預設當作核心模式驅動載入到核心空間,除非在註冊表中設定了DEVFLAGS_LOAD_AS_USERPROC旗標。核心模式驅動能夠調用核心API函數,直接使用核心的coredll調用k.coredll.dll因此執行效率很高,因為它可以直接使用使用者儲存空間。核心模式驅動對讀寫記憶體不做任何限制。

使用者模式驅動:

當在註冊表中設定DEVFLAGS_LOAD_AS_USERMODE旗標時,載入的驅動才是使用者模式驅動。這時這個驅動將引起使用者模式驅動主進程調用udevice.exe,它將隔離其他的驅動,就是說這個驅動出現問題也不會影響到別的驅動。

驅動開發的步驟:

開發一個完整的Windows CE驅動通常需要下面六個步驟。

(1)研究所需開發驅動的硬體的工作原理。裝置驅動程式的代碼是直接與硬體進行互動,因此,開發人員必須對所要開發驅動程式的硬體的工作原理、功能特性以及工作方式等要有充分地認識。這通常需要開發人員耐心地閱讀資料手冊,這一步比較簡單,只需要看懂資料手冊就可以了。

(2) 研究Windows CE驅動的工作機制。

主要弄清一下幾點.

1) 訪問外設的方式。

2)處理中斷的方式。

3)處理DMA的方法。

4)記憶體存取方法。

5)同步與非同步作業。

(3)選用合適的驅動模型。根據實際的項目要求選用適當的驅動模型。

(4)編寫代碼。在微軟提供的驅動模板代碼的基礎上編寫自己的驅動程式。

(5)調試。調試也很關鍵,如果這一步跳過,對驅動的效能沒有保證。這一步最壞的情況是可能要從第一步開始重新設計驅動程式。

以上步驟都通過後一個完整的驅動程式開發就結束了。

WINDOWS CE  共用的驅動代碼

路徑
描述
WINCE600\Platform\%_TGTPLAT%
包含硬體平台相關代碼。這個目錄主要包含OAL,設定檔以及BSP驅動。可以在以下路徑修改依賴硬體平台的相關驅動WINCE600\Platform\%_TGTPLAT%drivers
WINCE600\ Platform \Common\src\soc
SOC驅動程式套件含依賴特定處理器的驅動程式。Soc驅動包含了系統時鐘、計時器、調試網卡等的微處理器相關的OAL驅動。微處理器相同時,可以使用相同的SOC驅動庫
WINCE600\public\common\oak\drivers
通用驅動程式包含平台無關的驅動代碼,可以連結與平台相關的代碼來建立一個硬體驅動。通用驅動程式不指定硬體平台和處理器類型。任何SDB(標準開發板)板卡都可以使用這些驅動

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/guly699/archive/2009/10/06/4636005.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.