小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Windows CE的學習路線

 麓路 2008-07-06
Q:什么是嵌入式系統(tǒng)?  
國際電氣和電子工程師協(xié)會(IEEE)對嵌入式系統(tǒng)的定義是這樣的:嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助設備、機器和車間運行的裝置”(Devices   used   to   control,   monitor,   or   assist   the   operation   of   equipment,   machinery   or   plants)。
但是這個定義非常的難于理解——句子的主干:“嵌入式系統(tǒng)是裝置”——并且不太會被計算機行業(yè)的人士接受,為什么呢?因為做出這個定義的組織是IEEE,是搞電子的一群人,在他們眼里,當然是Device比較重要。Google一下,還可以找到另外一個定義,我覺得這個定義是比較不錯的:
嵌入式系統(tǒng)是以應用為中心,以計算機技術(shù)為基礎,并且軟硬件是可裁剪的,適用于對功能、可靠性、成本、體積、功耗等有嚴格要求的專用計算機系統(tǒng)。
這樣句子的主干就成了“嵌入式系統(tǒng)是計算機系統(tǒng)”。我們可以通過上面的定義,挖掘嵌入式系統(tǒng)的三個特點:
(1)   嵌入性:由于是嵌入到對象系統(tǒng)中,必須滿足對象系統(tǒng)的環(huán)境要求,如物理環(huán)境(小型)、電氣/氣氛環(huán)境(可靠)、成本(價廉)等要求。通俗一點說,嵌入式系統(tǒng)通常需要與某些特定的應用領(lǐng)域緊密結(jié)合。
(2)   專用性:軟、硬件的裁剪性;滿足對象要求的最小軟、硬件配置等。一般而言,當嵌入式系統(tǒng)開發(fā)結(jié)束之后,它的用途也就被定下來了,一般不會改變。例如,我們不可能用投影儀去聽mp3,雖然投影儀上的硬件足以應付對mp3的處理。
(3)   計算機系統(tǒng):嵌入式系統(tǒng)必須是能滿足對象系統(tǒng)控制要求的計算機系統(tǒng)。與上兩個特點相呼應,這樣的計算機必須配置有與對象系統(tǒng)相適應的接口電路。
總之,嵌入式系統(tǒng)與我們平時接觸的桌面PC還有企業(yè)后臺服務器的差別還是比較明顯的。這些差別會隨著大家的學習而越來越深刻的體會到。
隨著互聯(lián)網(wǎng)技術(shù)和消費類電子產(chǎn)品的高速發(fā)展,嵌入式系統(tǒng)近年來也得到了飛速發(fā)展,近年流行的一個概念,叫“泛嵌入式系統(tǒng)”。意思是嵌入式系統(tǒng)原本的概念早就被延伸了。隨著PDA,智能手機等新興的設備加入到嵌入式的陣營,為PDA、智能手機開發(fā)應用程序從廣泛意義上來說也可以算得上是嵌入式開發(fā),而為此類設備開發(fā)應用程序與為桌面設備開發(fā)應用程序的差別不大,因此,嵌入式開發(fā)與桌面開發(fā)之間的界限越來越模糊了。
 
Q:什么是Windows   CE?
Windows   CE是微軟公司開發(fā)的一個32位、多任務、多線程的嵌入式操作系統(tǒng)。它可以用在手機、機頂盒、智能手持設備、網(wǎng)關(guān)、數(shù)字媒體設備、工業(yè)控制等多種場合。Windows   CE支持X86、ARM、MIPS和SH四種處理器架構(gòu)。并支持WiFi,USB   2.0等新型設備,并具有強大的多媒體功能。
Windows   CE操作系統(tǒng)是模塊化設計的,整個系統(tǒng)被劃分為數(shù)百個模塊,嵌入式系統(tǒng)開發(fā)人員可以根據(jù)系統(tǒng)的需要,來選擇自己需要的模塊,從而達到減小系統(tǒng)體積目的。一個最小的Windows   CE可運行內(nèi)核只需要幾百KB。而一個功能完備的Windows   CE映像也不會超過64MB。此外,微軟開放了部分Windows   CE的源代碼,并且允許開發(fā)人員對這部分源代碼進行修改。
Windows   CE自1996年發(fā)布了第一個版本,目前最新的版本是5.0。它的6.0版本會在2007年發(fā)布。
 
