wince

wince

微軟公司的32位嵌入式操作系統
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 Compac
  • 别名:wince
  • 使用類型:操作軟件
  • 開發者:微軟(Microsoft)
  • 開發商:微軟(Microsoft)
  • 開發時間:1996

定義

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平台而定制出來的産品。

此次發布的改進如下

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版本一起使用,因為它也需要時間控制。

創建快捷方式

快捷方式是可以提供到其他文件鍊接的很小的文件,你可以使用.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文本框中,輸入.lnk,其中;可根據需要輸入,下同。這樣,一個新文件就被創建并打開了

5、在.lnk中,輸入鍊接命令

.lnk文件是一個包含了命令行和被鍊接目标的文本文件,它有一個命令行長度部分和一個命令行。你也可以通過參數傳遞給被鍊接的目标,這是可選的。然而,如果快捷方式模塊在Coredll中被替換了,那麼這個行為也可能會被改變。

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

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

舉個例子,要能過兩個參數運行你的MyApp.exe程序,一個MyApp.lnk文件内可包含這個語句:

40#WindowsMyApp.exe parameter1 parameter2

6、從File菜單中選擇Save As

7、把這個文件保存在BSP的OAK部分以便于編譯進操作系統image中。使用Save As對話框導航到%_WINCEROOT%publicOAKFiles并且選擇Save

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

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

在這個例子中,MyApp.LNK被放入NK的内存塊中,可選的參數S把它定義成系統文件屬性。

區别

嵌入式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時一般會占用較大的内存,可以去掉部分無用的功能來減小使用的内存,但是如果不仔細,将引起新的問題。

相關詞條

相關搜索

其它詞條