基于Windows CE .net操作系統(tǒng)的嵌入式系統(tǒng)的定制
出處:陳正茂 楊維忠 胡 波 發(fā)布于:2011-08-26 12:38:16
Windows CE.net是美國微軟公司專門為各種移動和便攜電子設(shè)備、個人信息產(chǎn)品、消費類電子產(chǎn)品、嵌入式應(yīng)用系統(tǒng)等非通刖計算機領(lǐng)域設(shè)計的一種32位高性能操作系統(tǒng)。它具有一個簡捷、高效的完全搶先式多任務(wù)操作,支持強大的通信和圖形顯示功能,能夠適應(yīng)廣泛的系統(tǒng)需求。與通用操作系統(tǒng)相比,WineE.net可靠性好,實時性高且內(nèi)核體移小,因此被廣泛用于各種嵌入式智能設(shè)備的開發(fā)。
平臺向?qū)?Platform Wizard)可以幫助開發(fā)人員方便的為自己的設(shè)備建立新的平臺。該向?qū)峁┝?2個預(yù)建配置,以便為設(shè)備設(shè)計提供一個基礎(chǔ)。這些設(shè)備包括:數(shù)字媒體接收設(shè)備、移動手持設(shè)備、企業(yè)終端、企業(yè)Web Pad、網(wǎng)關(guān)、工業(yè)控制設(shè)備、機頂盒、Internet設(shè)備、IP電話、移動電話、微內(nèi)核、Windows瘦客戶機。
由于微軟對嵌入式操作系統(tǒng)研發(fā)力量的增強,CE的優(yōu)勢越來越明顯:實時處理能力不斷增強(在使用Pentium 166 MHz處理器時,ISR延遲平均為2.8ms,IST延遲平均為17.9ms)、強大的多媒體能力、可伸縮的無線技術(shù)支持、針對小內(nèi)存體積占用進行優(yōu)化(200KB)、具有適應(yīng)性的可定制用戶界面、豐富的設(shè)備驅(qū)動程序、強大的應(yīng)用程序開發(fā)等。因此,Windows CE在嵌入式系統(tǒng)的市場占有率越來越高。
1 創(chuàng)建Windows CE .net的主要步驟
創(chuàng)建一個基于Microsoft Windows CE .net的操作系統(tǒng),必須完成下面幾個主要步驟:(1)選擇一個合適的硬件平臺。(2)根據(jù)該硬件平臺的配置,對平臺進行定制。(3)編譯并Build鏡像文件(image),并將它到SDB。采用在Platform Builder集成開發(fā)環(huán)境中的Debug工具調(diào)試平臺。(4)為特定的目標(biāo)設(shè)備創(chuàng)建一個boot loader以及板支持包(BSP)。(5)用新的BSP重新編譯(Rebuild)操作系統(tǒng)鏡像,并將它進入目標(biāo)設(shè)備,調(diào)試這個平臺。(6)當(dāng)平臺創(chuàng)建完畢的時候,輸出軟件開發(fā)包(SDK),以便在開發(fā)平臺應(yīng)用程序時使用。
具體來說,創(chuàng)建一個嵌入式平臺首先需要設(shè)計出硬件系統(tǒng),然后開發(fā)相應(yīng)的操作系統(tǒng)映像和應(yīng)用程序。其中硬件設(shè)計的目標(biāo)和標(biāo)準(zhǔn)是由產(chǎn)品的需求決定的。本文將不針對硬件部分,僅對操作系統(tǒng)的開發(fā)進行一定的探討。在硬件設(shè)計成功以后,需要創(chuàng)建一個Windows CE.NET的平臺,而定制一個基于Windows CE.NET的平臺就涉及到組件的添加或裁剪。利用PB可以定制出各種各樣的CE系統(tǒng)。PB中包含支持ARM、MIPS、SHx和x86四種CPU架構(gòu)的多種BSPs。每一種BSP中都包含了多種特定的設(shè)備驅(qū)動程序和定制硬件的組件列表。用戶可以利用一個預(yù)先配置好的BSP或者創(chuàng)建一個新的BSP,然后創(chuàng)建一個僅包含內(nèi)核支持的操作系統(tǒng)(200KB左右),也可以創(chuàng)建一個包含復(fù)雜的圖形用戶界面(GUI)和預(yù)裝了部分應(yīng)用程序的系統(tǒng)(甚至超過64MB),或者是介于二者之間的系統(tǒng)。通常,在平臺創(chuàng)建過程中,先要創(chuàng)建一個基本的操作系統(tǒng)映像文件,然后把它到目標(biāo)開發(fā)板中,接著在目標(biāo)硬件平臺上進行修改和調(diào)試。通過增加或刪除某些組件來定制目標(biāo)平臺上的操作系統(tǒng)。
一旦完成了平臺的定制,就可以在PB中導(dǎo)出SDK了。SDK導(dǎo)出向?qū)龑?dǎo)完成SDK的配置和構(gòu)建過程,終產(chǎn)生一個包含了必要的頭文件、庫文件、平臺管理組件、運行時庫、平臺擴展以及相關(guān)幫助文檔的Windows安裝程序文件包(.msi文件)。把此SDK安裝到本地或者別的計算機上以后,應(yīng)用軟件開發(fā)者就可以在Visual Studio.NET或者Embedded Visual C++4.0環(huán)境下開發(fā)基于Windows CE平臺的應(yīng)用程序了。圖3給出了用戶定制的SDK、Platform Builder以及應(yīng)用軟件開發(fā)工具三者之間的關(guān)系。

