WinCE驅動的一些基礎概念

2021-05-24 10:41:13 字數 2317 閱讀 7081

目前,windows ce提供了四種裝置模型:

專用於windows ce的兩種模型是:

1.本機裝置驅動程式;

2.流介面驅動程式;

兩種外部模型:

1.通用序列匯流排(usb)驅動程式;

2.網路驅動器介面標準(ndis)驅動程式。

不同的驅動模型只能通過它們所支援的軟體介面來區別,而不是它們所適用的裝置。驅動程式模型決定了指定驅動程式輸出的軟體介面。

本機裝置驅動程式:

本地裝置驅動程式又被稱為內建的驅動程式(built-in driver),它們被靜態地鏈結到gwes,也就是說這些驅動程式不是作為乙個單獨的dll存在的。

本機裝置驅動程式適合於整合到基於windows ce的平台的裝置,裝置驅動程式是專為底層內建硬體而設計的,如鍵盤、螢幕和pc卡插槽。因為本機裝置去頂程式通常與基於windows ce的平台有著緊密的連線而且每種本機裝置驅動程式獨有精確的和特殊的目的,微軟提供了定製介面的方式來支援內部裝置驅動程式。因為這些介面是專門用於windows ce的,所以這類裝置的驅動程式叫做本機裝置驅動程式。微軟為每一類內部裝置驅動程式都定義設定介面,儘管每一類內部裝置驅動程式各有乙個設定介面,然而內部裝置驅動程式卻為一種特定型別的所有裝置提供了乙個功能性標準集。這就使得windows ce作業系統可以處理類似的一種特定裝置種類的所有情況,儘管有時可能存在硬體的差別。對於手持pc來說,本機裝置驅動程式樣本對所有建立在平台上的裝置型別都是用,包括:顯示器,電池,鍵盤,觸控螢幕,提示發光二極體,pc卡插槽。

流介面驅動程式:

流介面驅動程式又被稱為可安裝的驅動程式,是由裝置管理器動態(device.exe)載入的使用者模式的dll。

具有定製介面和流介面的驅動程式是一般型別的裝置驅動程式。流介面驅動程式是在使用者一級的動態鏈結庫,用來實現一組固定的函式稱為流介面函式,這些流介面函式使得應用程式可以通過檔案系統中的特殊檔案而與裝置進行介面。流介面驅動程式支援幾乎任何型別的可以鏈結到基於windows ce的平台外部裝置。流介面驅動程式是動態鏈結庫,由乙個叫做裝置管理程式的特殊應用程式載入、管理和解除安裝。所有流介面驅動程式是用同乙個介面並呼叫同乙個函式集----流介面函式。流介面驅動程式是為連線到基於windows ce的平台的外圍裝置而設計的。包括數據機、印表機、數字相機、pc卡。所有這些外圍裝置都必須通過外部聯結器如序列口或pc卡插槽等連線。因此,外圍裝置的驅動程式就像桌面計算機的印表機驅動程式一樣:都當做使用者模式的程式來執行,這些程式是用內建硬體的服務來控制它們的裝置。如pc卡的裝置驅動程式是用pc開服務庫;pc卡服務庫控制pc卡插槽硬體。如果外圍裝置被對映成系統記憶體空間的一部分,流介面驅動程式也可以直接與外圍裝置進行互動,例如windows ce平台上的喇叭和麥克風就是這樣。

通用序列匯流排(usb)驅動程式:通用序列匯流排驅動程式(usbd)將通用序列匯流排相容(usb-compliant)裝置與windows ce連線起來。通用序列匯流排驅動程式不要求輸出任何特定型別的應用函式集。根據所用的裝置,通用序列匯流排驅動程式可以輸出流介面函式,定製函式集或者使用存在的windows ce應用程式介面來展現裝置的功能性。

網路驅動器介面標準(ndis)驅動程式:網路驅動器介面標準(ndis)驅動程式採用了nt作業系統的驅動程式。ndis驅動程式是使網路協議生效的驅動程式模型,如tcp/ip和紅外線資料通訊協議,與網絡卡(nics)驅動程式的具體實現細節無關。

windows ce裝置驅動程式按驅動程式的結構分為兩種型別:

1.單片驅動程式(monolithic device driver):基於單個碼片(single piece of code),該碼片直接把硬體裝置的功能性傳遞給作業系統。

2.分層驅動程式(layered device driver):由兩個設定好的層組成,上層是模型裝置驅動程式(mdd,model device driver);下層是依賴平台的驅動程式(pdd,platform dependence driver)。大多數的樣本裝置驅動程式都配置成分層的。

微軟為鏈驅動程式提供了模型裝置驅動程式(mdd)。mdd是通用的,既是源**也是庫。mdd執行下列任務:

鏈結pdd層並第一它希望呼叫的函式

把不同的函式集提供給作業系統

處理想中斷處理這樣的複雜任務

與gwes模組和核心通訊

驅動程式不能呼叫win32 api的唯一情況是驅動程式正在處理裝置正在關閉的提示。這種情況下,裝置驅動程式不能執行任何能引起其他事件的操作。

windows ce不支援巢狀中斷,乙個中斷的處理結束後方可開始另乙個中斷。

windows ce把中斷處理分為兩部分:核心碼部分的中斷服務例程(isr)和使用者碼部分的中斷服務執行緒(ist)。中斷服務例程是不可以巢狀的那部分,isr程式常駐oem適配層並能直接訪問硬體登錄檔,它唯一的任務是確定要把哪個中斷標識如sysintr_serial返回給核心中斷處理器。

一些基礎概念的總結。。。。

寫程式如寫作文?先學語法,學三種流程結構。就相當於寫作文之前學字,句子。但是只會字和句子寫不了作文。想寫東西,有想法。寫程式也是要先要有想法,有了想法才能寫下去。分析為王 物件導向問題分析 分析步驟 找物件 找物件的變數和方法 狀態和行為 通過分析物件中相同的變數和方法,抽象出類 找類和類之間的關係...

PCB的一些基礎概念

1.什麼是pcb?pcb printed circuit board 中文名稱為印製電路板,又稱印刷線路板,是重要的電子部件,是電子元器件的支撐體,是電子元器件電氣連線的載體。由於它是採用電子印刷術製作的,故被稱為 印刷 電路板。2.元器件的分類 插裝 組裝到印製板上時需要在印製板上打通孔,引腳在電...

C 的一些基礎概念

cpp中有預編譯指令 include其中iostream提供乙個命名空間的東西,標準命名空間是std c 中輸入輸出不能直接寫出以下形式 cin a cout a endl 別忘了要事先宣告命名空間中的變數!方式一 std cin a std cout a std endl using std co...