WinCE嵌入式開發(fā)程序入門
HANDLE hPort = CreateFile(COM1); // Open the serial port
CreateFile函數(shù)打開規(guī)定的設(shè)備(串口)并且返回用于以后在該種設(shè)備上的操作(例如讀和寫)的句柄。 各種各樣函數(shù)的(包括ReadFile ,WriteFile ,LockFile 和其他)接受這個句柄為參數(shù),并且允許你(例如)讀寫數(shù)據(jù),檢查設(shè)備狀態(tài),并且將從其它程序的存取被鎖住的設(shè)備或者文件列入清單。 文件輸入輸出操作被處理成與其它設(shè)備類型利用同樣的API 函數(shù),并且在文件之內(nèi)包括隨機的訪問的函數(shù)。 被若干程序或線索同時訪問的設(shè)備和文件可以分區(qū)域地利用LockFile 函數(shù)鎖定。
在你的應(yīng)用程序已完成設(shè)備或者文件之后,它將調(diào)用CloseFile 函數(shù)關(guān)閉設(shè)備,并且進行必要的清除設(shè)備的工作。
同步和異步的設(shè)備的處理
嵌入式系統(tǒng)的經(jīng)常有關(guān)鍵的設(shè)備有時序需要。 對于這個理由,對底層的操作系統(tǒng)的軟件接口必須能夠在軟件層次上管理同時(或者幾乎同時)的系統(tǒng)中不同類型的設(shè)備的事件。 WIN32 API 支持對設(shè)備的同步和異步的訪問,并且用復(fù)雜的設(shè)備接口設(shè)計。
同步的接口是那些在軟件需要從設(shè)備得到動作的要求,然后等候結(jié)果。在同步的設(shè)備接口中,最常用的是前面已經(jīng)提到的ReadFile 以及WriteFile函數(shù)。當在同步I/O中使用的時候,不論你與磁盤上的文件、并口或是串口、一個通道或其它類型的設(shè)備接口時,都是公用的并且是兼容的。
異步的接口是那些設(shè)備要求應(yīng)用程序為之服務(wù)的接口。一個異步的設(shè)備的好的例子是鍵盤。適當和適時的處理異步事件,對于許多嵌入式應(yīng)用程序是至關(guān)緊要的。幸運的是,為Windows CE編寫的設(shè)備驅(qū)動程序能支持同時的多線索訪問驅(qū)動器。這大大地簡化異步輸入設(shè)備的處理。
你所訪問的給定的設(shè)備的方法,取決于那個設(shè)備的特性和你開發(fā)的特定的應(yīng)用程序的要求。如果你在基于你的Windows CE的硬件平臺上創(chuàng)建一個全新的設(shè)備(和設(shè)備驅(qū)動程序),你可以既從你的硬件設(shè)備和驅(qū)動器的層次,又可以從應(yīng)用程序的層次有許多選擇。
定制設(shè)備和WIN32
盡管嵌入式系統(tǒng)可以支持較小數(shù)量的設(shè)備,嵌入式系統(tǒng)能形成唯一的和挑戰(zhàn)型的設(shè)備接口問題。當你開發(fā)一個新的硬件平臺并且它支持輸入輸出設(shè)備,在模你設(shè)計的不同層次上,你將不得不作出決策和折衷方案。例如,除非你只使用通常的off-the-shelf硬件,你必然套寫用戶設(shè)備驅(qū)動程序支持你的新外圍設(shè)備。 你也能需要配置你的Windows CE來包含一些設(shè)備處理必要的組件。同時從應(yīng)用程序的層次,為滿足新的設(shè)備的需要,你將需要寫接口代碼。在有如此多變量的情況下,你如何保持你的設(shè)備的一定程度的一致行呢?答案就在WIN32 API 中。在WIN32 API環(huán)境下,寫你的目標驅(qū)動程序,你有理由自信的認為那些新設(shè)備的接口的應(yīng)用程序開發(fā)者能夠創(chuàng)造可信的,可檢驗和可維護的基本代碼。Windows CE設(shè)備驅(qū)動程序開發(fā)工具包,或者簡稱DDK ,提供了如何創(chuàng)造WIN32功能強大的設(shè)備驅(qū)動程序信息和范例。
設(shè)備的類型
Windows CE支持兩種基本類型的設(shè)備驅(qū)動程序,內(nèi)置固化的驅(qū)動程序和可安裝的驅(qū)動程序。 如同名字所暗示的,內(nèi)置固化的驅(qū)動程序是被指定用于一個給定的Windows CE的硬件平臺的設(shè)備。Windows CE的嵌入式系統(tǒng)設(shè)計者有責(zé)任提供一個內(nèi)置固化的驅(qū)動程序來驅(qū)動系統(tǒng)所包括的設(shè)備。例如,許多Windows CE平臺有一個LCD 觸摸屏。這些平臺的制造廠為他們的設(shè)備提供設(shè)備驅(qū)動程序,使此硬件可以用于Windows CE操作系統(tǒng)。在完備的系統(tǒng)中,這些內(nèi)置固化的驅(qū)動程序位于Windows CE只讀內(nèi)存中內(nèi)核的周圍。
可安裝的設(shè)備驅(qū)動程序是被設(shè)定為為了任何與Windows CE 硬件平臺臨時連接的外圍的設(shè)備。這個類型的設(shè)備包括:調(diào)制解調(diào)器,打印機,數(shù)字的照相機,PC卡,以及任何數(shù)量的其它外部的設(shè)備。 可安裝的設(shè)備驅(qū)動程序可能位于只讀內(nèi)存中,但是更典型與臨時性的設(shè)備的接口的應(yīng)用程序軟件一同裝載。
總結(jié)
本文已為概略地介紹了面向Windows CE的WIN32 API,其目的是為了突出這種被廣廣泛應(yīng)用的并且十分重要的API的一般的特點和優(yōu)點。有許多其它的細節(jié)你需要在第一次使用Windows CE嵌入式產(chǎn)品之前來學(xué)習(xí)掌握;幸運的是,有很多的WIN32 API 的信息的資源。
評論