2 定制適合自己的操作系統(tǒng)
由于微軟提供了良好的平臺向?qū)?本文不再對這些過程進行敘述,僅對創(chuàng)建過程中的關(guān)鍵問題進行說明。
2.1 自動載入應(yīng)用程序
很多設(shè)備需要在操作系統(tǒng)啟動時,自動載入自己的應(yīng)用程序。有的CE系統(tǒng)本身就沒有標(biāo)準(zhǔn)的CE界面,更需要自動加載自己的應(yīng)用程序作為設(shè)備啟動界面。需要在操作系統(tǒng)啟動時加載的文件一般放在注冊表的鍵[HKEY_LOCAL_MACHINEinit]下面,例如:[HKEY_LOCAL_MACHINEinit]
″Launch50″=″explorer.exe″
″Depend50″=hex:14,00,1e,00
這些文件是系統(tǒng)啟動時運行的程序。其中Launch后的數(shù)字越小,運行越早;Depend的值說明這個程序要依賴前面的哪些程序。一般有Launch10 SHELL.EXE、Launch20 DEVICE.EXE、Launch30 GWES.EXE、Launch50 EXPLORER.EXE四個模塊需要啟動。
以上這些模塊都是標(biāo)準(zhǔn)的用戶級進程,因此可以在這個階段添加自己的應(yīng)用程序,也可以在DEVICE.EXE之后、GWES.EXE之前啟動一個任意的應(yīng)用程序App.exe。但是該應(yīng)用程序必須沒有調(diào)用GWES.EXE和EXPLORER.EXE中定義的圖形和Windows資源管理器的功能,否則該應(yīng)用程序不能正常運行。EXPLORER.EXE是CE標(biāo)準(zhǔn)的Shell,在其之前和之后啟動一個具有標(biāo)準(zhǔn)用戶接口的應(yīng)用程序時都會出現(xiàn)問題。EXPLORER并不能處理在其之前創(chuàng)建的可見的、的窗口應(yīng)用。由于EXPLORER.EXE裝載之后需要執(zhí)行某些特定的初始化操作,因此在其后隨即啟動的帶有用戶接口的應(yīng)用也不能正常執(zhí)行。但在其之前和之后可以啟動沒有用戶接口的應(yīng)用程序,例如通信監(jiān)控程序。
EXPLORER.EXE執(zhí)行之后,啟動過程從注冊表切換到文件系統(tǒng)。在初始化完桌面和任務(wù)欄窗口之后,它會在目錄windowsstartup中尋找任何可以執(zhí)行的應(yīng)用程序或其快捷方式,因此可以把需要開機啟動的應(yīng)用或其快捷方式放在該目錄中。方法如下:
在platform.dat文件中加入以下程序:
Directory(″WindowsStartUp″):-File(″sample.exe″,
″windowssample.exe″)
其中:路徑″WindowsStartUp″代表啟動菜單,路徑″WindowsPrograms″代表程序菜單。
2.2 改變盤符名稱
如何改變硬盤、電子盤、CF卡等的盤符名稱,是平臺必須考慮的問題,因為有些應(yīng)用程序?qū)τ诒P符的名稱要求是固定的。
以改變CF盤盤符為例,也可以改變CF ATAPI驅(qū)動的注冊表設(shè)置,其位置為:
[HKEY_LOCAL_MACHINESystemStorageManager
ProfilesATA]
″Name″=″ATAPI Device″
″Folder″=LOC_STORE_HD_FOLDER
將LOC_STORE_HD_FOLDER改為需要的盤符,例如“Compact flash”等。
2.3 設(shè)置存儲設(shè)備
任何嵌入式設(shè)備都需要存儲設(shè)備存儲信息。由于CF卡之外的其他設(shè)備都有比較明確的驅(qū)動模塊,所以這里僅對加入CF卡設(shè)備進行說明。如果要加入CF設(shè)備,首先需要加入Storage Devices/Compact Flash/PC Card Storage(ATADISK)特色,這是必要條件。另外還需要PCMCIA支持,因為CF卡接口是PCMCIA的擴展。如果PCMCIA控制器不屬于微軟支持之列,則還需要編寫驅(qū)動程序來驅(qū)動特定的硬件。不要加入USB特色,因為它與CF卡或者ATAPI存儲器沒有關(guān)系。
2.4 設(shè)置網(wǎng)絡(luò)適配器
網(wǎng)絡(luò)化是嵌入式設(shè)備的發(fā)展方向,這里以Intel 82559ER單口網(wǎng)卡為例進行說明。
首先用一個文本編輯器對CONFIG.BIB和PLATFORM.REG文件進行修改。網(wǎng)絡(luò)適配器需要它自己單獨地預(yù)留內(nèi)存,這些信息在文件CONFIG.BIB中表示,其大小應(yīng)該符合默認(rèn)大小(大約120KB),而且不能和其他預(yù)留的內(nèi)存相沖突。第二,網(wǎng)絡(luò)適配器也需要在文件PLATFORM.REG中加入注冊表信息,其中IP和網(wǎng)關(guān)的設(shè)置可以根據(jù)實際應(yīng)用進行修改。第三,修改CE物理地址注冊表數(shù)值與在CONFIG.BIB文件描述的內(nèi)存范圍的基地址相符合。在Windows CE .net系統(tǒng)中,PCI插槽不再需要通過注冊表設(shè)置,系統(tǒng)可以通過列舉PCI總線得到這些信息。同樣,也不需要手動設(shè)置網(wǎng)絡(luò)地址綁定、路由和連接等信息,這些都由操作系統(tǒng)負(fù)責(zé)處理。
下面是將一塊Intel Pro 10/100單口網(wǎng)絡(luò)適配器加入系統(tǒng)的部分程序。


