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












評論