嵌入式系统设计和Windows CE
嵌入式系统设计和Windows CE 正是CE和其它全功能的嵌入式系統的時候了。利用相應較高級別的集成、較低的成本來減少任務,以及增加的性能都使得全新的應用成為可能。
在PDA上運行的WindowsCE已經被推出近兩年了,而且與一些大的電子製造商,像Matsushita(Panasonic)和Hitachi等聯合,它也已被選為一些機頂裝置設計和其它消費電器的操作系統。盡管這些消費類的應用是WindowsCE的最可見的應用,但Microsoft及其伙伴正忙于開發上百種其它應用,用于廣泛的傳統或非消費類的嵌入式系統。嵌入式設計為CE贏得了工業控制、數據收集、銷售點、堅固的手持式產品、以及網絡裝置等行業。隨著製造商在未來三到九個月中將這些產品投放市場,CE方案的廣泛範圍將明顯增加。
什麼是WindowsCE
WindowsCE是Windows操作系統家族的最新成員。但它并不是WindowsNT或Windows9x的一部份或縮減版本。WindowsCE擁有它自己的系統結構,具備獨立開發的內核和獨一無二的設備驅動程序模型。CE不同于它的臺式兄弟,它最初就是為佔用較少內存的應用程序、即用操作、微處理器可移植性以及電源守恆而設計的。在應用程序開發和功能特性方面,CE還享有WindowsNT和Windows9x的關鍵部分。
WindowsCE支持一個用于臺式操作系統的具有600多個Win32應用程序界面(ApplicationProgramInterface,API)的子集,包括內置聯網技術,并提供相同的部件技術(包括COM/OLE和動態鏈接庫)。此外,CE支持相同的臺式開發工具VisualC++,VisualBasic和VisualJava并支持Microsoft擴展C++,包括結構化異常處理。
為何使用WindowsCE?
正是CE和其它全功能的嵌入式系統的時候了。利用相應較高級別的集成、較低的成本來減少任務,以及增加的性能都使得全新的應用成為可能,也使現有應用中增加的互連性和更豐富的功能特性更加靈活。嵌入式系統的複雜性和差異性正逐漸從硬件轉移到軟件上。如果基于合適的軟件平臺,這些面向軟件的系統就會提供更大的靈活性以適應市場需求,使各種生產線趨于通用,并減少投放市場的時間。CE比其競爭者在更大程度上著重于軟件和軟件開發者。
WindowsCE為嵌入式系統開發者提供下列顯著優勢:
1.Win32API。WindowsCE與WindowsNT和Windows9x使用相同的基本API。這些是由全球兩百多萬的軟件開發者使用的相同API。API的普遍傳播使得開發隊伍能夠平衡開發者的技能,以減少重復訓練的時間并增加對現有開發者的接近機會。對于嵌入式系統的軟件部份增加需求分析意味著軟件開發者部分是降低開發成本和加快投放市場時間的關鍵。
2.開發工具。用于Win發工具和技術與用于WindowsNT和Windows9x的相同。用于CE的現有工具包括VisualC++,VisualBasic和VisualJava;這些都是運行于WindowsNT系統上的,大多數軟件開發者一般都可得到它們。這又一次說明,開發者的生產能力是直接由工具、技術和開發系統的通用性而增長的。
3.軟件集成。WindowsCE是一種集成的操作系統,它包括圖形、窗口管理和聯網技術,以及基本的操作系統支持,例如定時器、中斷處理和同步原語。Microsoft已經將這些部件集成在一起,并已測試了這個集成軟件系統。利用WindowsCE,嵌入式系統開發者不必從多家供應商處尋找這些部件,然后將它們集成在一起并測試整個系統。
4.處理器支持。盡管WindowsCE是一個年輕的操作系統,但它已支持廣泛的微處理器體系結構,包括CISC和RISC。目前,WindowsCE支持Hitachi的SH、MIPS、PowerPC、ARM和x86體系結構通常每種結構系列都有多個變種。CE嵌入式設計者擁有廣泛的微處理器可供挑選,這使你在優化系統的性能、電源消耗、組件大小、成本以及集成外設方面能夠做出最佳選擇。開發工具和操作系統部件在所有體系結構上表現一致,因此,這就為你在系統之間平衡軟件提供了靈活性,即使在基礎的微處理器不相同時也是如此。
5.第三方支持。將焦點放在軟件上就鼓勵了第三方獨立軟件供應商(ISV,independentsoftwarevendor)去開發和銷售能在各種設計之間平衡的軟件。Microsoft通過它的市場佔有、現有的ISV關系和銷售努力,已使ISV在CE平臺方面產生了巨大的興趣。ISV軟件已日益增多,有開發工具、設備驅動程序、應用程序和組件。這又一次說明了嵌入式設計者擁有平衡現有工作、減少項目風險、開發成本和投放市場時間的機會。
WindowsCE是以軟件為中心的嵌入式開發模型。這種以軟件為首的模型產生了大量的部件和應用程序,開發者就有時間來增加每種開發項目的作用。Microsoft支持其現有的開發者、工具和技術基礎的能力意味著WindowsCE將繼續享有其競爭者沒有的顯著優勢。
供CE用的嵌入式工具箱
EmbeddedToolkit(ETK,嵌入式工具箱)是用于嵌入式WindowsCE開發的軟件開發箱,它支持系統級和應用程序的開發。ETK由VisualC++(VC++)開發環境、編程工具、以及二進制形式的WindowsCE操作系統部件組成。該工具箱包括交叉編譯器、匯編程序、以及遠程調試程序,這些調試程序用于集成到VC++IDE(IntegratedDevelopmentEnvironment,集成開發環境)的所有受支持的微處理器。
為某個特定的微處理器結構進行目標編譯和調試僅僅是在VC++菜單上改變某個設置。在一臺通過串行、并行或網絡連接與一臺單獨的WindowsCE目標設備相連的WindowsNT主機系統上完成開發。在主機上編寫并編譯代碼,然后通過互連將代碼下載到目標上。調試是遠程進行的,也是通過互連。
用于嵌入式設計的CE操作系統是從Microsoft所提供的部件和設計者所開發的部件中建立起來的。基本部件以庫的形式或動態鏈接庫(DLL,dynamiclinklibrary)的形式提供。在某些情況下,通過鏈接系統指定的部件(設備驅動程序和系統函數)到基本庫部件來形成可執行的圖象和DLL。在一個索引文件中選擇將包含在最終操作系統建立中的程序部件,然后執行一個編譯圖象程序來創建WindowsCEROM圖象。該程序執行許多函數,這些函數就象典型的臺式裝載函數,例如圖象重定位和DLL的匯集。最終的ROM圖象適合于XIP(executeinplace,現場執行)或RAM執行。
ETK還包括一個用于應用程序開發的擴展仿真環境。仿真器在臺式電腦上執行WindowsCE的虛擬版本,允許在缺乏WindowsCE目標設備的情況下在本地運行編譯-調試循環。
仿真環境通過減少程序下載時間和遠程調試來加速開發周期。而且,仿真程序還可用于在獲得工作原型硬件之前開發應用程序軟件,減少開發過程的順序化。BSquare估計對于典型的應用程序來說,90 的開發都可在仿真環境中完成。剩下的10 (調試和測試)在實際的目標硬件上完成。
開發周期
以下是成功開發一個WindowsCE嵌入式系統的理想化過程的步驟(忽略了定義和銷售產品的主要步驟):
設計WindowsCE硬件系統;
將WindowsCE移植到目標硬件;
創建用戶界面;
編寫軟件應用程序層。
OEM也需要與Microsoft或像BSquare這類Microsoft認可的銷售商協作,以獲得WindowsCE許可。
硬件設計方面的大部份是由產品需求決定的。但是CE的某些要求和考慮將影響到硬件系統的設計。例如,設計者在所需求的WindowsCE版本中選擇一種由Microsoft支持的微處理器就很重要。設計者必須考慮一些用于CE的要求,包括一個間隔定時器和計年時鐘。
對于XIPROM、RAM和非易失存儲器的內存要求是針對應用程序的,很大程度上取決于所要求的操作系統部件和軟件應用程序。設計者需要考慮存儲器持久性或非易失存儲器的要求,因為CE不是磁碟操作系統;相反,它將數據存儲在可能位于RAM或非易失存儲器的目標存儲區內。對于擁有直接用戶界面的設備而言,設計者可以選擇觸摸屏的指示筆或手指輸入,或選擇鼠標輸入。(CE支持兩者。)此外,CE允許你選擇LCD或顯示器顯示。
移植WindowsCE
將WindowsCE移植到硬件上包括如下步驟:
編寫引導程序
編寫OEM適配層(OEMAdaptionLayer,OAL)
編寫設備驅動程序。
1.引導程序。引導程序是在系統上電時(或在重新啟動之后)執行的一段代碼。引導程序負責初始化硬件系統,裝載WindowsCE,然后啟動執行。它可以是一個中等復雜程度的軟件,這取決于所要求的系統配置和所包含的調試支持的數量。引導程序將建立初始的微處理器配置,配置任何系統板ASIC,可能定義高速緩存和存儲器(例如DRAM定時器)的尺寸并配置它們,以及執行總線配置(例如PCI總線配置)。引導程序的很多功能類似于臺式PC上的BIOS的初始化功能。
2.OAL.OAL是系統和微處理器專用的代碼中的一小部份,它抽象化系統級的硬件功能(例如中斷處理,高速緩存控制,硬件定時器和內核時鐘)。
3.設備驅動程序。設備驅動程序提供外設和操作系統之間的抽象概念。WindowsCE驅動程序能夠支持廣泛的設備,包括輸入設備、顯示設備、聲音發生器、網絡接口、以及通信設備。開發驅動程序所要求的工作範圍取決于設備本身的復雜性、是否使用現成的驅動程序、以及所需求的驅動程序數量。若想為該平臺創建一組已完全調試的設備驅動程序則需要一定量的有效工作。
設計者有多種選擇以縮短WindowsCE端口的開發周期。第三方的ISV提供源代碼工具,為特定的微處理器設計供應引導程序、OAL和設備驅動程序。BSquare目前為AMDElanSC400、CyrixMediaGX系列、StrongARM1100、MotorolaPPC821系列、AMD-K6、NEC4300和HitachiSH7709提供工具。衹要處理器被推出而且市場成熟,就會開發額外的工具。
用戶界面、桌面或外圍是CE嵌入式設計的關鍵決策。桌面是調出和控制應用程序的框架,可用的控制是定義系統個性的重要決策。設計者可選擇獨立開發外圍,引導至某個單一用戶可視的應用程序,或購買某種界面建立程序來加速開發。用戶界面的形式和要求在很大程度上取決于應用程序。目前,唯一現成的界面建立程序是BSquare的CEEmbeddedDesktop。
WindowsCE系統是由運行于其操作系統之上的應用程序定義的。目標是讓設計者利用包含在產品中的軟件應用程序的結合將他們的時間花在定義和區分他們的產品上。這些程序中有些可從ISV處購買,有些則需利用WindowsCEETK來開發和移植。
了解更多
你可以找到WindowsCE的培訓課程。有些課程針對于WindowsCE的應用程序級的開發,而有些則針對于移植CE的系統級開發。此外,還有一些資料豐富的Web網址;WindowsCE網址http://www.microsoft.com/windowsce/embedded/default.asp提供了一些有關設計和系統屬性的技術性文章,以及一個很好的FAQ(常見問題回答)。BSquare網址(www.bsquare.com)也提供了有關WindowsCE設計的詳細的技術文章,以及技術產品和服務信息。
最后,已在WindowsCE方面受過訓練的系統集成人員也是減少學習時間的寶貴資源。你可以向這類專家咨詢最初的項目,這樣可以節省很多時間。已經做了大量的研究工作,工程師和設計者們可以立即把這一點作為大幅度減少投放市場時間的手段。