Windows CE

Windows CE

Windows Embedded Compact(即 Windows CE)是微軟公司嵌入式、移動計算平台的基礎,它是一個開放的、可升級的32位嵌入式作業系統,是基於掌上型電腦類的電子設備作業系統。(在2008年4月15日舉行的嵌入式系統大會上,微軟宣布將Windows CE更名為Windows Embedded Compact,與Windows Embedded Enterprise、Windows Embedded Standard和Windows Embedded POSReady組成Windows Embedded系列產品。) Windows CE是微軟公司嵌入式、移動計算平台的基礎,它是一個開放的、可升級的32 bit嵌入式作業系統,是基於掌上型電腦類的電子設備作業系統。它是精簡的Windows 95,Windows CE的圖形用戶界面相當出色。

基本信息

定義

Windows CE Windows CE

Windows CE作業系統是Windows家族中的成員,為專門設計給掌上電腦(HPCs)以及嵌入式設備所使用的系統環境。這樣的作業系統可使完整的可移動技術與現有的Windows桌面技術整合工作。Windows CE被設計成針對小型設備(它是典型的擁有有限記憶體的無磁碟系統)的通用作業系統,Windows CE可以通過設計一層位於核心和硬體之間代碼用來設定硬體平台,這即是眾所周知的硬體抽象層(HAL)(在以前解釋時,這被稱為OEMC(原始設備製造)適應層,即OAL;核心壓縮層,即KAL。以免與微軟的Windows NT作業系統的HAL混淆)。

與其它的微軟Windows作業系統不同,Windows CE並不是代表一個採用相同標準的對所有平台都適用的軟體。為了足夠靈活以達到適應廣泛產品需求,Windows CE可採用不同的標準模式,這就意味著,它能夠從一系列軟體模式中做出選擇,從而使產品得到定製。另外,一些可利用模式也可作為其組成部分,這意味著這些模式能夠通過從一套可利用的組份做出選擇,從而成為標準模式。通過選擇,Windows CE能夠達到系統要求的最小模式, 從而減少存儲腳本和作業系統的運行 。

Windows CE中的C代表袖珍(Compact)、消費(Consumer)、通信能力(Connectivity)和伴侶(Companion);E代表電子產品(Electronics)。與Windows 95/98、Windows NT不同的是,Windows CE是所有原始碼全部由微軟自行開發的嵌入式新型作業系統,其操作界面雖來源於Windows 95/98,但Windows CE是基於WIN32 API重新開發、新型的信息設備的平台。Windows CE具有模組化、結構化和基於Win32應用程式接口和與處理器無關等特點。Windows CE不僅繼承了傳統的Windows圖形界面,並且在Windows CE平台上可以使用Windows 95/98上的編程工具(如Visual Basic、Visual C++等)、使用同樣的函式、使用同樣的界面風格,使絕大多數的套用軟體只需簡單的修改和移植就可以在Windows CE平台上繼續使用。Windows CE並非是專為單一裝置設計的,所以微軟為旗下採用Windows CE作業系統的產品大致分為三條產品線,Pocket PC(掌上電腦)、Handheld PC(手持設備)及Auto PC。

數據採集

對於大部分製造業企業,測量儀器的自動數據採集一直是個令人煩惱的事情,即使儀器已經具有RS232/485等接口,但仍然在使用一邊測量,一邊手工記錄到紙張,最後再輸入到PC中處理的方式,不但工作繁重,同時也無法保證數據的準確性,常常管理人員得到的數據已經是滯後了一兩天的數據;而對於現場的不良產品信息及相關的產量數據,如何實現高效率、簡潔、實時的數據採集更是一大難題。

簡介

WinCE, 它是將條碼掃描裝置與數據終端一體化,帶有電池可離線操作的終端電腦設備。具備實時採集、自動存儲、即時顯示、即時反饋、自動處理、自動傳輸等功能。為現場數據的真實性、有效性、實時性、可用性提供了保證。其具有一體性、機動性、體積小、重量輕、高性能,並適於手持等特點。它主要套用於工業數據採集中。

組成

Windows CE主要由兩大部分組成,一是Windows CE硬體設備,另一個是Windows CE中運行的採集端軟體。

·硬體部分

在生產現場,由於空間的限制,一般情況下不方便放置常規的工控主機,同時也基於成本的考慮,所以採用工業級的嵌入式主機是一個比較好的解決方案,如廣州太友科技的數據採集儀,此數據採集儀上配備有兩個串口,儀器或設備可直接通過串口線與之相連,同時用戶可在數據採集儀中設定產品相關的信息。

·軟體部分

