提高定制嵌入式設(shè)備的開(kāi)發(fā)效率,您的操作系統(tǒng)能滿(mǎn)足需要嗎
導(dǎo)語(yǔ):應(yīng)用開(kāi)發(fā)人員不需要每次都對(duì)他們編寫(xiě)的一項(xiàng)應(yīng)用進(jìn)行重復(fù)的勞動(dòng)。工具和應(yīng)用開(kāi)發(fā)架構(gòu)已獲得了長(zhǎng)足的發(fā)展
應(yīng)用開(kāi)發(fā)人員不需要每次都對(duì)他們編寫(xiě)的一項(xiàng)應(yīng)用進(jìn)行重復(fù)的勞動(dòng)。工具和應(yīng)用開(kāi)發(fā)架構(gòu)已獲得了長(zhǎng)足的發(fā)展,以至于應(yīng)用開(kāi)發(fā)人員能夠集中精力創(chuàng)造他們的附加價(jià)值,而不需要擔(dān)心底層的應(yīng)用架構(gòu)和細(xì)節(jié)。那么嵌入式系統(tǒng)的開(kāi)發(fā)是否也朝著同樣的方向發(fā)展?
開(kāi)發(fā)人員需要利用有限的時(shí)間和/或資源來(lái)創(chuàng)建硬件/軟件解決方案,這是存在的情況;開(kāi)發(fā)人員應(yīng)該將時(shí)間和精力集中在創(chuàng)造產(chǎn)品的附加價(jià)值方面,而不是底層的細(xì)節(jié)。
嵌入式軟件開(kāi)發(fā)的發(fā)展歷程
回顧過(guò)去的幾年,嵌入式系統(tǒng)通常是由工程師自行利用匯編語(yǔ)言設(shè)計(jì),并且在定制硬件上運(yùn)行,不需要任何通信技術(shù)或安全架構(gòu)(時(shí)代已經(jīng)改變?。_@些系統(tǒng)會(huì)像獨(dú)立設(shè)備一樣運(yùn)行,在許多情況下甚至不用操作系統(tǒng)的支持;事實(shí)上,這些系統(tǒng)只會(huì)運(yùn)行一個(gè)專(zhuān)用的單任務(wù)或進(jìn)程(現(xiàn)在的設(shè)備當(dāng)然也是如此),開(kāi)發(fā)人員將負(fù)責(zé)系統(tǒng)的每個(gè)方面、系統(tǒng)與底層硬件的互動(dòng)以及用戶(hù)的輸入和輸出(若有必要)。設(shè)備的每個(gè)方面都需要由開(kāi)發(fā)人員進(jìn)行編碼。一般來(lái)說(shuō),應(yīng)用開(kāi)發(fā)人員必須非常熟悉底層硬件,而且或許還曾經(jīng)參與硬件的設(shè)計(jì)。
隨著時(shí)間的推移,開(kāi)發(fā)人員不再使用匯編語(yǔ)言自行設(shè)計(jì)操作系統(tǒng)程序,他們改用C/C++等高級(jí)語(yǔ)言或利用軟件庫(kù)開(kāi)發(fā)字符串處理、文件I/O、圖形、音頻和視頻等常用的軟件。許多知名的軟件開(kāi)發(fā)工具都提供軟件庫(kù)以協(xié)助應(yīng)用軟件開(kāi)發(fā),如Borland OWL和Microsoft Foundation Classes (MFC) 就是應(yīng)用開(kāi)發(fā)軟件庫(kù)的很好例子,它們讓開(kāi)發(fā)人員擺脫操作系統(tǒng)API的糾纏,并且提供各種函式和類(lèi)別來(lái)支持常見(jiàn)的程序設(shè)計(jì)工作。我們可以將這些軟件庫(kù)視為操作系統(tǒng)和應(yīng)用軟件之間的中介層,但在許多情況下應(yīng)用開(kāi)發(fā)人員仍然需要控制對(duì)象的生命周期、線程和內(nèi)存管理。
許多應(yīng)用開(kāi)發(fā)軟件庫(kù)其實(shí)就是應(yīng)用軟件和底層操作系統(tǒng)之間的中介層,而許多軟件庫(kù)還提供原代碼以方便設(shè)計(jì)人員了解軟件庫(kù)的工作方式,并通過(guò)檢查源代碼來(lái)確定軟件庫(kù)調(diào)用本地操作系統(tǒng)API的速度有多快。應(yīng)用開(kāi)發(fā)軟件庫(kù)提供原代碼的另一優(yōu)點(diǎn)是設(shè)計(jì)人員可借此擴(kuò)大軟件庫(kù)功能。只要將應(yīng)用開(kāi)發(fā)和操作系統(tǒng)抽象模型往前推進(jìn)一步,我們就能得到 (在多數(shù)情況下) 與操作系統(tǒng)和處理器無(wú)關(guān)的應(yīng)用開(kāi)發(fā)模型,Java和.NET就是很好的例子。在這個(gè)模型里,應(yīng)用開(kāi)發(fā)人員與底層操作系統(tǒng)的距離會(huì)更遠(yuǎn),對(duì)象生命周期是由應(yīng)用軟件的運(yùn)行時(shí)間環(huán)境(JVM或.NET運(yùn)行時(shí)間)、類(lèi)別、對(duì)象、事件,以及與底層操作系統(tǒng)API沒(méi)有多大關(guān)系的方法來(lái)處理的。從C/C++轉(zhuǎn)向管理應(yīng)用開(kāi)發(fā)將帶來(lái)更多好處,這就像應(yīng)用開(kāi)發(fā)人員從匯編語(yǔ)言轉(zhuǎn)到C/C++語(yǔ)言后,就能加快產(chǎn)品開(kāi)發(fā)的腳步一樣。
底層硬件的抽象化是將應(yīng)用軟件開(kāi)發(fā)從匯編語(yǔ)言通過(guò)C/C++轉(zhuǎn)換到管理應(yīng)用開(kāi)發(fā)環(huán)境的附帶效果之一。應(yīng)用開(kāi)發(fā)人員多半不需知道硬件細(xì)節(jié),硬件抽象層則可搭配設(shè)備驅(qū)動(dòng)程序?qū)?yīng)用軟件與實(shí)際硬件隔開(kāi)。例如,一個(gè)串行端口可能作為UART或FPGA來(lái)執(zhí)行,但這些硬件的相關(guān)問(wèn)題都由驅(qū)動(dòng)程序負(fù)責(zé)處理,應(yīng)用軟件只需要使用串行端口即可,完全不需要知道它的硬件細(xì)節(jié)。圖形、音頻和許多其它外圍設(shè)備也是如此。
嵌入式操作系統(tǒng)的選擇非常重要
但這與嵌入式操作系統(tǒng)的發(fā)展有什么關(guān)系呢?
嵌入式設(shè)備的開(kāi)發(fā)人員可以選擇所需的設(shè)備開(kāi)發(fā)工具和操作系統(tǒng)。在選擇硬件、操作系統(tǒng) (如果需要)和應(yīng)用開(kāi)發(fā)工具時(shí),需要進(jìn)行一個(gè)平衡。相關(guān)因素可能很復(fù)雜,決策過(guò)程當(dāng)然是以商業(yè)和技術(shù)考慮為主,但最后多半仍然以時(shí)間、資源和成本為重點(diǎn)。凡是能減少時(shí)間、資源或成本的做法對(duì)于您的應(yīng)用開(kāi)發(fā)計(jì)劃都有好處。
您的嵌入式系統(tǒng)價(jià)值在那里?是運(yùn)行設(shè)備的用戶(hù)界面、應(yīng)用軟件、程序或服務(wù),還是為設(shè)備傳送和接收數(shù)據(jù)的服務(wù)器?大家都知道研發(fā)人員應(yīng)該將時(shí)間用于增加產(chǎn)品價(jià)值的應(yīng)用軟件和技術(shù)上,但線程管理、內(nèi)存管理、網(wǎng)絡(luò)堆棧、媒體播放器、網(wǎng)絡(luò)瀏覽器和各種服務(wù)器技術(shù)該怎么辦?這些技術(shù)通常是由操作系統(tǒng)提供,您的研發(fā)團(tuán)隊(duì)是否應(yīng)以數(shù)月的寶貴時(shí)間開(kāi)發(fā)出一套比市場(chǎng)上TCP/IP協(xié)議堆棧小5kb和快10%的TCP/IP協(xié)議堆棧?或是將時(shí)間用于更新操作系統(tǒng)的網(wǎng)絡(luò)服務(wù),以便符合最新的規(guī)格?
問(wèn)題在于讓您的研發(fā)團(tuán)隊(duì)將時(shí)間用于編寫(xiě)、開(kāi)發(fā)、測(cè)試和維護(hù)操作系統(tǒng)層級(jí)的軟件組件是不是一種好的做法?答案或許不是!
一個(gè)必須回答的問(wèn)題是:“發(fā)展嵌入式系統(tǒng)時(shí),我要將時(shí)間和資源用在什么地方?”這個(gè)看似簡(jiǎn)單的問(wèn)題當(dāng)然有很多答案。我們可以將時(shí)間用于硬件方面,或許為了您的嵌入式系統(tǒng)編寫(xiě)硬件抽象層代碼(如果需要)、以構(gòu)建操作系統(tǒng)基礎(chǔ)架構(gòu)代碼和其它低水平的支持代碼,或者您的團(tuán)隊(duì)也會(huì)將時(shí)間用于高水平、定制的最終用戶(hù)體驗(yàn)方面,并將您的產(chǎn)品特定的知識(shí)產(chǎn)權(quán)添加到現(xiàn)有的操作系統(tǒng)中。
希望您能看到應(yīng)用開(kāi)發(fā)技術(shù)進(jìn)步和嵌入式系統(tǒng)設(shè)計(jì)與發(fā)展方向之間的相似處。
有多種操作系統(tǒng)可以選擇?;蛟S您在使用幾年前開(kāi)發(fā)且在不斷發(fā)展的自主開(kāi)發(fā)的操作系統(tǒng),或許您正在使用一個(gè)商用“臺(tái)式”操作系統(tǒng)、一個(gè)商用嵌入式操作系統(tǒng),或者在使用一個(gè)開(kāi)放資源的操作系統(tǒng)。無(wú)論是哪種情況,您都要做出許多評(píng)估才能為您的嵌入式設(shè)備找出最合適的操作系統(tǒng)。評(píng)估內(nèi)容包括程序大小、處理器支持、本地硬實(shí)時(shí)支持、硬件設(shè)備支持的范圍 (或參考硬件)、源代碼存取,以及是否有開(kāi)發(fā)商和合作伙伴可以幫助您進(jìn)行嵌入式系統(tǒng)的開(kāi)發(fā)。
上市時(shí)間越來(lái)越重要;加快上市時(shí)間的方法之一是將時(shí)間用于提高設(shè)備的附加價(jià)值部份。但是操作系統(tǒng)要怎么辦?嵌入式操作系統(tǒng)有各種不同的類(lèi)型和大小,有些操作系統(tǒng)僅提供原代碼,研發(fā)人員必須先建立一套工具鏈,然后才開(kāi)始發(fā)展設(shè)備;還有些操作系統(tǒng)則提供完整的操作系統(tǒng)鏡像文件,研發(fā)人員可直接開(kāi)發(fā)應(yīng)用軟件。前者讓您將寶貴的人力和時(shí)間浪費(fèi)在操作系統(tǒng)和工具鏈的建立及配置,后者才能加快設(shè)備的開(kāi)發(fā)和上市時(shí)間。
讓我們分析兩種選擇,第一種是使用市場(chǎng)上銷(xiāo)售的操作系統(tǒng)和現(xiàn)成的參考電路板(畢竟人們?cè)缇驮诎l(fā)展以CPM/80、MS-DOS、OS/2和Windows 3.x到Windows XP為基礎(chǔ)的嵌入式設(shè)備)。這種做法的優(yōu)點(diǎn)是讓您得到操作系統(tǒng)的所有功能,只需把您的應(yīng)用、服務(wù)和驅(qū)動(dòng)程序加在操作系統(tǒng)之上就算大功告成。這種做法的缺點(diǎn)同樣是讓您得到操作系統(tǒng)的所有功能,這表示您的操作系統(tǒng)會(huì)比您所需還要龐大,其中包含許多您的嵌入式系統(tǒng)不會(huì)用到的功能(媒體播放器、網(wǎng)絡(luò)瀏覽器、網(wǎng)絡(luò)功能等),而且無(wú)法針對(duì)嵌入式系統(tǒng)應(yīng)用進(jìn)行定制(例如只能從只讀媒體引導(dǎo))。
第二種選擇是使用一個(gè)能夠進(jìn)行定制、可滿(mǎn)足您的嵌入式設(shè)計(jì)需要的操作系統(tǒng),您可把它稱(chēng)為一種組件化的操作系統(tǒng)。或許閃存引導(dǎo)能力、快速引導(dǎo)時(shí)間、支持多種處理器架構(gòu)、本地硬實(shí)時(shí)支持和程序大小等對(duì)于您的設(shè)計(jì)都很重要。除此之外,還有許多其它理由讓功能完整的臺(tái)式操作系統(tǒng)或服務(wù)器市場(chǎng)專(zhuān)用的操作系統(tǒng)不適合您的嵌入式設(shè)備?;蛟S能夠提供設(shè)備相關(guān)功能的操作系統(tǒng)正是滿(mǎn)足各種嵌入式系統(tǒng)市場(chǎng)需求的理想選擇,微軟的Windows CE和Windows XP Embedded就是組件化嵌入式操作系統(tǒng)的最好實(shí)例,它們可以通過(guò)所支持的處理器、硬件、實(shí)時(shí)、網(wǎng)絡(luò)和媒體技術(shù)彼此互補(bǔ)搭配。
定制不表示您一定要花很多時(shí)間或克服許多困難才能完成操作系統(tǒng)配置以滿(mǎn)足您的設(shè)備需求。典型的Windows XP Embedded設(shè)計(jì)從概念到交貨通常僅需12-14周。
Windows XP Embedded如何發(fā)揮威力?
安裝Windows XP Professional SP2大約需要1.5GB的硬盤(pán)空間。這是因?yàn)閃indows XP是一種通用臺(tái)式操作系統(tǒng),支持廣泛的硬件設(shè)備(不是即插即用?。┖妥罱K用戶(hù)應(yīng)用軟件。微軟還為嵌入式系統(tǒng)提供專(zhuān)用的Windows XP Professional SP2操作系統(tǒng),稱(chēng)為Windows XP Embedded。這套組件化操作系統(tǒng)大約能分割為12,000種軟件組件、9,000個(gè)驅(qū)動(dòng)程序以及3,000種系統(tǒng)功能。嵌入式系統(tǒng)開(kāi)發(fā)人員可選擇嵌入式設(shè)備所需的個(gè)別組件或技術(shù)。通過(guò)這種方式,您不用安裝整套操作系統(tǒng)就能得到網(wǎng)絡(luò)、多媒體和安全功能的所有最新優(yōu)點(diǎn)。
Windows XP Embedded和Windows XP Professional一樣,都是使用以x86處理器和PC架構(gòu)為基礎(chǔ)的硬件電路。當(dāng)然,它們引導(dǎo)媒體的要求完全不同。Windows XP Embedded可從網(wǎng)絡(luò)(PXE引導(dǎo)t)、光盤(pán)(El-Torito)、閃存或硬盤(pán)進(jìn)行引導(dǎo)。由于操作系統(tǒng)已經(jīng)組件化,您可以選擇適當(dāng)?shù)某绦虼笮?lái)滿(mǎn)足設(shè)備的需求。
廣泛的硬件和軟件支持是使用Windows XP Embedded操作系統(tǒng)的優(yōu)點(diǎn)之一,只要操作系統(tǒng)鏡像文件包含適當(dāng)?shù)牟僮飨到y(tǒng)依賴(lài)性,任何能在Windows XP上運(yùn)行的驅(qū)動(dòng)程序就能在Windows XP Embedded上運(yùn)行。就此而言,依賴(lài)性是開(kāi)發(fā)人員必須考慮的重要問(wèn)題之一。
您在建立嵌入式操作系統(tǒng)鏡像文件時(shí)或許已經(jīng)知道您的用戶(hù)界面、應(yīng)用軟件和服務(wù)都要依賴(lài)特定的操作系統(tǒng)功能,但增加這些功能和熟悉所有的操作依賴(lài)性卻需要很長(zhǎng)時(shí)間。Windows CE和Windows XP Embedded所提供的工具都包含許多操作系統(tǒng)功能(稱(chēng)為組件),這些組件含有所需的依賴(lài)性信息。例如,假設(shè)您正在使用Windows CE,并想把80kb左右的HTTP Web Server加入操作系統(tǒng)。您只要從組件目錄把這個(gè)組件加入到您的工作區(qū) (workspace),該組件的依賴(lài)性信息也會(huì)自動(dòng)地進(jìn)行添加。
使用組件、依賴(lài)性和操作系統(tǒng)配置模板就能迅速完成嵌入式操作系統(tǒng)的配置和測(cè)試。例如以x86為基礎(chǔ)的參考電路板可在30分鐘內(nèi)完成Windows XP Embedded操作系統(tǒng)的配置、構(gòu)建和引導(dǎo)。Windows CE Emulator或相關(guān)BSP所提供的Windows CE 5.0操作系統(tǒng)也能在30分鐘內(nèi)完成配置、構(gòu)建和引導(dǎo)。
我們看到應(yīng)用開(kāi)發(fā)人員可以通過(guò)各種應(yīng)用開(kāi)發(fā)工具和架構(gòu)加速產(chǎn)品上市的時(shí)間,使用組件化的嵌入式操作系統(tǒng)也能將產(chǎn)品更快地推出。以小觀大,設(shè)計(jì)人員只要把最新的應(yīng)用開(kāi)發(fā)工具和程序架構(gòu)以及最新的組件化嵌入式操作系統(tǒng)融為一體,必定能夠發(fā)揮出驚人的威力!
中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:
凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
下一篇:
制造業(yè)智能化最新報(bào)告出爐,Wonderware方案一枝獨(dú)秀
近日,Aberdeen集團(tuán)公司的制造業(yè)智能化的最新基準(zhǔn)報(bào)告中發(fā)現(xiàn),在大量關(guān)鍵的制造業(yè)領(lǐng)域里