2.5 調(diào)試控制面板程序
如何調(diào)試Windows CE .net控制面板程序(Control Applet),對增強Windows CE .net的功能十分重要。Windows CE的控制面板程序是動態(tài)鏈接庫(DLLS),可以通過三個步驟進行調(diào)試:(1)創(chuàng)建一個.exe文件去加載自己的.cpl文件。(2)在開發(fā)環(huán)境中Project->Settings->Debug設(shè)置“Executable for debug session”和“Remote executable path and file name”為該.exe文件名。(3)設(shè)置“Additional Dll′s”參數(shù)為要加載的.cpl或.dll文件。
當(dāng)然,也可以通過這個方法來調(diào)試別的.dll文件。
2.6 編寫設(shè)備驅(qū)動
編寫設(shè)備驅(qū)動的辦法是在一個同類設(shè)備的驅(qū)動上進行改造。
(1)復(fù)制一個設(shè)備的驅(qū)動,修改它的文件夾,換成需要的名字,這里包含*.c、*.h文件和源文件,更換*.c、*.h的內(nèi)容,相應(yīng)更換源文件的內(nèi)容。
(2)在Dir文件中加入自己的文件夾名字。
*.c、*.h文件需自己生成,不會自動生成。source dir file可以用一些生成文件的程序生成。
3 和調(diào)試操作系統(tǒng)
3.1 準(zhǔn)備工作
確認(rèn)CE目標(biāo)機上是否裝有MS-DOS 6.22。若沒有,則按照以下步驟制作啟動軟盤:(1)準(zhǔn)備一張空的軟盤。(2)制作MS-DOS 6.22啟動軟盤。(3)在BIOS中設(shè)置計算機從軟盤驅(qū)動器啟動,使用軟盤啟動您的計算機,進入MS-DOS 6.22。(4)順利進入到MS-DOS 6.22操作系統(tǒng)后,MS-DOS 6.22啟動軟盤(以下簡稱啟動軟盤)制作完成。
3.2 制作CE目標(biāo)機啟動硬盤/CF卡/DOC
(1)為CE目標(biāo)機的硬盤/CF卡/DOC建立一個FAT16的主引導(dǎo)分區(qū)(注:使用啟動軟盤中的FDISK工具)。
(2)將主引導(dǎo)分區(qū)格式化,并創(chuàng)建系統(tǒng)引導(dǎo)文件。例如:從啟動軟盤啟動計算機后,使用“A:FORMAT C:/S”命令格式化目標(biāo)硬盤/CF卡/DOC。
(3)將啟動軟盤上的所有文件復(fù)制到目標(biāo)硬盤/CF卡/DOC。
(4)在文件Autoexec.bat中加入“l(fā)oadcepc nk.bin”,在文件Config.sys中加入“device=himem.sys”。將Himem.sys(ver 6.22)、loadcepc.exe拷貝進目標(biāo)盤。
(5)新建并編輯bootcepc.cnf文件,作為啟動文件,并加入以下內(nèi)容:
N:NK BIN ;標(biāo)記N:參數(shù)說明Loadcepc要加載的BIN文件名稱。
S:BOOTCEPC.bmp ;標(biāo)記S:參數(shù)說明要顯示的圖片名稱。
L:640x480x16 ;標(biāo)記L:參數(shù)為Windows CE啟動后的顯示分辨率。
如果通過網(wǎng)絡(luò)或者串口進行調(diào)試,也可以加入下面的參數(shù):
B:3 ;標(biāo)記B:表示連接的波特率,在串口連接時使用。
E:0:0:192.168.0.124 ;標(biāo)記E:參數(shù)為網(wǎng)絡(luò)指定本機IP地址。
(6)在BIOS中設(shè)置計算機從目標(biāo)硬盤/CF卡/DOC啟動。計算機使用目標(biāo)硬盤/CF卡/DOC啟動到MS-DOS6.22后,制作啟動硬盤/CF卡/DOC完成。
3.3 啟動系統(tǒng)進行調(diào)試
(1)將影像文件NK.BIN復(fù)制到CE目標(biāo)機硬盤/CF卡/DOC引導(dǎo)分區(qū)。(2)重新啟動計算機,使用CE目標(biāo)機硬盤/CF卡/DOC引導(dǎo)系統(tǒng)。(3)調(diào)試操作系統(tǒng)。
4 評估并發(fā)布操作系統(tǒng)
4.1 定制啟動畫面
操作系統(tǒng)的啟動畫面也是可以改變的。首先使用一些制圖軟件來制作自己的圖片,但注意分辨率的要求,因為過高的分辨率可能導(dǎo)致圖片存儲過大。推薦圖片分辨率為640*480和800*600,顏色深度為256色和24位真彩色;然后將圖片復(fù)制到存放操作系統(tǒng)鏡像的存儲設(shè)備中,替換原有的標(biāo)準(zhǔn)界面文件;重新啟動計算機。
4.2 設(shè)置注冊機制
軟件開發(fā)一般使用注冊機制來保護開發(fā)的成果。注冊序列號是根據(jù)每臺設(shè)備硬件情況生成的。在提示注冊頁面上,根據(jù)每臺設(shè)備的硬件組成,會出現(xiàn)數(shù)量不一的序列號碼。一個簡單的辦法是得到CPU ID或者存儲設(shè)備(如硬盤的序列號),隨機生成一個序列號,根據(jù)序列號經(jīng)過加密算法解算注冊碼。一般可以通過kenealioctrl、GetVersionEx、GetSystemInfo等函數(shù)獲得系統(tǒng)信息。具體用哪些數(shù)據(jù),可以根據(jù)需要來確定。注冊軟件做好后還應(yīng)該和操作系統(tǒng)集成。啟動操作系統(tǒng)的同時啟動輸入序列號,只有輸入了正確的序列號后才能正確使用。因為操作系統(tǒng)的鏡像文件一般都是只讀的,所以有些人將注冊信息寫入注冊表中,實際是不可靠的,將其加密存入文件中的某個部位。
4.3 集成嵌入式軟件
基于32位CPU的WinCE設(shè)備嵌入式軟件由操作系統(tǒng)和應(yīng)用程序(AP)二個部分組成。在Windows CE中體現(xiàn)為NK.bin和應(yīng)用程序包AP,也可將AP集成到NK.bin中。它們的優(yōu)缺點如表1所示。

在可能的情況下,嵌入式軟件或者應(yīng)用程序應(yīng)該集成在操作系統(tǒng)中,防止更改。當(dāng)然,也可以單獨存放。
參考文獻(xiàn):
[1]. PCI datasheet http://www.hbjingang.com/datasheet/PCI_1201469.html.
[2]. cpl datasheet http://www.hbjingang.com/datasheet/cpl_2043281.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識2025/6/18 16:30:52
- 高速PCB信號完整性(SI)設(shè)計核心實操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護設(shè)計
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計與干擾抑制核心實操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計要點
- 連接器結(jié)構(gòu)設(shè)計常見問題分析