採集軟體安裝在數據採集儀中,用戶通過採集軟體進行數據的自動採集,並進行相關的處理, 對於生產線的實時數據,由於一般只是輸出數據,沒有輸出相應的參數值,規格值等,所以此時可在軟體中設定相應的產品信息參數,然後由用戶選擇相應的產品信息,班次信息,批次信息等.

版本歷程

自1996年微軟推出Windows CE 1.0,Windows CE一共經歷了7個不同的版本。

1.0

Windows CE1.0是一種基於Windows 95的作業系統,其實就是單純的Windows95簡化版本。90年代中期卡西歐推出第一款採用Windows CE 1.0作業系統的蛤殼式PDA,算是第一家推出真正稱得上手掌尺寸的掌上電腦廠商。作為第一代的Windows CE 1.0於1996年問世,不過它最初的發展並不順利。當時Palm作業系統在PDA市場上非常成功,幾乎成為了整個PDA產品的代名詞,在這種情況下,微軟公司被迫為最初Windows CE的不斷改進的同時,微軟公司也通過遊說、技術支持、直接資助等手段聚集了大量合作廠商,使Windows CE類的PDA陣容越來越強大。

2.0

隨著Windows 95的出現和Windows 98的成功,另外一個巨人-微軟站起來了,並迅速地在PC作業系統業界建立了微軟帝國。PDA市場的發展潛力被眾多分析家看好,嗅覺異常靈敏的微軟自然不會放過這樣一個巨大的市場,在其作業系統帝國已經非常穩定的前提下,又開始了在PDA市場上的全力衝刺,用Windows CE 2.0作業系統來打造與Palm非常類似的掌上產品。

WinCE2.0不僅比CE1.0快的多,而且是彩色顯示,有眾多新型PDA採用了新的WinCE 2.0系統,大有取代Pilot的趨勢,成為PDA作業系統新的標準。儘管CE2.0仍然要比Pilot的作業系統需要的空間要大的多,但它具有Windows的界面,會用PC的人小編估計沒有多少人不會使用微軟的作業系統。如果你熟悉Windows95,在使用WindowsCE的時候就熟門熟路了,就不需要重新學習。而且,兩者技術上的相似性,第三方Windows套用軟體開發商們,就可以很容易地把自己的套用軟體轉換成可供CE運行的版本,因此,WindowsCE的可使用軟體的種類將會越來越多的。

3.0

WinCE3.0是微軟的Windows Compact Edition,是一個通用版本,並不針對掌上產品,標準PC、家電和工控設備上也可以安裝運行,但要做許多客戶化工作,當然也可以做掌上電腦。微軟鼓勵大家在任何硬體平台(WinCE3.0支持5系列CPU: x86,PowerPC,ARM,MIPS,SH3/4) 上使用(為了和VxWorks,Linux等競爭),所以早期的WINCE運行在不同的硬體平台上,而且可以更換顯示方向,以便為不同的平台服務。WinCE3.0屬於付費軟體,安裝許可(Licence)費用為$20,10份起,批量時大致能降到$15/一份。

2000年微軟公司將WinCE3.0正式改名為Windows for Pocket PC,簡稱Pocket PC。就是把Pocket Word和Pocket Excel等一些日常所需的辦公軟體的袖珍版裝了進去Pocket PC,同時在娛樂方面的性能做很大的加強。當然對於微軟的所有舉動,捧場的廠商自然也不會少,加入Pocket PC 陣營的有HP、Compaq、Casio等一些著名廠商。當Compaq的iPAQ 3630的誕生和在市場的熱銷,支持和加入Pocket PC陣營的廠商就越來越多。2002年智慧型手機商機再現,不少PPC廠商希望推出整合手機功能的PPC,於是在2002年8月,專門為手機最佳化過的微軟Pocket PC 2002 Phone Edition作業系統匆匆問世,2002年10月,國內第一款PPC手機--多普達686上市了,隨後熊貓推出了CH860、聯想推出ET180,越來越多的pocket pc產品出現了。

4.0-4.2

Windows CE. NET(即Windows CE 4.0)是微軟於2002年1月份推出的首個以.NET為名的作業系統,從名字上我們就可以知道它是微軟的.NET的一部分。WinCE. NET是WinCE3.0的升級,同時還加入.NET Framework精簡版,支持藍牙和.NET應用程式開發。

WindowsCE. NET 4.2是Windows CE. NET 4.0/4.1的升級版,對Windows CE先前版本的強大功能進行了進一步的擴充和豐富,基於其開發的設備將從這些微小但重要的變化中獲得更好的性能和更強的Windows集成功能。微軟在WinCE4.2版時曾提供開放原始碼,不過只針對研究單位,而程式代碼較少,為200萬行。