Q:Windows   CE與微軟其他Windows版本之間的關(guān)系怎么樣?
目前,微軟的操作系統(tǒng)基本可以分為三大領(lǐng)域:桌面OS、服務器OS和嵌入式OS。桌面OS也就是我們熟悉的Windows   XP,Windows   9x等。服務器OS包括Server系列,像Windows   2000   Server和Windows   Server   2003。這里就不再詳細介紹了。
嵌入式OS也分為兩類,一類是Windows   XP   Embedded,基本上就是把桌面版本的XP做了組件化。另一類就是Windows   CE。Windows   CE和Windows   XPE統(tǒng)稱Windows   Embedded。
 
Q:什么是Windows   Embedded?什么是Windows   Mobile?什么是Windows   Automotive?
Windows   Embedded是基于Windows的嵌入式操作系統(tǒng)的統(tǒng)稱。目前Windows   Embedded家族包含兩款產(chǎn)品:Windows   CE和Windows   XP   Embedded。
Windows   Mobile是搭建在Windows   CE之上的針對移動領(lǐng)域的家族產(chǎn)品集合。也就是說Windows   Mobile的內(nèi)核還是Windows   CE,只不過在Windows   CE之上搭建了一些針對這個領(lǐng)域一些特有的行業(yè)應用組件,例如手機圖形界面,短信息應用等。目前Windows   Mobile包含Pocket   PC和Smartphone兩款產(chǎn)品。Pocket   PC針對PDA設計。Smartphone針對智能手機設計。
Windows   Automotive也是搭建在Windows   CE之上的針對汽車電子領(lǐng)域的產(chǎn)品。包含了一些汽車電子上比較常用的組件,例如導航系統(tǒng)。
 
Q:Windows   CE與嵌入式Linux等其他嵌入式操作系統(tǒng)如何比較?
由于嵌入式系統(tǒng)的特點而決定的,在嵌入式領(lǐng)域不可能有一款嵌入式操作系統(tǒng)可以一統(tǒng)嵌入式OS的天下。不同的嵌入式操作系統(tǒng)有不同的優(yōu)缺點。嵌入式開發(fā)人員可以根據(jù)應用的具體需要進行選擇。
與其他嵌入式操作系統(tǒng)相比,Windows   CE的優(yōu)點有如下幾點:
學習/使用簡單:微軟提供了方便的IDE和開發(fā)工具,對于OS的定制、裁減、交叉編譯等都相對簡單。此外,Windows   CE的應用程序開發(fā)接口也是Win32   API,與桌面Windows的基本一致。這也方便了桌面Windows開發(fā)人員向Windows   CE嵌入式開發(fā)過渡。
圖形界面優(yōu)秀:這個理由或許是許多人員選用Windows   CE的主要原因。Windows   CE的圖形和多媒體能力是非常優(yōu)秀的,可以方便的支持多種視頻音頻格式。此外還支持DirectX多媒體接口,這對于開發(fā)多媒體應用(例如電子地圖導航、多媒體播放器等)非常方便。
應用集成度高:Windows   CE自帶了很多應用程序,例如Web瀏覽器,多媒體播放器,Office文件察看器等。這對于快速的開發(fā)一款產(chǎn)品相當有用。此外,互聯(lián)網(wǎng)上有數(shù)以萬計的為Windows   CE開發(fā)的應用程序。 

