複製鏈接
請複製以下鏈接發送給好友

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 Embedded Compact
開發商
微軟
軟件平台
掌上電腦
軟件版本
最新版本為Windows Embedded Compact 7
最近更新時間
2010年6月1日
軟件語言
中文(簡體/繁體)、英文、日文、韓文、德文、法文等

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能夠達到系統要求的最小模式, 從而減少存儲腳本和操作系統的運行 [1] 
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。 [1] 

Windows CE數據採集

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

Windows CE簡介

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

Windows CE組成

Windows CE主要由兩大部分組成,一是Windows CE硬件設備,另一個是Windows CE中運行的採集端軟件。
·硬件部分
在生產現場,由於空間的限制,一般情況下不方便放置常規的工控主機,同時也基於成本的考慮,所以採用工業級的嵌入式主機是一個比較好的解決方案,如廣州太友科技的數據採集儀,此數據採集儀上配備有兩個串口,儀器或設備可直接通過串口線與之相連,同時用户可在數據採集儀中設置產品相關的信息。
·軟件部分
採集軟件安裝在數據採集儀中,用户通過採集軟件進行數據的自動採集,並進行相關的處理, 對於生產線的實時數據,由於一般只是輸出數據,沒有輸出相應的參數值,規格值等,所以此時可在軟件中設置相應的產品信息參數,然後由用户選擇相應的產品信息,班次信息,批次信息等.

Windows CE版本歷程

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

Windows CE1.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陣容越來越強大。

Windows CE2.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的可使用軟件的種類將會越來越多的。

Windows CE3.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產品出現了。

Windows CE4.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萬行。

Windows CE5.0

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

Windows CE6.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機頂盒等。

Windows CE7.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 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體系結構

基於Windows CE構建的嵌入式系統大致可以分為4個層次,從底層向上依次是:硬件層、OEM層、操作系統層和應用層。不同層次是由不同廠商提供的,一般來説,硬件層和OEM層由硬件OEM廠商提供;操作系統層由微軟公司提供;應用層由獨立軟件開發商提供。
每一層分別由不同的模塊組成,每個模塊又由不同的組件構成。這種層次性的結構試圖將硬件和軟件操作系統應用程序隔開,以便於實現系統的移植,便於進行硬件、軟件、操作系統、應用程序等開發的人員分工合作、並行開發。

Windows CE硬件層

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

Windows CEOEM層

OEM層是邏輯上位於硬件和Windows CE操作系統之間的一層硬件相關代碼。它的主要作用是對硬件進行抽象,抽象出統一的接口,然後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線程優先權級

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 CE線程同步

實時系統必須保證進程和線程同步,例如,如果實時應用的一部分在另一部分獲得最多當前數據前即完成,此應用的管理進程可能不穩定,同步將確保在應用線程間交換正確。
如同其它的 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 提供了一個重要的存儲系統,例如,當某些運行Windows CE的平台提供4MB的物理內存時,Windows CE 支持一個重要的 2GB 的地址空間,每個進程聯接在它自己的32MB 物理空間上,當它需要產生內存分頁中斷(這可能影響線程執行時間),物理內存進行線程代碼或數據內存分頁。
內存分頁輸入輸出,將比實時進程優先級低。在實時進程中內存分頁仍可自由出現,但這要確保後台的實際內存管理贏得實時系統優先權。實時線程應該鎖存在內存中,以防止這些無關緊要的內存分頁阻礙其運行,它們可能會佔用實際內存管理系統。
Windows CE 允許映射,這將阻止多個進程共享同一物理內存,結果將會導致協同進程間或驅動器與映射快速的數據傳送,內存映射能夠戲劇性的增強實時操作。

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 開始之間的延遲,拖延和響應時間中斷響應

Windows CE中斷響應

下文中,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操作:
* 由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創建快捷方式

你沒看錯,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把它定義成系統文件屬性。

Windows CE與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時一般會佔用較大的內存,可以去掉部分無用的功能來減小使用的內存,但是如果不仔細,將引起新的問題。
參考資料