5.0

WinCE5.0在2004年5月份推出,微軟宣布Windows CE5.0擴大開放程式原始碼。在這個開放原始碼計畫授權下,微軟開放250萬行原始碼程式作為評估套件(evaluationkit)。凡是個人、廠商都可以下載這些原始碼加以修改使用,未來廠商OEM時,則再依執行時期(Run-time)授權,支付Win CE5.0核心每台機器3美元的授權費用,這也是微軟第一個提供商業用途衍生授權的作業系統。

6.0

2006年11月,微軟公司其最新的嵌入式平台Windows Embedded CE 6.0正式上市。作為業內領先的軟體工具,Windows Embedded CE 6.0將為多種設備構建實時作業系統,例如:網際網路協定(IP)機頂盒、全球定位系統(GPS)、無線投影儀,以及各種工業自動化、消費電子以及醫療設備等。

在Windows Embedded誕生十周年之際,微軟將首次在“共享源計畫(Microsoft Shared Source programme)”中100%毫無保留地開放Windows Embedded CE 6.0核心,(GUI圖形用戶界面不開放)比Windows Embedded CE的先前版本的開放比例整體高出56%。“共享源計畫”為設備製造商提供了全面的原始碼訪問,以進行修改和重新發布(根據許可協定條款),而且不需要與微軟或其他方共享他們最終的設計成果。儘管Windows作業系統是一個通用型計算機平台,為實現統一的體驗而設計,設備製造商可以使用Windows Embedded CE 6.0這個工具包為不同的非桌面設備構建定製化的作業系統映像。通過獲得Windows Embedded CE原始碼的某些部分,比如:檔案系統、設備驅動程式和其他核心組件,嵌入式開發者可以選擇他們所需的原始碼,然後編譯並構建自己的代碼和獨特的作業系統,迅速將他們的設備推向市場。

微軟還將Visual Studio 2005專業版作為Windows Embedded CE 6.0的一部分一併推出。這對微軟來說又是一次史無前例的突破。Visual Studio 2005專業版將包括一個被稱為Platform Builder的功能強大的外掛程式,它是一個專門為嵌入式平台提供的“集成開發環境”。這個集成開發環境使得整個開發鏈融為一體,並提供了一個從設備到套用都易於使用的工具,極大地加速了設備開發的上市。

Windows Embedded CE 6.0重新設計的核心具有32,000個處理器的並發處理能力,每個處理有2GB虛擬記憶體定址空間,同時還能保持系統的實時回響。這使得開發人員可以將大量強大的應用程式融入到更智慧型化、更複雜的設備中。無論在路上、在工作還是在家裡,都可以使用這種設備。

在路上:Windows Embedded CE 6.0加入了新的單元核心數據和語音組件,這使得設備能夠通過蜂窩通訊網路建立數據連線和語音通話,從而實現機器對機器的通訊套用場景,並構建相應的設備,如停車表、自動售貨機和GPS設備等。

在工作上:Windows Embedded CE 6.0包含的組件更便於開發者創建通過Windows Vista內置功能無線連線到遠程桌面共享體驗的投影儀。

在家中:Windows Embedded CE 6.0充分利用了多媒體技術,以開發網路媒體設備、數字視頻錄像機和IP機頂盒等。

7.0

在2010年6月1日-5日的台北COMPUTEX展會上,微軟正式公布了其嵌入式產品線最新的一員Windows Embedded Compact 7。Windows Embedded Compact 7的前身便是大家所熟知的Windows Embedded CE(簡稱WinCE)系統,隨著版本號的升級,其正式改名為Windows Embedded Compact 7。微軟即將推出的Windows Phone 7所採用的核心正是使用了類似的WinCE 7核心。不僅如此,Windows Phone平台也是基於WinCE平台而定製出來的產品。

此次發布的Windows Embedded Compact 7的改進如下:

1、對無縫連線技術的改進:Windows Embedded Compact 7提供的各項技術可以支持與富媒體、線上服務、Windows PC、智慧型手機和其他手持設備的無縫連線;

2、改進連線和使用富媒體服務:Windows Embedded Compact 7使用了新的媒體庫來簡化多媒體功能管理,並對MPEG-4和HD高清進行了支持,靈活的外掛程式架構技術支持第三方內容擴展;

3、實現了和 Windows 7的無縫對接:利用Windows Device Stage簡化了多媒體的管理,可以很輕鬆地在兩者間同步數據和媒體檔案;

4、完善Office和個人信息服務:可支持Office Viewers AirSync和Microsoft Exchange;