與其他嵌入式操作系統(tǒng)相比,Windows   CE可能有如下缺點:
對硬件要求高:Windows   CE要求硬件必須有32位的CPU和MMU,和數(shù)MB的RAM,雖然Windows   CE可以裁減到幾百K,但是對于一些小型的設備(例如一些航天設備只有64KB的ROM和幾百KB的RAM),Windows   CE依然不適合這類的領(lǐng)域。
實時性和可靠性:雖然Windows   CE在實時性上下了非常大的功夫,并且實時性與桌面Windows相比已經(jīng)有了質(zhì)的提高,但是在一些實時性和高可靠性的場合,Windows   CE可能依然不適合。
授權(quán)費用:Windows   CE是按照license方式來收錢的,根據(jù)用戶選擇的組件不同,每個Windows   CE的license可能要到十幾美元左右。
 
Q:學習Windows   CE的方向有哪些?
與桌面操作系統(tǒng)和服務器操作系統(tǒng)下的軟件開發(fā)不同,為嵌入式操作系統(tǒng)開發(fā)軟件可不只是寫寫應用程序那么簡單。我們常常要深入到內(nèi)核,甚至要深入到硬件。根據(jù)不同的開發(fā)層面,我們把Windows   CE   下的嵌入式軟件開發(fā)者分為下面三類: 

第一類我們稱之為應用程序開發(fā)者。此類開發(fā)人員與傳統(tǒng)的通用操作系統(tǒng)下的應用開發(fā)人員比較相似。他們通常是利用操作系統(tǒng)提供的API (Application   Programming   Interface,應用程序編寫接口),應用程序庫(例如C   運行時庫,Visual   Basic   運行時庫)或應用開發(fā)框架(例如J2EE   與.NET   Framework)來編寫代碼。他們開發(fā)的代碼通常運行在用戶態(tài),無需直接對硬件進行操作。他們所關(guān)注的是通常是應用功能和業(yè)務邏輯的實現(xiàn)。此外,他們的程序通常是直接與最終用戶打交道的。 

第二類是操作系統(tǒng)平臺的提供者。此類開發(fā)人員的主要職責是針對具體的應用環(huán)境,對嵌入式操作系統(tǒng)進行裁減,向第一類開發(fā)人員提供應用程序運行的平臺。他們通常要對所裁減的操作系統(tǒng)的各個模塊的功能了如指掌,這樣才可以針對具體的應用環(huán)境,搭建出合適的平臺,使資源達到最節(jié)省。例如,一個運行在自動取款機上的嵌入式操作系統(tǒng)應不應該加入MPEG4   播放模塊,管理數(shù)碼相機的嵌入式操作系統(tǒng)中“藍牙”網(wǎng)絡協(xié)議棧是否必要……。此外,為了滿足應用需求,他們有可能還需要對所裁減的嵌入式操作系統(tǒng)進行一些擴充,增加嵌入式操作系統(tǒng)所不支持的功能,編寫一些比較上層的驅(qū)動程序通常是必要的。例如,用于視頻會議的嵌入式系統(tǒng)要用到USB   攝像頭的支持,如果該嵌入式系統(tǒng)沒有提供USB   攝像頭的驅(qū)動程序,就需要此類開發(fā)者來提供。在現(xiàn)實的世界中,除了微軟向外界提供Windows   Mobile和Windows   Automotive,還沒有發(fā)現(xiàn)有公司專門定制操作系統(tǒng)。一般這類角色通常都由第一類或第三類開發(fā)人員兼任。 

