同濟(jì)大學(xué)軟件學(xué)院院長(zhǎng)談?chuàng)駱I(yè)—關(guān)于嵌入式方向
同濟(jì)大學(xué)軟件學(xué)院院長(zhǎng)談?chuàng)駱I(yè)—關(guān)于嵌入式方向
嵌入式系統(tǒng)無(wú)疑是當(dāng)前最熱門(mén)最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲(chǔ)器等)非常有限,并且對(duì)成本很敏感,有時(shí)對(duì)實(shí)時(shí)響應(yīng)要求很高等。特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。像我們平常常見(jiàn)到的手機(jī)、PDA、電子字典、可視電話、VCD/DVD/MP3 Player、數(shù)字相機(jī)(DC)、數(shù)字?jǐn)z像機(jī)(DV)、U-Disk、機(jī)頂盒(Set Top Box)、高清電視(HDTV)、游戲機(jī)、智能玩具、交換機(jī)、路由器、數(shù)控設(shè)備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設(shè)備等等都是典型的嵌入式系統(tǒng)。
嵌入式系統(tǒng)是軟硬結(jié)合的東西,搞嵌入式開(kāi)發(fā)的人有兩類。
一類是學(xué)電子工程、通信工程等偏硬件專業(yè)出身的人,他們主要是搞硬件設(shè)計(jì),有時(shí)要開(kāi)發(fā)一些與硬件關(guān)系最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅(qū)動(dòng)硬件,往上支持操作系統(tǒng)),最初級(jí)的硬件驅(qū)動(dòng)程序等。他們的優(yōu)勢(shì)是對(duì)硬件原理非常清楚,不足是他們更擅長(zhǎng)定義各種硬件接口,但對(duì)復(fù)雜軟件系統(tǒng)往往力不從心(例如嵌入式操作系統(tǒng)原理和復(fù)雜應(yīng)用軟件等)。
另一類是學(xué)軟件、計(jì)算機(jī)專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開(kāi)發(fā)。如果我們學(xué)軟件的人對(duì)硬件原理和接口有較好的掌握,我們完全也可寫(xiě)BSP和硬件驅(qū)動(dòng)程序。嵌入式硬件設(shè)計(jì)完后,各種功能就全靠軟件來(lái)實(shí)現(xiàn)了,嵌入式設(shè)備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統(tǒng)的最主要工作(目前有很多公司將硬件設(shè)計(jì)包給了專門(mén)的硬件公司,稍復(fù)雜的硬件都交給臺(tái)灣或國(guó)外公司設(shè)計(jì),國(guó)內(nèi)的硬件設(shè)計(jì)力量很弱,很多嵌入式公司自己只負(fù)責(zé)開(kāi)發(fā)軟件,因?yàn)楣径贾?,嵌入式產(chǎn)品的差異很大程度在軟件上,在軟件方面是最有"花頭"可做的),所以我們搞軟件的人完全不用擔(dān)心我們?cè)谇度胧绞袌?chǎng)上的用武之地,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢(shì)。
從事嵌入式軟件開(kāi)發(fā)的好處是:
?。?) 目前國(guó)內(nèi)外這方面的人都很稀缺。一方面,是因?yàn)檫@一領(lǐng)域入門(mén)門(mén)檻較高,不僅要懂較底層軟件(例如操作系統(tǒng)級(jí)、驅(qū)動(dòng)程序級(jí)軟件),對(duì)軟件專業(yè)水平要求較高(嵌入式系統(tǒng)對(duì)軟件設(shè)計(jì)的時(shí)間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業(yè)IT人員很難切入這一領(lǐng)域;另一方面,是因?yàn)檫@一領(lǐng)域較新,目前發(fā)展太快,很多軟硬件技術(shù)出現(xiàn)時(shí)間不長(zhǎng)或正在出現(xiàn)(如ARM處理器、嵌入式操作系統(tǒng)、MPEG技術(shù)、無(wú)線通信協(xié)議等),掌握這些新技術(shù)的人當(dāng)然很找。嵌入式人才稀缺,身價(jià)自然就高,越有經(jīng)驗(yàn)價(jià)格就越高。其實(shí)嵌入式人才稀少,根本原因可能是大多數(shù)人無(wú)條件接觸,這需要相應(yīng)的嵌入式開(kāi)發(fā)板和軟件,另外需要有經(jīng)驗(yàn)的人進(jìn)行指導(dǎo)開(kāi)發(fā)流程。
?。?) 與企業(yè)計(jì)算等應(yīng)用軟件不同,嵌入式領(lǐng)域人才的工作強(qiáng)度通常低一些(但收入不低)。搞企業(yè)應(yīng)用軟件的IT企業(yè),這個(gè)用戶的系統(tǒng)搞完了,又得去搞下一個(gè)用戶的,而且每個(gè)用戶的需求和完成時(shí)間都得按客戶要求改變,往往疲于奔命,重復(fù)勞動(dòng)。相比而言,搞嵌入式系統(tǒng)的公司,都有自己的產(chǎn)品計(jì)劃,按自己的節(jié)奏行事。所開(kāi)發(fā)的產(chǎn)品通常是通用的,不會(huì)因客戶的不同而修改。一個(gè)產(chǎn)品型號(hào)開(kāi)發(fā)完了,往往有較長(zhǎng)一段空閑時(shí)間(或只是對(duì)軟件進(jìn)行一些小修補(bǔ)),有時(shí)間進(jìn)行充電和休整。另外,從事嵌入式軟件的每個(gè)人工作范圍相對(duì)狹窄,所涉及的專業(yè)技術(shù)范圍就是那些(ARM、RTOS、MPEG、802.11等),時(shí)間長(zhǎng)了這些東西會(huì)越搞越有經(jīng)驗(yàn),賣賣老本,幾句指導(dǎo)也夠讓那些初入道者琢磨半年的。若搞應(yīng)用軟件,可能下一個(gè)客戶要換成一個(gè)完全不同的軟件開(kāi)發(fā)平臺(tái),那就苦了。
?。?) 哪天若想創(chuàng)業(yè),搞自已的產(chǎn)品,那么嵌入式是一個(gè)不錯(cuò)的主意,這可不像應(yīng)用軟件那樣容易被盜版。土木學(xué)院有一個(gè)叫啟明星的公司開(kāi)發(fā)出一個(gè)好象叫“工程e”的掌上PDA(南校區(qū)門(mén)口有廣告),施工技術(shù)人員用該P(yáng)DA可當(dāng)場(chǎng)進(jìn)行土木概預(yù)算和其它土木計(jì)算,據(jù)說(shuō)銷路特好。我認(rèn)識(shí)的某大學(xué)老師,他開(kāi)發(fā)的飯館用的點(diǎn)菜PDA(WinCE平臺(tái),可無(wú)線連網(wǎng)和上網(wǎng)),據(jù)他說(shuō)銷路不錯(cuò),飯館點(diǎn)點(diǎn)PDA讓客戶點(diǎn)菜,多顯派頭檔次。我記得00級(jí)2+2班當(dāng)年有一組同學(xué)在學(xué)Windows程序設(shè)計(jì)課程時(shí)用VC++設(shè)計(jì)了一個(gè)功能很強(qiáng)的點(diǎn)菜系統(tǒng)做為課程項(xiàng)目,當(dāng)時(shí)真想建議他們將這個(gè)軟件做成PDA,估計(jì)會(huì)有些銷路(上海火車站南廣場(chǎng)的Macdonald便使用很漂亮的PDA給用戶點(diǎn)食品,像摸像樣的)。這些PDA的硬件設(shè)計(jì)一般都是請(qǐng)其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設(shè)計(jì)軟件就變成自己的產(chǎn)品了。
從事嵌入式軟件開(kāi)發(fā)的缺點(diǎn)是:
?。?) 入門(mén)起點(diǎn)較高,所用到的技術(shù)往往都有一定難度,若軟硬件基礎(chǔ)不好,特別是操作系統(tǒng)級(jí)軟件功底不深,則可能不適于此行。
?。?) 這方面的企業(yè)數(shù)量要遠(yuǎn)少于企業(yè)計(jì)算類企業(yè)。特別是從事嵌入式的小企業(yè)數(shù)量較多(小企業(yè)要搞自己的產(chǎn)品創(chuàng)業(yè)),知名大公司較少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半導(dǎo)體、Microtek、研華、華為、中興通信、上廣電等制造類企業(yè))。這些企業(yè)的習(xí)慣思維方式是到電子、通信等偏硬專業(yè)找人。由于我院以前畢業(yè)生以企業(yè)計(jì)算為主,所以我院與這些企業(yè)聯(lián)系相對(duì)較少。我院正積極努力,目前已與其中部分公司建立了聯(lián)系,爭(zhēng)取今后能有我院同學(xué)到這些企業(yè)中實(shí)習(xí)或就業(yè)?! 。?)有少數(shù)公司經(jīng)常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數(shù)公司也并無(wú)此要求,只要有經(jīng)驗(yàn)即可。
我院同學(xué)若學(xué)習(xí)嵌入式,顯然應(yīng)偏重于嵌入式軟件,特別是嵌入式操作系統(tǒng)方面,應(yīng)是我們的強(qiáng)項(xiàng)。對(duì)于搞嵌入式軟件的人,最重要的技術(shù)顯然是(實(shí)際上很多公司的招聘廣告上就是這樣寫(xiě)的):
?。?) 掌握主流嵌入式微處理器的結(jié)構(gòu)與原理
?。?) 必須掌握一個(gè)嵌入式操作系統(tǒng)
?。?) 必須熟悉嵌入式軟件開(kāi)發(fā)流程并至少做過(guò)一個(gè)嵌入式軟件項(xiàng)目。
我院在嵌入式軟件方面最重要的課程包括:
?。?) 嵌入式微處理器結(jié)構(gòu)與應(yīng)用:這是一門(mén)嵌入式硬件基礎(chǔ)課程,我院用這門(mén)課取代了傳統(tǒng)的“微機(jī)原理與接口”課程(目前國(guó)內(nèi)已有少部分高校IT專業(yè)這樣做了,因?yàn)橹vx86微機(jī)原理與接口很難找到實(shí)際用處,只為教學(xué)而已)。我們說(shuō)過(guò),嵌入式是軟硬件結(jié)合的技術(shù),搞嵌入式軟件的人應(yīng)對(duì)ARM處理器工作原理和接口技術(shù)有充分了解,包括ARM的匯編指令系統(tǒng)。若不了解處理器原理,怎么能控制硬件工作,怎么能寫(xiě)出節(jié)省內(nèi)存又運(yùn)行高速的最優(yōu)代碼(嵌入式軟件設(shè)計(jì)特別講究時(shí)空效率),怎么能寫(xiě)出驅(qū)動(dòng)程序(驅(qū)動(dòng)程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時(shí)都要求熟悉ARM處理器,將來(lái)若同學(xué)到公司中從事嵌入式軟件開(kāi)發(fā),公司都會(huì)給你一本該設(shè)備的硬件規(guī)格說(shuō)明書(shū) (xxx Specification),您必須能看懂其中的內(nèi)存分布和端口使用等最基本的說(shuō)明(就像x86匯編一樣),否則怎么設(shè)計(jì)軟件。有些同學(xué)覺(jué)得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原因,等我們的嵌入式實(shí)驗(yàn)室10月份建好后,您做了一些實(shí)驗(yàn)后就會(huì)覺(jué)得看得見(jiàn)摸得著。還有同學(xué)對(duì)ARM匯編不感興趣,以為嵌入式開(kāi)發(fā)用C語(yǔ)言就足夠了。其實(shí)不應(yīng)僅是將匯編語(yǔ)言當(dāng)成一個(gè)程序設(shè)計(jì)語(yǔ)言,學(xué)匯編主要是為了掌握處理器工作原理的。一個(gè)不熟悉匯編語(yǔ)言的人,怎么能在該處理器寫(xiě)出最優(yōu)的C語(yǔ)言代碼。在嵌入式開(kāi)發(fā)的一些關(guān)鍵部分,有時(shí)還必須寫(xiě)匯編,如Bootloader等(可能還包括BSP)。特別是在對(duì)速度有極高要求的場(chǎng)合(如DSP處理器的高速圖像采集和圖像解壓縮),目前主要還要靠匯編寫(xiě)程序(我看到過(guò)很多公司是這樣做的)。當(dāng)您在一個(gè)嵌入式公司工作時(shí),在查看描述原理的手冊(cè)時(shí),可能很多都是用匯編描述的(我就遇到過(guò)),這是因?yàn)楹芏嘤布O(shè)計(jì)人員只會(huì)寫(xiě)或者喜歡用匯編描述,此時(shí)您就必須看懂匯編程序,否則軟硬件人員可能就無(wú)法交流。很多嵌入式職位招聘時(shí)都要求熟悉匯編。
[小知識(shí)] 目前嵌入式處理器常見(jiàn)的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM占據(jù)了絕對(duì)主流(資料說(shuō)手機(jī)中幾乎100%都是ARM處理器)。ARM是一個(gè)只賣知識(shí)產(chǎn)權(quán)的公司,目前獲得購(gòu)買了ARM CPU核授權(quán)許可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他們都在ARM CPU核的基礎(chǔ)上進(jìn)行了一些外圍擴(kuò)展,形成自己的處理器(如Samsung S3C2410,Motorola i.MXL9328等處理器都是采用ARM 9內(nèi)核,指令一級(jí)是相同的)。而眾多中小公司又購(gòu)買了這些處理器,設(shè)計(jì)了各種各樣的開(kāi)發(fā)板,如華恒等國(guó)內(nèi)很多著名嵌入式公司都生產(chǎn)基于Samsung S3C2410的開(kāi)發(fā)板,供最終用戶使用或供教學(xué)實(shí)驗(yàn)。在ARM這個(gè)食物鏈上,ARM公司是大魚(yú),Intel、Samsung等公司是小魚(yú),而華恒等則是蝦米,最終用戶(想我們要采購(gòu)嵌入式開(kāi)發(fā)板的實(shí)驗(yàn)室)則是喂蝦米的。Intel早期生產(chǎn)的是低端ARM(Strong ARM,相當(dāng)于ARM 7),現(xiàn)在轉(zhuǎn)向主要生產(chǎn)高端ARM(即Intel Xscale處理器,相當(dāng)于ARM 10,主要用在高端PDA上,如HP和DELL生產(chǎn)的PDA都采用Intel Xscale,價(jià)格較高)。目前應(yīng)用最多的是ARM 7和ARM 9兩類處理器。 ARM 7較便宜,可跑uclinux(是一個(gè)不支持高級(jí)內(nèi)存管理功能的嵌入式Linux系統(tǒng))、Vxworks、uc/os II等實(shí)時(shí)操作系統(tǒng),但因處理器不帶內(nèi)存管理單元MMU(無(wú)內(nèi)存分頁(yè)和地址映射機(jī)制,所以不能使用虛擬內(nèi)存),所以不能跑Windows CE,另外通用Linux中的某些內(nèi)存管理功能也不能用在ARM 7上。ARM 9是一個(gè)帶MMU功能的高端處理器,可跑WinCE或通用Linux的大多數(shù)功能。以上是我的一點(diǎn)了解,可能有不對(duì)的地方。我們學(xué)院正在建設(shè)的嵌入式實(shí)驗(yàn)室(10月底到貨)包括30套ARM 7系統(tǒng)(擬采用Samsung S3C44b0x開(kāi)發(fā)板,主要用于嵌入式處理器結(jié)構(gòu)、嵌入式linux課程實(shí)驗(yàn)),10套ARM 9系統(tǒng)(擬采用Samsung S3C2410x開(kāi)發(fā)板,主要用于Windows CE課程建設(shè)),每套實(shí)驗(yàn)板都配了高速仿真器,價(jià)格都很貴(比我們招標(biāo)的DELL PC還貴),很容易損壞,同學(xué)應(yīng)愛(ài)護(hù)使用。
(2) 嵌入式操作系統(tǒng)類課程 除了WinCE的實(shí)時(shí)性稍差外,大多數(shù)嵌入式操作系統(tǒng)的實(shí)時(shí)性都很強(qiáng),所以也可稱為實(shí)時(shí)操作系統(tǒng)Real Time Operating System.從事嵌入式的人至少須掌握一個(gè)嵌入式操作系統(tǒng)(當(dāng)然掌握兩個(gè)更好),這在嵌入式的所有技術(shù)中是最為關(guān)鍵的了。
目前最重要的RTOS主要包括:
第一類、傳統(tǒng)的經(jīng)典RTOS:最主要的便是Vxworks操作系統(tǒng),以及其Tornado開(kāi)發(fā)平臺(tái)。Vxworks因出現(xiàn)稍早,實(shí)時(shí)性很強(qiáng)(據(jù)說(shuō)可在1ms內(nèi)響應(yīng)外部事件請(qǐng)求),并且內(nèi)核可極微(據(jù)說(shuō)最小可8K),可靠性較高等,所以在北美,Vxworks占據(jù)了嵌入式系統(tǒng)的多半疆山。特別是在通信設(shè)備等實(shí)時(shí)性要求較高的系統(tǒng)中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術(shù)都和Linux很類似,主要是C語(yǔ)言開(kāi)發(fā)。像Bell-alcatel、Lucent、華為等通信企業(yè)在開(kāi)發(fā)產(chǎn)品時(shí),Vxworks用得很多。但Vxworks因價(jià)格很高,所以一些小公司或小產(chǎn)品中往往用不起。目前很多公司都在往嵌入式Linux轉(zhuǎn)(聽(tīng)說(shuō)華為目前正在這樣轉(zhuǎn))。但無(wú)論如何,Vxworks在一段長(zhǎng)時(shí)間內(nèi)仍是不可動(dòng)搖的。與Vxworks類似的稍有名的實(shí)時(shí)操作系統(tǒng)還有pSOS、QNX、Nucleus等RTOS。
第二類、嵌入式Linux操作系統(tǒng):Linux的前途除作為服務(wù)器操作系統(tǒng)外,最成功的便是在嵌入式領(lǐng)域的應(yīng)用,原因當(dāng)然是免費(fèi)、開(kāi)源、支持軟件多、呼擁者眾,這樣嵌入式產(chǎn)品成本會(huì)低。Linux本身不是一個(gè)為嵌入式設(shè)計(jì)的操作系統(tǒng),不是微內(nèi)核的,并且實(shí)時(shí)性不強(qiáng)。目前應(yīng)用在嵌入式領(lǐng)域的Linux系統(tǒng)主要有兩類:一類是專為嵌入式設(shè)計(jì)的已被裁減過(guò)的Linux系統(tǒng),最常用的是uClinux(不帶MMU功能),目前占較大應(yīng)用份額,可在ARM7上跑;另一類是跑在ARM 9上的,一般是將Linux 2.4.18內(nèi)核移植在其上,可使用更多的Linux功能(當(dāng)然uClinux更可跑在ARM 9上)。很多人預(yù)測(cè),嵌入式Linux預(yù)計(jì)將占嵌入式操作系統(tǒng)的50%以上份額,非常重要。缺點(diǎn)是熟悉Linux的人太少,開(kāi)發(fā)難度稍大。另外,目前我們能發(fā)現(xiàn)很多教材和很多大學(xué)都以u(píng)cOS/II為教學(xué)用實(shí)時(shí)操作系統(tǒng),這主要是由于ucOS/II較簡(jiǎn)單,且開(kāi)源,非常適合入門(mén)者學(xué)習(xí)實(shí)時(shí)操作系統(tǒng)原理,但由于ucOS/II功能有限,實(shí)用用得較少,所以我院不將其作為教學(xué)重點(diǎn),要學(xué)習(xí)就應(yīng)學(xué)直接實(shí)用的,比如 uClinux就很實(shí)用。況且熟悉了Linux開(kāi)發(fā),不僅在嵌入式領(lǐng)域有用,對(duì)開(kāi)發(fā)Linux應(yīng)用軟件,對(duì)加深操作系統(tǒng)的認(rèn)識(shí)也有幫助,可謂一舉多得。據(jù)我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開(kāi)發(fā),F(xiàn)ujitum則是在自己的處理器上大搞Linux開(kāi)發(fā)。目前在嵌入式Linux領(lǐng)域,以下幾個(gè)方面的人特別難找,一是能將Linux移植到某個(gè)新型號(hào)的開(kāi)發(fā)版上;二是能寫(xiě)Linux驅(qū)動(dòng)程序的人;三是熟悉Linux內(nèi)核裁減和優(yōu)化的人。我院在該嵌入式Linux方面的課程系列是:本科生操作系統(tǒng)必修課,然后是Linux程序設(shè)計(jì)選修課,最后是嵌入式Linux系統(tǒng)選修課。我院在Linux方面目前已有較強(qiáng)力量,魏老師和張老師熟悉Linux開(kāi)發(fā),金老師和唐老師熟悉Linux系統(tǒng)管理。
第三類、 Windows CE嵌入式操作系統(tǒng):Microsoft也看準(zhǔn)了嵌入式的巨大市場(chǎng),MS永遠(yuǎn)是最厲害的,WinCE出來(lái)只有幾年時(shí)間,但目前已占據(jù)了很大市場(chǎng)份額,特別是在PDA、手機(jī)、顯示儀表等界面要求較高或者要求快速開(kāi)發(fā)的場(chǎng)合,WinCE目前已很流行(據(jù)說(shuō)有一家賣工控機(jī)的公司板子賣得太好,以至來(lái)不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開(kāi)發(fā)平臺(tái)主要為WinCE Platform Builder,有時(shí)也用EVC環(huán)境開(kāi)發(fā)一些較上層的應(yīng)用,由于WinCE開(kāi)發(fā)都是大家熟悉的VC++環(huán)境,所以我院學(xué)過(guò)Windows程序設(shè)計(jì)課程的同學(xué)都不會(huì)有多大難度,這也是WinCE容易被人們接受的原因,開(kāi)發(fā)環(huán)境方便快速,微軟的強(qiáng)大技術(shù)支持,WinCE開(kāi)發(fā)難度遠(yuǎn)低于嵌入式Linux。對(duì)于急于完成,不想拿嵌入式Linux冒險(xiǎn)的開(kāi)發(fā)場(chǎng)合,WinCE是最合適了(找嵌入式Linux的人可沒(méi)那么好找的),畢竟公司不能像學(xué)生學(xué)習(xí)那樣試試看,保證開(kāi)發(fā)成功更重要。根據(jù)不同的側(cè)重點(diǎn) ,WinCE還有兩個(gè)特殊版本,一個(gè)是MS PocketPC操作系統(tǒng)專用于PDA上(掌上電腦),另一個(gè)是MS SmartPhone操作系統(tǒng)用于智能手機(jī)上(帶PDA功能的手機(jī)),兩者也都屬于WinCE平臺(tái)。在PDA和手機(jī)市場(chǎng)上,除WinCE外,著名的PDA嵌入式操作系統(tǒng)還有Palm OS(因出現(xiàn)很早,很有名)、Symbian等,但在WinCE的強(qiáng)勁沖擊下,Palm和Symbian來(lái)日還能有多長(zhǎng)?我院可能是全國(guó)高校中唯一一家開(kāi)設(shè)專門(mén)的"Windows CE嵌入式操作系統(tǒng)"課程的學(xué)校,這主要是基于以下原因:我院本身前面便有Windows程序設(shè)計(jì)課程,同學(xué)學(xué)過(guò)VC++后再學(xué)WinCE,非常方便自然,通過(guò)學(xué)習(xí)WinCE同樣也可了解嵌入式軟件的一般開(kāi)發(fā)過(guò)程,對(duì)Linux有懼怕心理的同學(xué)也很合適。很顯然,嵌入式Linux永遠(yuǎn)不可能替代WinCE,而且將來(lái)誰(shuí)占份額大還很難講,畢竟很多人更愿意接受MS的平臺(tái),就像各國(guó)政府都在大力推LINUX已好長(zhǎng)時(shí)間,但您能看到幾個(gè)在PC機(jī)上真正使用LINUX的用戶?據(jù)我觀察,目前在嵌入式平臺(tái)上,LINUX是叫得最響,但還是WinCE實(shí)際用得更多.嵌入式LINUX可能更多地是一些有長(zhǎng)遠(yuǎn)產(chǎn)品計(jì)劃的公司,為降低成本而進(jìn)行長(zhǎng)遠(yuǎn)考慮; 二是微軟亞洲研究院對(duì)我院WinCE課程的支持計(jì)劃,我們也很希望將來(lái)我院能有同學(xué)通過(guò)微軟的面試去實(shí)習(xí)。WinCE和多媒體(如MPEG技術(shù))是微軟亞洲工程院目前做得較多的項(xiàng)目領(lǐng)域之一,他們很需要精通WinCE的人。
總結(jié)關(guān)于嵌入式操作系統(tǒng)類課程,若您覺(jué)得自己功底較深且能鉆研下去,則可去學(xué)嵌入式Linux;若您覺(jué)得自己VC++功底較好且想短平快地學(xué)嵌入式開(kāi)發(fā),則我院的WinCE課程是最好的選擇。 (3) 嵌入式開(kāi)發(fā)的其它相關(guān)軟件課程
搞嵌入式若能熟悉嵌入式應(yīng)用的一些主要領(lǐng)域,這樣的人更受企業(yè)歡迎。
主要的相關(guān)領(lǐng)域包括:
A、數(shù)字圖像壓縮技術(shù):這是嵌入式最重要最熱門(mén)的應(yīng)用領(lǐng)域之一,主要是應(yīng)掌握MPEG編解碼算法和技術(shù),如DVD、MP3、PDA、高精電視、機(jī)頂盒等都涉及MPEG高速解碼問(wèn)題。為此,我院已預(yù)訂了一位能開(kāi)設(shè)數(shù)字圖像處理課程的博士。
B、通信協(xié)議及編程技術(shù):這包括傳統(tǒng)的TCP/IP協(xié)議和熱門(mén)的無(wú)線通信協(xié)議。首先,大多數(shù)嵌入式設(shè)備都要連入局域網(wǎng)或Internet,所以首先應(yīng)掌握TCP/IP協(xié)議及其編程,這是需首要掌握的基本技術(shù);其次,無(wú)線通信是目前的大趨勢(shì),所以掌握無(wú)線通信協(xié)議及編程也是是很重要的。無(wú)結(jié)通信協(xié)議包括無(wú)線局域網(wǎng)通信協(xié)議802.11系列,Bluetooth,以及移動(dòng)通信(如GPRS、GSM、CDMA等)。
C、網(wǎng)絡(luò)與信息安全技術(shù):如加密技術(shù),數(shù)字證書(shū)CA等。我院有這方面的選修課。
D、DSP技術(shù):DSP是Digital Signal Process數(shù)字信號(hào)處理的意思,DSP處理器通過(guò)硬件實(shí)現(xiàn)數(shù)字信號(hào)處理算法,如高速數(shù)據(jù)采集、壓縮、解壓縮、通信等。數(shù)字信號(hào)處理是電子、通信等硬件專業(yè)的課程,對(duì)于搞軟件的人若能了解一下最好。目前DSP人才較缺。如果有信號(hào)與系統(tǒng)、數(shù)字信號(hào)處理等課程基礎(chǔ),對(duì)于學(xué)習(xí)MPEG編解碼原理會(huì)有很大幫助?!?/P>
?。?)嵌入式開(kāi)發(fā)的相關(guān)硬件基礎(chǔ) 對(duì)于軟件工程專業(yè)的學(xué)生,從事嵌入式軟件開(kāi)發(fā),像數(shù)字電路、計(jì)算機(jī)組成原理、嵌入式微處理器結(jié)構(gòu)等硬件課程是較重要的。另外,匯編語(yǔ)言、C/C++、數(shù)據(jù)結(jié)構(gòu)和算法、特別是操作系統(tǒng)等軟件基礎(chǔ)課也是十分重要的。我們的主要目地是能看懂硬件工作原理,但重點(diǎn)應(yīng)是在嵌入式軟件,特別操作系統(tǒng)級(jí)軟件,那將是我們的優(yōu)勢(shì)。我們的研究生里有些是學(xué)電子、通信類專業(yè)過(guò)來(lái)的,有較好的模擬電路和單片機(jī)基礎(chǔ),學(xué)嵌入式非常合適。嵌入式本身就是從單片機(jī)發(fā)展過(guò)來(lái)的,只是單片機(jī)不帶OS,而現(xiàn)在很多嵌入式應(yīng)用越來(lái)越復(fù)雜,以至不得不引入嵌入式操作系統(tǒng)。另外,為追求更高速的信號(hào)處理速度,現(xiàn)在在一些速度要求較高的場(chǎng)合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來(lái)實(shí)現(xiàn),這就涉及到HDL數(shù)字電路設(shè)計(jì)技術(shù)及其FPGA/IP核實(shí)現(xiàn)技術(shù),這方面的人目前市場(chǎng)上也很缺。
(5) 題外話
另外,能寫(xiě)驅(qū)動(dòng)程序的人目前是非常緊缺的(驅(qū)動(dòng)程序也可歸于嵌入式范疇),包括桌面Windows中的DDK開(kāi)發(fā)環(huán)境和WDM驅(qū)動(dòng)程序。公司每時(shí)每刻都要推出新產(chǎn)品,每一個(gè)新產(chǎn)品出來(lái)了,要能被操作系統(tǒng)所使用,是必須寫(xiě)驅(qū)動(dòng)程序的。寫(xiě)驅(qū)動(dòng)程序就必須掌握操作系統(tǒng)(如Windows或Linux)的內(nèi)部工作原理,還涉及到少量硬件知識(shí),難度較大,所以這方面的人很難找。想成為高手的同學(xué),也可從驅(qū)動(dòng)程序方面獲得突破。我可說(shuō)一下自己的經(jīng)歷,三年前我曾短暫地在一家公司寫(xiě)過(guò)WinCE驅(qū)動(dòng)程序(正是因?yàn)橹肋@方面的人緊缺,所以才要做這方面的事),盡管那以前從未做過(guò)驅(qū)動(dòng)程序,應(yīng)聘那個(gè)職位時(shí)正是看準(zhǔn)了公司是很難招聘到這方面的人,既然都找不到人,驅(qū)動(dòng)還得有人做,這正是可能有機(jī)會(huì)切入這一領(lǐng)域的大好機(jī)會(huì)。面試時(shí)大講自己寫(xiě)過(guò)多少萬(wàn)行匯編程序,對(duì)計(jì)算機(jī)工作原理如何清楚,簡(jiǎn)歷中又寫(xiě)著我曾閱讀完兩本關(guān)于Windows Driver Model的兩本英文原版書(shū),寫(xiě)過(guò)幾個(gè)小型的驅(qū)動(dòng)程序練習(xí)程序(其實(shí)根本沒(méi)寫(xiě)過(guò),我們的同學(xué)將來(lái)千萬(wàn)不要像我這樣,早練就些過(guò)硬功夫,就不至于淪落到我這等地步,就不用像我那樣去“欺騙”公司了,我這是一個(gè)典型的反面教材),居然一切都PASS(當(dāng)然最重要的是筆試和面試問(wèn)題還說(shuō)得過(guò)去),這只能說(shuō)明這一領(lǐng)域找人的困難程度。公司本就未指望找到搞過(guò)驅(qū)動(dòng)的人,找個(gè)有相關(guān)基礎(chǔ)的人就算不錯(cuò)了。做了以后,發(fā)現(xiàn)也并不是怎樣難的。其實(shí)搞驅(qū)動(dòng)程序的工作是很舒服的,搞完一個(gè)版本就會(huì)空一段時(shí)間,只有等公司新的芯片推出或新的OS出現(xiàn)后,才需要再去開(kāi)發(fā)新一版驅(qū)動(dòng),那時(shí)有將近一個(gè)月時(shí)間空閑著在等WinCE .NET Beta版推出,準(zhǔn)備將驅(qū)動(dòng)程序升級(jí)到CE .NET上,現(xiàn)在在軟件學(xué)院工作整日忙,無(wú)限懷念那段悠閑時(shí)光。
很巧合,最近本人無(wú)意中再次體會(huì)到了嵌入式的迷人之處。上周我那用了3年的手機(jī)終于不能WORK了。此次更新,除要求有手機(jī)常見(jiàn)功能外,最好有MP3功能(現(xiàn)在很多英語(yǔ)聽(tīng)力都有MP3文件),最好有英漢詞典,最好還能讀WORD文檔。最后選了個(gè)滿足以上條件的最便宜的手機(jī)DOPOD 515(斬了我2.2K,但想想這也算自己對(duì)嵌入式事業(yè)的支持,這樣便也想開(kāi)了),算得上最低檔的智能手機(jī)了。回來(lái)一查,手機(jī)的about顯示,本手機(jī)Processor是ARM,其OS是MS Smartphone(即WinCE .NET 4.2),這么巧合,簡(jiǎn)直可做為學(xué)習(xí)嵌入式課程的產(chǎn)品案例了(等我們的WinCE課程開(kāi)得有聲有色后,希望能從微軟研究院搞些Smartphone來(lái)開(kāi)發(fā)開(kāi)發(fā))。有OS的手機(jī)果然了得,金山詞霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的,PC上的MP3、DOC等居然在download時(shí)都可被自動(dòng)轉(zhuǎn)換成smartphone格式,真是爽。完全可用Windows CE自己開(kāi)發(fā)一些需要的程序download到自己的手機(jī)上。現(xiàn)在市面銷售PDA智能手機(jī)火爆,MS總是財(cái)源滾滾。但我已發(fā)現(xiàn)國(guó)產(chǎn)的ARM+LINUX手機(jī)出現(xiàn)在市面上,價(jià)格只1.2K。
在GOOGLE網(wǎng)上能搜索太多的關(guān)于嵌入式系統(tǒng)的討論了
要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。每個(gè)搞嵌入式的人都可選一條路,條條大路通羅馬。