5、豐富用戶體驗:可以利用Windows Embedded Compact 7提供的創新解決方案,為用戶提供非同凡響的設備互動能力;

6、靈活的UI框架擴展:Windows Embedded為設備提供了一個更加豐富和直觀的用戶界面框架——Silverlight,設計師可以利用Microsoft Expression Blend構建出只限於想像力的界面效果;

7、豐富線上衝浪體驗:Windows Embedded Compact 7更新的IE瀏覽器引擎支持Tab標籤頁、Zooming縮放等功能,支持AdobeFlash10.1組件;

8、改進操控輸入更具人性化:內置了強大的觸控互動方式,允許用戶自定義手勢,並為移動設備原生提供了多點操控支持。

windows embedded compact 2013

Windows Embedded Compact 2013 是一套簡化的組件化設備作業系統,現經過更新可同時支持Visual Studio 2013和Visual Studio 2012,該作業系統為開發人員提供了創建下一代智慧型系統解決方案所需的所有工具。 通過對 x86 和 ARM 架構進行支持,Windows Embedded Compact 2013 提供了靈活性和實時支持,可幫助設備製造商縮短產品的上市時間,同時創建易於使用、多點觸控的智慧型系統,以讓企業能夠提高員工的生產效率。

Visual Studio2012 和 2013 以及Expression Blend等常見的工具使您可以創建極具吸引力而又直觀的用戶界面,並可以更快地將差異化的設備投入市場。

實時作業系統支持各種硬體要求和主要處理器架構(包括 x86 和 ARM),以滿足不同需求(從微控制到全自動化工廠)。

改進的檔案系統性能確保公司的設備始終可用;單層安全功能兼容 SDL,並具有可靠的無線連線和聯網能力。

最新功能

目前最新的Windows CE為 Windows Embedded Compact 7,這個版本在核心部分有很大的進步: 所有系統元件都由EXE改為DLL,並移到 kernel space.

全新設計的虛擬記憶體架構、全新的設備驅動程式架構,同時支持 User Mode 與 Kernel Mode 兩種驅動程式。突破只能運行 32 個工作元(process)的限制,可以運行 32768 個工作元。每一工作元的的虛擬記憶體限制由32 M 增加到全系統總虛擬記憶體。Platform Builder IDE 集成到 Microsoft Visual Studio 2005。新的安全架構,確保只有被信任的軟體可以在系統中運行。UDF 2.5 檔案系統。支持 802.11i (WPA2)及 802.11e (QoS) 等無線規格,及多重 radio support.

支持 x86,ARM,SH4,MIPS 等各種處理器。提供新的 Cellcore components 使系統在行動電話網路中更容易創建數據連結及激活通話。在開發環境上,微軟也提供兼容於.NET Framework的開發元件:.NET Compact Framework,讓正在學習.NET或已擁有.NET程式開發技術的開發人員能迅速而順利的在搭載 Windows CE .NET系統的設備上開發應用程式。

用於掌上電腦Pocket PC以及智慧型手機Smart Phone上的Windows CE系統稱為Windows Mobile,目前成熟的最新版本為Windows Phone 8.1。

體系結構

基於Windows CE構建的嵌入式系統大致可以分為4個層次,從底層向上依次是:硬體層、OEM層、作業系統層和套用層。不同層次是由不同廠商提供的,一般來說,硬體層和OEM層由硬體OEM廠商提供;作業系統層由微軟公司提供;套用層由獨立軟體開發商提供。

每一層分別由不同的模組組成,每個模組又由不同的組件構成。這種層次性的結構試圖將硬體和軟體、作業系統和應用程式隔開,以便於實現系統的移植,便於進行硬體、軟體、作業系統、應用程式等開發的人員分工合作、並行開發。

硬體層

硬體層是指由CPU、存儲器、I/O連線埠、擴展板卡等組成的嵌入式硬體系統,是Windows CE作業系統必不可少的載體。一方面,作業系統為嵌入式套用提供一個運行平台;另一方面,作業系統要運行在硬體之上,直接與硬體打交道並管理硬體。值得注意的是,由於嵌入式系統是以套用為核心的,嵌入式系統中的硬體通常是根據套用需要定製的,因此,各種硬體體系結構之間的差異非常大。“更小、更快、更省錢”幾乎是所有嵌入式系統硬體的設計目標。

OEM層

OEM層是邏輯上位於硬體和Windows CE作業系統之間的一層硬體相關代碼。它的主要作用是對硬體進行抽象,抽象出統一的接口,然後Windows CE核心就可以用這些接口與硬體進行通信。