第三類是內(nèi)核/驅(qū)動開發(fā)者。嵌入式操作系統(tǒng)與通用操作系統(tǒng)最顯著的區(qū)別之一是它的可移植性。一款嵌入式操作系統(tǒng)通??梢赃\行在不同體系結(jié)構(gòu)的處理器和開發(fā)板上。為了使嵌入式操作系統(tǒng)可以在某塊具體的開發(fā)板上運行,嵌入式操作系統(tǒng)的編寫者通常無法一次性完成整個操作系統(tǒng)的代碼,而把一部份與具體硬件設備相關(guān)的代碼作為抽象的接口保留出來,給提供硬件的OEM   廠商來完成。這樣才可以保證整個操作系統(tǒng)的可移植性。這些代碼通常是BSP(Board   Support   Package,板級支持包)的一部分。例如,不同的處理器和開發(fā)板通常都會提供時鐘支持,用來得到當前的時間日期,但是時鐘的實現(xiàn)方式卻不勝枚舉,如何告訴嵌入式操作系統(tǒng)當前的時間,就是此類開發(fā)人員要解決的任務。這一類開發(fā)人員不但要對嵌入式操作系統(tǒng)提供的硬件接口了如指掌,還要對操作系統(tǒng)運行的硬件有極為深入的了解。有可能此類開發(fā)人員會同時身兼軟件工程師和硬件工程師雙種身份——讓嵌入式操作系統(tǒng)在自己設計的硬件平臺上運行起來。
通常第一類軟件開發(fā)者的數(shù)目最多,第三類軟件開發(fā)者的數(shù)目最為稀少。從軟件角度來看,一般把應用開發(fā)稱作上層開發(fā),而把驅(qū)動等系統(tǒng)開發(fā)稱作底層開發(fā)。所以,這三類軟件開發(fā)者的結(jié)構(gòu)通常呈現(xiàn)出“倒三角型”。
就目前國內(nèi)市場上來看,無論是應用開發(fā)還是內(nèi)核/驅(qū)動開發(fā)都有良好的前途(錢途)。國內(nèi)基于Windows   CE的應用程序開發(fā)主要集中在Windows   Mobile這一塊,也就是給Pocket   PC和Smartphone開發(fā)應用程序。此外,還會有一些公司需要開發(fā)Windows   CE的BSP和驅(qū)動程序。從報酬來看自然是后者要高于前者,這個與開發(fā)難度是成正比的。
但是應用開發(fā)與內(nèi)核/驅(qū)動開發(fā)都有自己的知識體系,而且它們的交集并不多。如果兩者兼顧可能需要花費大量的時間與精力。建議學習Windows   CE的人根據(jù)自己的喜好對這兩者進行選擇,對自己的能力有12分自信的則可以“通吃”。
 
Q:學習Windows   CE需要哪些基礎知識?
根據(jù)學習方向的不同,基礎知識的要求也不同。
如果立志做一個優(yōu)秀的Windows   CE下的應用開發(fā)人員,則不需要了解太多的硬件,關(guān)鍵是要對應用程序開發(fā)接口,包含Win32   API,.NET   Compact   Framework等有詳盡的了解。因此,如果有桌面Windows開發(fā)的經(jīng)驗自然是最好的。例如C   /   C++語言,Windows程序設計經(jīng)驗。.NET開發(fā)經(jīng)驗等等。
如果要做一個內(nèi)核/驅(qū)動開發(fā)人員,則一方面需要了解操作系統(tǒng)的基本原理,另一方面需要了解一些硬件的工作原理等知識。因為無論是編寫B(tài)SP還是編寫驅(qū)動程序,都需要直接對硬件打交道。具體而言,可能有如下一些知識:匯編語言(ARM,X86)。微機原理,組成原理,操作系統(tǒng)……
 
Q:目前有哪些比較好的參考書?
由于Windows   CE最近幾年才開始流行,所以市場上的參考書并不是很多,最好的資料還是Windows   CE自帶的幫助文檔。下面幾本書可以讀一下:
《Windows   CE內(nèi)核定制及應用程序開發(fā)》:以Windows   CE   4.2為藍本,基本上是一本platform   builder的用戶手冊。可以熟悉PB,對熟悉內(nèi)核和驅(qū)動幫助不大。
《Windows   CE嵌入式開發(fā)入門--基于Xscale架構(gòu)》:看目錄非常不錯,但是我沒有看過書的具體內(nèi)容。
《WINDOWS   CE實用開發(fā)技術(shù)》:作者是北京交通大學的張冬全老師,張老師在國內(nèi)Win   CE培訓方面很有名氣,可惜我也沒有讀過這本書,看目錄很好。
《Windows   CE.NET系統(tǒng)分析及實驗教程》陳向群老師的作品,主要是分析Windows   CE開放的部分的源代碼,適合想知道CE底層的人閱讀。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多