32位嵌入式系統(tǒng)——IT從業(yè)人員的機遇與挑戰(zhàn)
近幾年來,隨著人們對嵌入式設(shè)備越來越高的應(yīng)用需求,以32位嵌入式微處理器和嵌入式操作系統(tǒng)為核心的嵌入式技術(shù)逐漸深入到各個應(yīng)用領(lǐng)域,雖然以8位機為核心的嵌入式技術(shù)也在不斷的發(fā)展,但由于其體系架構(gòu)的局限性,已無法滿足當(dāng)前和未來高性能嵌入式系統(tǒng)的應(yīng)用與發(fā)展需求。同時,激烈的市場競爭和技術(shù)競爭,要求產(chǎn)品的開發(fā)周期越來越短,顯然,傳統(tǒng)的嵌入式軟、硬件技術(shù)和開發(fā)手段已遠遠落后于時代的需求。
1、我國嵌入式技術(shù)及應(yīng)用現(xiàn)狀
自上個世紀七十年代提出嵌入式系統(tǒng)的概念以來,嵌入式系統(tǒng)以其高性能、低功耗、低成本和小體積等優(yōu)勢,獲得了飛速的發(fā)展與廣泛的應(yīng)用,然而,由于受到當(dāng)時硬件水平的制約,嵌入式系統(tǒng)的軟件開發(fā)方式與以PC為代表的通用計算機系統(tǒng)的軟件開發(fā)方式一開始就完全不同。當(dāng)時的嵌入式系統(tǒng)硬件平臺一般都是基于8位機的簡單系統(tǒng),系統(tǒng)的硬件設(shè)計者通常也是系統(tǒng)的軟件開發(fā)者,編程語言絕大多數(shù)也以匯編語言為主,硬件設(shè)計者在進行硬件系統(tǒng)的設(shè)計時,同時會考慮程序如何編寫,而在進行程序設(shè)計時,也會考慮與硬件的配合,因此,嵌入式系統(tǒng)的設(shè)計開發(fā)人員一般都非常了解系統(tǒng)的底層軟、硬件細節(jié)。由于軟、硬件條件的制約,這些系統(tǒng)一般都用于實現(xiàn)一個或幾個簡單的數(shù)據(jù)采集與控制功能,程序結(jié)構(gòu)多使用簡單的控制循環(huán),配合中斷服務(wù)來實現(xiàn)對外界請求的相應(yīng),不采用操作系統(tǒng),所以,他們對通用計算機基于操作系統(tǒng)的軟件開發(fā)工具和技術(shù)的理解與掌握比較有限。而與此同時,另一大批人則對以Microsoft Windows、Linux為代表的操作系統(tǒng)技術(shù)深深著迷,醉心于在這些操作系統(tǒng)上的應(yīng)用程序開發(fā),他們感興趣的東西是如何使用諸如VB、VC、Java之類的高級編程語言,在操作系統(tǒng)平臺上實現(xiàn)更復(fù)雜和更精彩的應(yīng)用,而不太關(guān)心系統(tǒng)的更多的硬件細節(jié)。傳統(tǒng)的觀點一般將前者歸類為硬件開發(fā)人員,而后者通常被稱之為軟件程序員。這兩大群體在很長一段時間幾乎也是井水不犯河水,各自有著不同的開發(fā)應(yīng)用領(lǐng)域。
然而,隨著計算機軟、硬件技術(shù)的飛速發(fā)展和人們的應(yīng)用需求越來越高,特別是隨著以ARM、PowerPC、MIPS等為代表的高性能嵌入式微處理器普遍使用,使傳統(tǒng)意義上的嵌入式系統(tǒng)的概念發(fā)生了很大的變化。以基于8位機的嵌入式系統(tǒng)為例,當(dāng)應(yīng)用系統(tǒng)隨著需求的增加變得越來越復(fù)雜、使用范圍變得越來越廣泛時,系統(tǒng)每增加一項新的功能,都會帶來應(yīng)用軟件結(jié)構(gòu)的變化,甚至需要完全重新設(shè)計,而這種問題在基于操作系統(tǒng)的通用計算機上就小得多,顯然,沒有操作系統(tǒng)的支持已經(jīng)成為傳統(tǒng)的嵌入式系統(tǒng)的最大的缺陷,但由于8位機系統(tǒng)有限的運算能力和存儲容量,不足以支持操作系統(tǒng)的運行,因此,在很長一段時間以來,人們盡管已經(jīng)意識到這個問題的存在,但也沒有更好的解決辦法。
自上個世紀九十年代以來,嵌入式系統(tǒng)的設(shè)計提出了“片上系統(tǒng)”(SoC,System on Chip)的概念,目前,嵌入式系統(tǒng)的硬件設(shè)計已進入以SoC為核心的階段,顯然,SoC為高性能的嵌入式系統(tǒng)開發(fā)的提供了功能豐富的硬件平臺,而這些平臺強大的運算能力和存儲能力,足以支持復(fù)雜嵌入式操作系統(tǒng)(EOS,Embedded Operating Systems)的運行。
嵌入式操作系統(tǒng)的發(fā)展是伴隨的嵌入式微處理器性能的不斷提高而逐漸發(fā)展起來的,最近幾年來,嵌入式操作系統(tǒng)的應(yīng)用領(lǐng)域不斷擴大,其原因主要是嵌入式系統(tǒng)軟件開發(fā)復(fù)雜度的增加,同時,高性能的嵌入式微處理器的推廣使用,為嵌入式操作系統(tǒng)的可靠運行提供了硬件平臺的保障。目前,在嵌入式系統(tǒng)中使用的操作系統(tǒng)種類也非常繁多,其中,市場份額占有比較高的有Linux/uClinux、Windows CE、VxWorks、QNX、 uC/OS II等。嵌入式系統(tǒng)主要可分為兩大類,一類是商業(yè)級的嵌入式操作系統(tǒng),這類操作系統(tǒng)一般都經(jīng)過較長時間的使用,且都由一些大公司開發(fā)與維護,在性能或服務(wù)上都有較好的保證,如Windows CE、VxWorks、QNX等,但這類操作系統(tǒng)一般價格比較昂貴,且都不公開核心代碼,這就與嵌入式系統(tǒng)用戶定制性較強、升級換代快等特點相違背,因此其應(yīng)用范圍受到了很大的限制。另一類則是源代碼開放的嵌入式操作系統(tǒng),如Linux/uClinux、uC/OSII等,盡管這類系統(tǒng)在技術(shù)支持和服務(wù)上有所欠缺,且對開發(fā)人員有較高的要求,但由于用戶可定制性好、具有可持續(xù)開發(fā)的優(yōu)勢,從目前看來,其應(yīng)用范圍反而比商業(yè)嵌入式操作系統(tǒng)廣泛得多。
2、IT從業(yè)人員面臨的機遇與挑戰(zhàn)
隨著信息技術(shù)、網(wǎng)絡(luò)通信技術(shù)的高速發(fā)展,嵌入式技術(shù)會深入到越來越多的應(yīng)用領(lǐng)域,與實際應(yīng)用緊密結(jié)合且技術(shù)高度分散的嵌入式技術(shù),為我們國內(nèi)一大批優(yōu)秀的硬件系統(tǒng)工程師和軟件設(shè)計人員,提供了新的舞臺和發(fā)展空間,同時也為我國的IT技術(shù)發(fā)展提供了難得的歷史機遇,因此,提高我國整體的嵌入式技術(shù)開發(fā)與應(yīng)用水平,掌握一定的開發(fā)核心技術(shù),既是我國IT技術(shù)發(fā)展的需要,也是廣大IT從業(yè)人員的責(zé)任。
眾所周知,任何一門技術(shù)的發(fā)展,人才的培養(yǎng)是關(guān)鍵,嵌入式技術(shù)的發(fā)展也不例外。對于我國嵌入式人才的培養(yǎng),一方面可以充分利用我國的高等教育資源,在工科高校的相關(guān)專業(yè)加強嵌入式系統(tǒng)的教學(xué),為我國嵌入式技術(shù)的發(fā)展提供大量優(yōu)秀的后備人才,而另一方面,鑒于目前我國有一大批高素質(zhì)的IT從業(yè)人員,他們通過一定的培訓(xùn)和學(xué)習(xí),就可以很快成為嵌入式技術(shù)開發(fā)的主力軍。從目前的情況看來,我國IT人員結(jié)構(gòu)不太適合嵌入式技術(shù)發(fā)展的需要,即精通低端8位系統(tǒng)設(shè)計開發(fā)的應(yīng)用技術(shù)人才和純粹的軟件編程人員相對過剩,而真正掌握軟硬、件技術(shù)相結(jié)合的高端32位嵌入式系統(tǒng)開發(fā)的人才卻比較少,整個IT從業(yè)人員的結(jié)構(gòu)呈兩端大、中間小的啞鈴結(jié)構(gòu)。
如何在較短的時間內(nèi)解決我國高端嵌入式人才缺乏的現(xiàn)狀?筆者認為,比較行之有效的方法是除了加大在工科高校培養(yǎng)嵌入式應(yīng)用人才的力度以外,更主要的是注重對現(xiàn)有IT從業(yè)人員的轉(zhuǎn)型,由于他們都有多年的IT從業(yè)經(jīng)驗和較高的專業(yè)素養(yǎng),很快就可以成為行業(yè)應(yīng)用的骨干力量。但目前的實際情況是,絕大多數(shù)的IT從業(yè)人員還沒有認識到轉(zhuǎn)型的必要性或?qū)ψ陨磙D(zhuǎn)型的是否成功沒有太大的把握。在筆者所接觸的IT從業(yè)人員中,持此種觀點的人非常多。
對于傳統(tǒng)的8位機硬件工程師,他們一般都具有較深厚的硬件功底,有豐富的開發(fā)與應(yīng)用經(jīng)驗,對微處理器的結(jié)構(gòu)有比較深入的了解,同時也具有相當(dāng)?shù)牡讓榆浖_發(fā)技能,他們的這些優(yōu)勢,在32位高端嵌入式系統(tǒng)的設(shè)計與開發(fā)中也是必須的,因此,對于他們來說,轉(zhuǎn)型所面臨的問題,從很大程度上講還不是技術(shù)層面上的,而是他們對嵌入式技術(shù)發(fā)展趨勢的認識問題。有相當(dāng)一部分工程師并不認為在嵌入式系統(tǒng)的設(shè)計中,推廣使用32位高性能嵌入式微處理器是必要的,甚至在一些比較復(fù)雜的應(yīng)用中,還堅持使用8位機完成,一片不行用兩片,兩片不行用四片…,導(dǎo)致在以往的嵌入式設(shè)備中,復(fù)雜的多機系統(tǒng)比比皆是,這樣的系統(tǒng),無論是從軟、硬件開發(fā)的復(fù)雜度、可靠性,還是系統(tǒng)的性價比方面考慮,都是不盡如人意的。還有一部分工程師也嘗試將32位高性能嵌入式微處理器應(yīng)用到自己的設(shè)計中,但由于對嵌入式操作系統(tǒng)及應(yīng)用軟件的開發(fā)過程了解得不夠深入,不太愿意使用嵌入式操作系統(tǒng),軟件的開發(fā)仍然采用傳統(tǒng)的8位機開發(fā)模式,顯然,這樣的開發(fā)模式不但不利于實現(xiàn)復(fù)雜的應(yīng)用功能,同時也沒有充分發(fā)揮32位高性能嵌入式微處理器的固有優(yōu)點,因此,對于傳統(tǒng)的8位機硬件工程師來說,設(shè)計方式的轉(zhuǎn)型,從很大程度上是思想的轉(zhuǎn)型,而跟蹤嵌入式技術(shù)的最新發(fā)展方向,及時更新自身的知識結(jié)構(gòu),并不需要花太大的代價。
而對于傳統(tǒng)的軟件設(shè)計人員來說,他們一般都具有比較深厚的應(yīng)用程序開發(fā)能力,對軟件開發(fā)流程、軟件質(zhì)量保證等,也有較深入的了解,但他們對系統(tǒng)底層硬件結(jié)構(gòu)的認識就相對欠缺,同時,隨著高級應(yīng)用開發(fā)工具的不斷發(fā)展,他們幾乎已經(jīng)完全不關(guān)心系統(tǒng)的硬件結(jié)構(gòu)了。然而,眾所周知嵌入式系統(tǒng)是一個軟、硬件結(jié)合非常緊密的應(yīng)用領(lǐng)域,因此,他們對嵌入式應(yīng)用系統(tǒng)的軟件開發(fā)有一種排斥的心態(tài),對自身是否能進行這方面的工作持懷疑態(tài)度。但由于目前基于32位高性能微處理器的嵌入式系統(tǒng)無論是從運算能力、還是存儲能力,都足以支持一個復(fù)雜現(xiàn)代操作系統(tǒng)的運行,正是操作系統(tǒng)的引入,使得嵌入式系統(tǒng)的應(yīng)用程序開發(fā)與通用計算機平臺的程序開發(fā)有很大的相似之處,也給廣大的傳統(tǒng)的軟件設(shè)計人員提供了新的舞臺和發(fā)展機遇。但是,嵌入式應(yīng)用的開發(fā)又不完全等同于純粹應(yīng)用軟件的開發(fā),需要和底層硬件聯(lián)系,因此,要求軟件開發(fā)人員必須具備一定的硬件知識,對硬件系統(tǒng)的工作原理有大致的了解。以目前廣泛使用的嵌入式操作系統(tǒng)Linux為例,嵌入式Linux的內(nèi)核與運行于通用計算機平臺的Linux具有完全一致的內(nèi)核版本,運行于通用平臺Linux上的應(yīng)用程序,只需要修改與硬件相關(guān)的代碼,就可以直接移植到嵌入式系統(tǒng)中運行。
3、共同努力,促進我國嵌入式應(yīng)用水平提高
筆者多年來一直從事嵌入式系統(tǒng)的教學(xué)與研究工作,也經(jīng)歷了一個對嵌入式系統(tǒng)的軟、硬件開發(fā)從8位系統(tǒng)到32位系統(tǒng)的認識與轉(zhuǎn)型過程,在今后相當(dāng)長的一段時間內(nèi),我國的高端嵌入式應(yīng)用人才還會比較缺乏,因此,如何讓目前的一部分IT從業(yè)人員、特別是軟件開發(fā)人員向嵌入式應(yīng)用領(lǐng)域轉(zhuǎn)型,具有重大的意義。
讓我們共同努力,促進我國嵌入式應(yīng)用與開發(fā)水平的提高。
評論