開發技術

針對不同的系統,WindowsCE使用了不同的開發技術:Windows CE 使用的 VC++ 5.0 開發系統嵌入式工具包,提供系統庫、工具、文本和樣本代碼,從而使 OEMs 能夠對特定的硬體平台使 Windows CE 標準定製。嵌入式工具包也包括設備驅動包(DDK)和軟體開發包(SDK) ,DDK 提供了關於寫驅動器的附加文本,SDK 提供庫、頭檔案、樣本代碼、文本以允許,開發者對基於 Windows CE 的平台進行寫操作。Windows CE 提供了相同的程式界面,以用來為其它的視窗作業系統開發功能,例如,Windows CE 版本 1.01支持大約1000個微軟的Win 32 API 函式的其中500個。這就意味著大量不同類的工具,第三方書籍,關於 Win 32 開發者訓練教程,可以替代或為 Windows CE 系統的開發者所用。而實時系統的開發者能夠使用 VDFF 5.0 的嵌入式工具包,以把作業系統轉移到特定的平台,並為這個平台開發附加設備驅動器和實時功能。

系統詳細介紹

執行緒優先權級

Windows CE 是有優先權的多任務作業系統,它允許多重功能、進程,在相同時間系統中運行 Windows CE 支持最大的 32 位同步進程。一個進程包括一個或多個執行緒,每個執行緒代表進程的一個獨立部分,一個執行緒被指定為進程的基本執行緒,進程也能創造一個未定數目的額外執行緒,額外執行緒實際數目,僅由可利用的系統資源限定。

Windows CE 利用基於優先權的時間片演算法以安排執行緒的執行,Windows CE 支持八個不同的優先權,由0到7,0代表最高級,它在頭檔案windows.h中定義。

優先權 描述
0 關鍵進程所使用的優先權,是最高級別,相當於Windows里的Ring0
1 最高執行緒優先權,比0級優先權低
2 高於通常的執行緒優先權,常為較底層的進程所使用
3 通常執行緒優先權,比較基礎
4 低於常規執行緒優先權,有時候會被後台執行緒用到
5 最低執行緒優先權
6 高於IDLE的執行緒優先權
7 最低級別的執行緒優先權

級別0和1通常做為實時過程和設備驅動器,級別2-4做為執行緒和通常功能,級別5-7做為是低於其它功能級別,注意級別6是目前狀態並有穩定聯接。

類似於Windows,擁有高級優先權的執行緒安排優先運行,而同一優先權的執行緒會以循環優先先級方式運行,即每個執行緒接受定製的時間或時間片,定量時間默認值為25毫秒 (Windows CE 2.0 支持在 MIPS 平台更改定量時間)。較低優先權的執行緒,要直到較高級執行緒完成之後再運行,也即直到他們或者放棄或停止。 一個重要的例外是最高優先權的執行緒(級別0,關鍵時間優先權)不與其它的執行緒共享時間片,這些執行緒連續執行直到他們完成。不象其它的Windows作業系統,Windows CE 是固定的,不能改變。它不匹配這基於引進優先權的中斷,他們能夠暫時改動,但僅能通過 Windows CE核心以避免所謂的的“優先權倒置”。

優先權倒置指的是當它們同時競爭同一資源時,低優先權的執行緒,阻礙了高優先權執行緒對資源的利用。為了改正這種局面並解放較高優先權的執行緒,Windows CE 允許低級優先權繼承,嚴格的執行緒優先權,並且運行較高優先權直到它釋放所用資源。

例如,如果一個執行緒在最高優先權運行試圖蕕取由低級優先權占有的互斥體,低級優先權的執行緒變成高級優先權,並且運行直到它釋放互斥體。優先權倒置適用於系統的所有執行緒。例如,甚至在優先權別1運行的核心執行緒能轉成級別0,如果優先權0執行緒運行記憶體分頁代碼,將引起塊失誤。

基於優先權的多任務設計,保證運行在最低級的執行緒在一個預所知時間段執行。本論文在後面討論設定回響,對於指定的平台和公式,並由其它的平台獲取數字。在 DAK 和 SDK 的工具,顯示了執行緒狀態和優先權別,並描繪指定實時系統操作輪廓。

執行緒同步

實時系統必須保證進程和執行緒同步,例如,如果實時套用的一部分在另一部分獲得最多當前數據前即完成,此套用的管理進程可能不穩定,同步將確保在套用執行緒間交換正確。

如同其它的 Windows作業系統一樣,Windows CE 為執行緒同步提供了一個豐富的“等待對象”,這包括關鍵部門、事件、互斥體,些等待對象,允許一個執行緒減緩它的運行並且等待直到指定事件發生。

