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