Windows CE 將互斥體、關鍵部分、事件請求按“先入先出,優先權(FIFO)”順序排列:不同的先入先出順序序列定義成八個不同的優先權,在給定的優稱級的執行緒請求,將被放在優先權列表末尾,當優先權倒置出現時,調度程式調整這些序列。

除了等待對象,Windows CE 支持標準的 Win 32 時間 API 函式,這些來自核心的套用,軟體中斷將獲得時間間隔,它被用來管理實時套用。通過調用 GetTickCont 函式,它能夠返回幾毫秒,執行緒能夠使用系統間隔時間。關於更詳細的分時信息,Windows CE核心也支持Win 32 API 函式QueryPerformanreCounter 和 QueryPerFormanteFrequency。OEM 必須為這些調用提供硬體和軟體支持,它提供一個較高的時間分辨力和 OAL 界面其它方面。

其它方面考慮

Windows CE 提供了一個重要的存儲系統,例如,當某些運行Windows CE的平台提供4MB的物理記憶體時,Windows CE 支持一個重要的 2GB 的地址空間,每個進程聯接在它自己的32MB 物理空間上,當它需要產生記憶體分頁中斷(這可能影響執行緒執行時間),物理記憶體進行執行緒代碼或數據記憶體分頁。

記憶體分頁輸入輸出,將比實時進程優先權低。在實時進程中記憶體分頁仍可自由出現,但這要確保後台的實際記憶體管理贏得實時系統優先權。實時執行緒應該鎖存在記憶體中,以防止這些無關緊要的記憶體分頁阻礙其運行,它們可能會占用實際記憶體管理系統。

Windows CE 允許映射,這將阻止多個進程共享同一物理記憶體,結果將會導致協同進程間或驅動器與映射快速的數據傳送,記憶體映射能夠戲劇性的增強實時操作。

中斷處理

WinCE的中斷處理機制基於IRQS ISRS 和 ISTS

實時套用被設立在指定的時間間隔內,對外部事件做出反應,實時套用使用中斷做為一種確保外部事件由作業系統獲知的方式。在 Windows 中,核心和 OEM 適應層 (OAL)被設定成使系統其它部分的中斷和調度最最佳化。Windows CE 平衡操作,並通過把中斷過程分成兩部分而使執行更加容易:它分為中斷服務程式(ISR)和中斷服務執行緒(IST)兩部分。

每條硬體中斷申請線(IRQ),與一個ISR相連。當中斷成立和中斷出現時,核心為此調用暫存的 ISR, ISR 為中斷處理的核心模式部分儘可能短的保存。它首先將核心放在適合的 IST 上。

ISR 執行它的最小處理並返回一個 ID 號到核心,核心檢查返回的中斷 ID 號,並設定相關事件,中斷服務執行緒等待事件。當核心設定事件時,IST 停止等待並開始執行,附加的中斷進程,中斷處理大部分實際上出現在 IST 中,兩個最高的執行緒優先權 (級別0和1),通常指定為 ISTS,保證這些執行緒運行得足夠快。

正如前面所說,處在最高級的 ISTS 不能被其它的執行緒占用,這些執行緒持續執行直到它們截止或放棄。

Windows CE 不能支持群體中斷,這就意味著當以前一個中斷處理中,另一個不同接受服務,也就是當核心位於 ISR 時如果中斷出現,在為新的 IRQ 開始 ISR 前它將一直執行直到ISR 結束,這將引起硬體中斷和 ISR 開始之間的延遲,拖延和回響時間中斷回響。

中斷回響

下文中,Interrupt Latency 詞組主要指的是較件中斷處理回響,也即是從處部中斷到達處理器到中斷開始處理間的時間。

Windows CE的中斷回響時間是針對鎖存在記憶體上的執行緒 (當記憶體回響不存在時)。這使得計算最差事件回響成為可能——中斷服務程式(ISR) 開始和中斷服務執行緒(IST)開始D的總時間,直到中斷處理的總時間能夠通ISR 和 IST 中所需時間計算決定。

ISR 回響通用公式定義如下:

ISR開始時間 = value1 + dISR_Current + sum(dISR_Higher)

value1=由核心處理過程獲得回響值

dISR_Current=中斷到達時程式中 ISR 持續時間。這個值範圍由0到系統中最長的 ISR 持續時間

sum(dISR_Higher)=所有在 ISR 開始前的較高級ISRS 持續時間總和,即在時間 vahe1+dISR-cumeneu間到達的中斷

例如,考慮一個擁有關鍵優先權 ISR 的嵌入式系統,因為 ISR 被設成最高級,這有樣 ISRS dISR-Higher 值為0。當沒有其它 ISRS 最低回響,在程式中,即為value1 最低回響即為value1加系統中最長 ISR 周期,當中斷到達時,正是系統中最長的 ISR 開始執行。

IST 回響周期定義如下:

IST開始時間 = value2 + sum(dIST) + sum(dISR)

value2=由核心處理的回響值

sum(dIST)=所有的出現在 ISR 和 IST ,開始的優先權 ISTS 和執行緒上下文轉換時間總和。

sum(dISR)=在中斷(?) ISR 和它的 IST 之間運行的其它 ISRS 持續時間總和。

最簡單的例子——具有一個關鍵級 ISR 和一個關鍵級執行緒(無其它0優先權的執行緒)的嵌入式系統——沒有其它的 ISTS 能夠在ISR 和 IST 之間中斷,然而在關鍵級的 ISR 和它相關的 IST 開始間其它的 ISRS 能被處理。

因為 ISRS 一旦能夠獲得,即可被處理,很容易想像成病態情況,涉及產生一個持續的 ISRS 流,從而產生不確定的推遲。IST 的開始不可能出現,因為 OEM對系統中的中斷完成控制。因為 OEM (原始設備製造商)為特定作業系統設計傳統 Windows CE 版本。OCM 利用目標操作環境限制使系統設計最佳化。

為減少回響時間,OEM 控制 ISR 和IST 處理時間中斷優先權執行緒優先權。公式中的value1和walue2代表,Windows CE核心中的處理時間,這使得OEM能按照目的來控制分時,研究工作涉及這些確認值。

確保實時操作

兩種不同途徑被用來確保Windows CE操作:

* 由Windows CE開發組進行內部的檢查或分析核心代碼,

* OEM和ISV(獨立軟體銷售商)利用一些將在未來的Windows CE版本嵌入式工具包(for VCFT)提供工具來確保特定配置。

Windows CE關於VC++的嵌入工具包包括以下工具:

* (一個對於分時研究的核心的工具版本和Intrtinrt.ext套用軟體來觀察,中斷過程的最大、最小、平均時間。

*微軟也能開發其它的針對顧客需要的分時工具。

Windows CE開發組,已經檢查了核心代碼以證實它能由最差的情況時間表征,它是獨立於系統對象數目的。

為了利用這個檢查,核心被表征成一套KCALLS或系統調用,在核心關閉優先權是它們是核心程式,並且不允許其它的執行緒運行,最差事件時間,此時,實時進程、標止運行,它能在核心中表征成最差事件KCALL時間(注意:這些時間不影響ISRS,只影響執行緒,例如ISTS)。

開發組通過檢查發現在KCALLS沒有非持久的循環,這使所有的KCALLS能夠表示成單向分支,代碼路徑,並確保通過KCALL並獨立於輸入參數發現最差事件時間成為可能。

查找實際的最差事件時間包括使用In strum ented kemal,這僅是一個核心版本,它在設定套用環境後編輯使用,KCALL_PROFICE=1,以保證額外的分時功能,這個instrumented kemel 與debug kemel不同,Instrument ted是為一個零售的核心使用,它用來獲得分時值,這常對於裝運產品常常諱之莫深,在retail kernal和instrumented kernel唯一區別是它的裝備。

Instrumentted kernel記錄所有的KCALL時間,這些值,包括最小、最大和平均時間,並能夠通過調用專用的API函式Dum Pk call profile列印到調試接口,Instrumented kernel通常運行在強狀態下,然後調用Dumpkcall prefile來獲得時間。

中斷測試套用軟體Intrtime.exe,在Windows CE標準版本收集中斷分時延遲信息,套用軟體在測試中控制系統時間。因此,當系統需要時間控制器時,是不合適使用的。例如,此應用程式不能與核心instrumented版本一起使用,因為它也需要時間控制。

創建捷徑

你沒看錯,Windows CE也可以使用捷徑。

捷徑是可以提供到其他檔案連結的很小的檔案,你可以使用.lnk檔案指向位於Windows資料夾中的檔案。如果你不使用.lnk檔案,你只能通過檔案系統檔案(.dat)在ROM之外製作Windows資料夾下的檔案的完全副本。

以下步驟列出了如何創建一個桌面捷徑。當你創建了這個檔案以後,你需要把它加入到運行時的image里,在大多數情況下,你需要把這個檔案複製到Windows系統以外的地方。

創建一個桌面捷徑的方法如下:

1、從Platform Builder中的File選單選擇New Project or File

2、在New Project or File對話框中選擇Files標籤

3、選擇Text File類型

4、在File name文本框中,輸入<File Name>.lnk,其中<File Name>;可根據需要輸入,下同。這樣,一個新檔案就被創建並打開了

5、在<File Name>.lnk中,輸入連結命令

.lnk檔案是一個包含了命令行和被連結目標的文本檔案,它有一個命令行長度部分和一個命令行。你也可以通過參數傳遞給被連結的目標,這是可選的。然而,如果捷徑模組在Coredll中被替換了,那么這個行為也可能會被改變。

作為默認的,一個.lnk檔案使用如下的格式。

[後面命令行和參數的ASCⅡ字元串的長度]#[命令行[參數]]

舉個例子,要能過兩個參數運行你的MyApp.exe程式,一個MyApp.lnk檔案內可包含這個語句:

40#\Windows\MyApp.exe parameter1 parameter2

6、從File選單中選擇Save As

7、把這個檔案保存在BSP的OAK部分以便於編譯進作業系統image中。使用Save As對話框導航到%_WINCEROOT%\public\<Platform Name>\<Windows CE Version>\<BSP Name>\OAK\Files並且選擇Save

你已經創建了捷徑檔案,你現在可以通過編輯Project.bib把它加入到OS中,或者添加到你的平台組件樹中。如果是前者,只需打開Project.bib檔案並且在FILES段中加入如下一行代碼:

MyApp.LNK $(_FLATRELEASEDIR)\MyApp.LNK NK S

在這個例子中,MyApp.LNK被放入NK的記憶體塊中,可選的參數S把它定義成系統檔案屬性。

與Linux的區別

本段將會從商業模式,學習和開發難度,對硬體的支持,穩定性,對工程師未來發展的幫助,對研發中心未來發展的幫助來探討。

嵌入式Linux OS與Windows CE相比的優點

第一:Linux是開放原始碼,遍布全球的眾多Linux愛好者都是Linux開發者的強大技術支持者;Windows CE 6.0核心全部開放,GUI不開放。第二:Linux的核心小、效率高;Windows CE與之相比,占用過多的RAM。第三Linux是開放原始碼的OS,在價格上極具競爭力,適合中國國情。Windows CE需要著作權費用。第四Linux不僅支持x86晶片,還是一個跨平台的系統。更換CPU時就不會遇到更換平台的困擾。第五,Linux核心的結構在網路方面是非常完整的,它提供了對包括十兆位、百兆位及千兆位的乙太網絡,還有無線網路、Token ring(令牌環)和光纖甚至衛星的支持,Windows CE的網路功能也比較強大。

嵌入式Linux OS與Windows CE相比的弱點

第一:LINUX開發難度較高,需要很高的技術實力,WINCE開發相對較容易,開發周期短,核心完善,主要是套用層開發。第二:LINUX核心調試工具不全,調試不太方便,尚沒有很好的用戶圖形界面,WINCE的GUI豐富,開發工具強大;第三,LINUX系統維護難度大。Linux在使用較完整的GUI時一般會占用較大的記憶體,可以去掉部分無用的功能來減小使用的記憶體,但是如果不仔細,將引起新的問題。

微軟作業系統主要產品

類別 具體作業系統
早期版本

Windows 1.0 ( 1985)、Windows 2.0 ( 1987)、Windows 2.1 ( 1988)

windows 3.0 ( 1990)、windows 3.1 ( 1992)、Windows 3.2 ( 1994)

Windows 95 ( 1995)、Windows97 ( 1996)、Windows 98 ( 1998)

Windows 98 SE ( 1999)

NT系列 早期版本

Windows NT 3.1 ( 1993)、Windows NT 3.5 ( 1994)、Windows NT 3.51 ( 1995)

Windows NT 4.0 ( 1996)、Windows 2000 ( 2000)

客戶端

windows xp ( 2001)、Windows Vista ( 2005)、Windows 7 ( 2009)

Windows Thin PC ( 2011)、Windows 8 ( 2012)、Windows RT ( 2012)

Windows 8.1 ( 2013)

伺服器

Windows Server 2003 ( 2003)、Windows Server 2008 ( 2008)、Windows Home Server ( 2008)

Windows HPC Server 2008 ( 2010)、Windows Small Business Server ( 2011)、Windows Essential Business Server

Windows Server 2012 ( 2012)、Windows Server 2012 R2( 2013)

特別版本

Windows PWindows AzureWindows Fundamentals for Legacy PCs

嵌入式系統 Windows CEWindows Mobile (2000) 、Windows Phone ( 2010)

熱門詞條

聯絡我們