《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > 畢業(yè)季寶典(一)小宏答疑:什么是嵌入式開發(fā)?

畢業(yè)季寶典(一)小宏答疑:什么是嵌入式開發(fā),?

2015-05-13
關鍵詞: 嵌入式系統(tǒng)

嵌入式系統(tǒng)無疑是當前最熱門最有發(fā)展前途的IT應用領域之一,。嵌入式系統(tǒng)用在一些特定專用設備上,,通常這些設備的硬件資源(如處理器,、存儲器等)非常有限,,并且對成本很

敏感,,有時對實時響應要求很高等,。特別是隨著消費家電的智能化,,嵌入式更顯重要。像我們平常常見到的手機,、PDA,、電子字典、可視電話、VCD/DVD/MP3 Player,、數字相機(DC

),、數字攝像機(DV)、U-Disk,、機頂盒(Set Top Box),、高清電視(HDTV)、游戲機,、智能玩具,、交換機、路由器,、數控設備或儀表,、汽車電子、家電控制系統(tǒng),、醫(yī)療儀器,、航天航空

設備等等都是典型的嵌入式系統(tǒng)。

嵌入式系統(tǒng)是軟硬結合的東西,,搞嵌入式開發(fā)的人有兩類,。

一類是學電子工程、通信工程等偏硬件專業(yè)出身的人,,他們主要是搞硬件設計,,有時要開發(fā)一些與硬件關系最密切的最底層軟件,如BootLoader,、Board Support Package(像PC的

BIOS一樣,,往下驅動硬件,往上支持操作系統(tǒng)),,最初級的硬件驅動程序等,。他們的優(yōu)勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,,但對復雜軟件系統(tǒng)往往力

不從心(例如嵌入式操作系統(tǒng)原理和復雜應用軟件等),。

另一類是學軟件、計算機專業(yè)出身的人,,主要從事嵌入式操作系統(tǒng)和應用軟件的開發(fā)。如果我們學軟件的人對硬件原理和接口有較好的掌握,,我們完全也可寫B(tài)SP和硬件驅動程序,。

嵌入式硬件設計完后,各種功能就全靠軟件來實現了,,嵌入式設備的增值很大程度上取決于嵌入式軟件,,這占了嵌入式系統(tǒng)的最主要工作(目前有很多公司將硬件設計包給了專門

的硬件公司,稍復雜的硬件都交給臺灣或國外公司設計,,國內的硬件設計力量很弱,,很多嵌入式公司自己只負責開發(fā)軟件,,因為公司都知道,嵌入式產品的差異很大程度在軟件上

,,在軟件方面是最有“花頭“可做的),,所以我們搞軟件的人完全不用擔心我們在嵌入式市場上的用武之地,越是智能設備越是復雜系統(tǒng),,軟件越起關鍵作用,,而且這是目前的趨

勢。

從事嵌入式軟件開發(fā)的好處是:

(1)目前國內外這方面的人都很稀缺,。一方面,,是因為這一領域入門門檻較高,不僅要懂較底層軟件(例如操作系統(tǒng)級,、驅動程序級軟件),,對軟件專業(yè)水平要求較高(嵌入式系

統(tǒng)對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,,所以非專業(yè)IT人員很難切入這一領域,;另一方面,是因為這一領域較新,,目前發(fā)展太快,,很多軟硬件

技術出現時間不長或正在出現(如ARM處理器、嵌入式操作系統(tǒng),、MPEG技術,、無線通信協(xié)議等),掌握這些新技術的人當然很難找,。嵌入式人才稀缺,,身價自然就高,越有經驗價格

就越高,。其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開發(fā)板和軟件,另外需要有經驗的人進行指導開發(fā)流程,。

(2)與企業(yè)計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低),。搞企業(yè)應用軟件的IT企業(yè),,這個用戶的系統(tǒng)搞完了,又得去搞下一個用戶的,,而且每個

用戶的需求和完成時間都得按客戶要求改變,,往往疲于奔命,重復勞動,。相比而言,,搞嵌入式系統(tǒng)的公司,都有自己的產品計劃,按自己的節(jié)奏行事,。所開發(fā)的產品通常是通用的

,,不會因客戶的不同而修改。一個產品型號開發(fā)完了,,往往有較長一段空閑時間(或只是對軟件進行一些小修補),,有時間進行充電和休整。另外,,從事嵌入式軟件的每個人工作

范圍相對狹窄,,所涉及的專業(yè)技術范圍就是那些(ARM、RTOS,、MPEG,、802.11等),時間長了這些東西會越搞越有經驗,,賣賣老本,,幾句指導也夠讓那些初入道者琢磨半年的。若搞

應用軟件,,可能下一個客戶要換成一個完全不同的軟件開發(fā)平臺,,那就苦了。

(3)哪天若想創(chuàng)業(yè),,搞自已的產品,,那么嵌入式是一個不錯的主意,這可不像應用軟件那樣容易被盜版,。土木學院有一個叫啟明星的公司開發(fā)出一個好象叫“工程e”的掌上PDA(

南校區(qū)門口有廣告),,施工技術人員用該PDA可當場進行土木概預算和其它土木計算,據說銷路特好,。我認識的某大學老師,,他開發(fā)的飯館用的點菜PDA(WinCE平臺,可無線連網和

上網),,據他說銷路不錯,,飯館點點PDA讓客戶點菜,多顯派頭檔次,。我記得00級2+2班當年有一組同學在學Windows程序設計課程時用VC++設計了一個功能很強的點菜系統(tǒng)做為課程

項目,,當時真想建議他們將這個軟件做成PDA,估計會有些銷路(上?;疖囌灸蠌V場的Macdonald便使用很漂亮的PDA給用戶點食品,,像摸像樣的)。這些PDA的硬件設計一般都是請

其它公司給訂做(這叫“貼牌”:OEM),,都是通用的硬件,我們只管設計軟件就變成自己的產品了。

從事嵌入式軟件開發(fā)的缺點是:

(1) 入門起點較高,,所用到的技術往往都有一定難度,,若軟硬件基礎不好,特別是操作系統(tǒng)級軟件功底不深,,則可能不適于此行,。

(2) 這方面的企業(yè)數量要遠少于企業(yè)計算類企業(yè)。特別是從事嵌入式的小企業(yè)數量較多(小企業(yè)要搞自己的產品創(chuàng)業(yè)),,知名大公司較少(搞嵌入式的大公司主要有Intel,、

Motorola、TI,、Philip,、Samsung、Sony,、Futjtum,、Bell-Alcatel、意法半導體,、Microtek,、研華、華為,、中興通信,、上廣電等制造類企業(yè))。這些企業(yè)的習慣思維方式是到電子

,、通信等偏硬專業(yè)找人,。以前畢業(yè)生以企業(yè)計算為主,所以我院與這些企業(yè)聯系相對較少,。我院正積極努力,,目前已與其中部分公司建立了聯系,爭取今后能有我院同學

到這些企業(yè)中實習或就業(yè),。

(3)有少數公司經常要碩士以上的人搞嵌入式,,主要是基于嵌入式的難度。但大多數公司也并無此要求,,只要有經驗即可,。

若學習嵌入式,顯然應偏重于嵌入式軟件,,特別是嵌入式操作系統(tǒng)方面,,應是我們的強項。對于搞嵌入式軟件的人,,最重要的技術顯然是(實際上很多公司的招聘廣告上

就是這樣寫的):

(1) 掌握主流嵌入式微處理器的結構與原理

(2) 必須掌握一個嵌入式操作系統(tǒng)

(3) 必須熟悉嵌入式軟件開發(fā)流程并至少做過一個嵌入式軟件項目,。

嵌入式軟件方面最重要的課程包括:

(1) 嵌入式微處理器結構與應用

這 是一門嵌入式硬件基礎課程,,我院用這門課取代了傳統(tǒng)的“微機原理與接口”課程(目前國內已有少部分高校IT專業(yè)這樣做了,因為講x86微機原理與接口很難 找到實際用處,,只為教學而已),。我們說過,嵌入式是軟硬件結合的技術,,搞嵌入式軟件的人應對ARM處理器工作原理和接口技術有充分了解,,包括ARM的匯編 指令系統(tǒng)。若不了解處理器原理,,怎么能控制硬件工作,,怎么能寫出節(jié)省內存又運行高速的最優(yōu)代碼(嵌入式軟件設計特別講究時空效率),怎么能寫出驅動程序 (驅動程序都是與硬件打交道的),?很多公司招聘嵌入式軟件人員時都要求熟悉ARM處理器,,將來若同學到公司中從事嵌入式軟件開發(fā),公司都會給你一本該設備 的硬件規(guī)格說明書(xxx Specification),,您必須能看懂其中的內存分布和端口使用等最基本的說明(就像x86匯編一樣),,否則怎么設計軟件。有些同學覺得嵌入式處理 器課程較枯燥,,這主要是硬件課程都較抽象的原因,,等我們的嵌入式實驗室10月份建好后,您做了一些實驗后就會覺得看得見摸得著,。還有同學對ARM匯編不感 興趣,,以為嵌入式開發(fā)用C語言就足夠了。其實不應僅是將匯編語言當成一個程序設計語言,,學匯編主要是為了掌握處理器工作原理的,。一個不熟悉匯編語言的人, 怎么能在該處理器寫出最優(yōu)的C語言代碼,。在嵌入式開發(fā)的一些關鍵部分,,有時還必須寫匯編,如Bootloader等(可能還包括BSP),。特別是在對速度 有極高要求的場合(如DSP處理器的高速圖像采集和圖像解壓縮),,目前主要還要靠匯編寫程序(我看到過很多公司是這樣做的)。當您在一個嵌入式公司工作 時,,在查看描述原理的手冊時,,可能很多都是用匯編描述的(我就遇到過),這是因為很多硬件設計人員只會寫或者喜歡用匯編描述,,此時您就必須看懂匯編程序,, 否則軟硬件人員可能就無法交流。很多嵌入式職位招聘時都要求熟悉匯編,。

(2) 嵌入式操作系統(tǒng)類課程

除了WinCE的實時性稍差外,,大多數嵌入式操作系統(tǒng)的實時性都很強,所以也可稱為實時操作系統(tǒng)Real Time Operating System.從事嵌入式的人至少須掌握一個嵌入式操作系統(tǒng)(當

然掌握兩個更好),這在嵌入式的所有技術中是最為關鍵的了,。目前最重要的RTOS主要包括:

第一類、傳統(tǒng)的經典RTOS:最主要的便是Vxworks操作系統(tǒng),,以及其Tornado開發(fā)平臺,。Vxworks因出現稍早,,實時性很強(據說可在1ms內響應外部事件請求),,并且內核可極微(

據 說最小可8K),可靠性較高等,,所以在北美,,Vxworks占據了嵌入式系統(tǒng)的多半疆山。特別是在通信設備等實時性要求較高的系統(tǒng)中,,幾乎非 Vxworks莫屬,。Vxworks的很多概念和技術都和Linux很類似,主要是C語言開發(fā),。像Bell-alcatel,、Lucent、華為等通信企 業(yè)在開發(fā)產品時,,Vxworks用得很多,。但Vxworks因價格很高,所以一些小公司或小產品中往往

用不起,。目前很多公司都在往嵌入式Linux轉(聽說華為目前正在這樣轉),。但無論如何,Vxworks在一段長時間內仍是不可動搖的,。與Vxworks類似的稍有名的實時操作系統(tǒng)還有pSOS,、QNX、Nucleus等RTOS,。

第 二類,、嵌入式Linux操作系統(tǒng):Linux的前途除作為服務器操作系統(tǒng)外,最成功的便是在嵌入式領域的應用,,原因當然是免費,、開源、支持軟件多,、呼擁者 眾,,這樣嵌入式產品成本會低。Linux本身不是一個為嵌入式設計的操作系統(tǒng),,不是微內核的,,并且實時性不強。目前應用在嵌入式領域的Linux系統(tǒng)主要 有兩類:一類是專為嵌入式設計的已被裁減過的

Linux系統(tǒng),,最常用的是uClinux(不帶 MMU功能),,目前占較大應用份額,,可在ARM7上跑;另一類是跑在ARM 9上的,,一般是將Linux 2.4.18內核移植在其上,,可使用更多的Linux功能(當然uClinux更可跑在ARM 9上)。很多人預測,,嵌入式Linux預計將占嵌入式操作系統(tǒng)的50%以上份額,,非常重要。缺點是熟悉Linux的人太少,,開發(fā)難度稍大,。另外,目前我們

能 發(fā)現很多教材和很多大學都以ucOS/II為教學用實時操作系統(tǒng),,這主要是由于ucOS/II較簡單,,且開源,非常適合入門者學習實時操作系統(tǒng)原理,,但由 于ucOS/II功能有限,,實用用得較少,所以我院不將其作為教學重點,,要學習就應學直接實用的,,比如 uClinux就很實用。況且熟悉了Linux開發(fā),,不僅在嵌入式領域有用,,對開發(fā)Linux應用軟件,對加深操作

系統(tǒng)的認識也有幫助,,可謂一舉多得,。據我所知,目前Intel,、Philip都在大搞ARM+LINUX的嵌入式開發(fā),,Fujitum則是在自己的處理器上大搞Linux開發(fā)。目前在嵌入式Linux領域,,

以 下幾個方面的人特別難找,,一是能將Linux移植到某個新型號的開發(fā)版上;二是能寫Linux驅動程序的人,;三是熟悉Linux內核裁減和優(yōu)化的人,。我院 在該嵌入式Linux方面的課程系列是:本科生操作系統(tǒng)必修課,然后是Linux程序設計選修課,,最后是嵌入式Linux系統(tǒng)選修課,。我院在Linux方 面目前已有較強力量,魏老師和張老師熟悉Linux開發(fā),,金老師和唐老師熟悉Linux系統(tǒng)管理,。

第三類,、 Windows CE嵌入式操作系統(tǒng):Microsoft也看準了嵌入式的巨大市場,MS永遠是最厲害的,,WinCE出來只有幾年時間,,但目前已占據了很大市場份額,特別是在PDA,、手機

,、顯示儀表等界面要求較高或者要求快速開發(fā)的場合,WinCE目前已很流行(據說有一家賣工控機的公司板子賣得太好,,以至來不及為客戶裁減WinCE),。WinCE目前主要為4.2版

(.NET), 開發(fā)平臺主要為WinCE Platform Builder,,有時也用EVC環(huán)境開發(fā)一些較上層的應用,由于WinCE開發(fā)都是大家熟悉的VC++環(huán)境,,所以我院學過Windows程序設計課程的同 學都不會有多大難度,,這也是WinCE容易被人們接受的原因,開發(fā)環(huán)境方便快速,,微軟的強大技術支持,,WinCE開發(fā)難度遠低于嵌入式Linux。對于急 于完成,,不想拿嵌入式Linux冒

險的開發(fā)場合,,WinCE是最合適了(找嵌入式Linux的人可 沒那么好找的),畢竟公司不能像學生學習那樣試試看,,保證開發(fā)成功更重要,。根據不同的側重點 ,WinCE還有兩個特殊版本,,一個是MS PocketPC操作系統(tǒng)專用于PDA上(掌上電腦),,另一個是MS SmartPhone操作系統(tǒng)用于智能手機上(帶PDA功能的手機),兩者也都屬于WinCE平臺,。在PDA和手機市

場 上,,除WinCE外,著名的PDA嵌入式操作系統(tǒng)還有Palm OS(因出現很早,,很有名),、Symbian等,但在WinCE的強勁沖擊下,,Palm和Symbian來日還能有多長,?我院可能是全國高校中唯一一家開 設專門的“Windows CE嵌入式操作系統(tǒng)“課程的學校,這主要是基于以下原因:我院本身前面便有Windows程序設計課程,,同學學過VC++后再學WinCE,非常方便自 然,,

通過學習WinCE同樣也可了解嵌入式軟件的一般開發(fā)過程,,對Linux有懼怕心理的同學也很 合適。很顯然,,嵌入式Linux永遠不可能替代WinCE,,而且將來誰占份額大還很難講,畢竟很多人更愿意接受MS的平臺,,就像各國政府都在大力推 LINUX已好長時間,,但您能看到幾個在PC機上真正使用LINUX的用戶?據我觀察,目前在嵌入式平臺上,LINUX是叫得最響,但還是WinCE實際 用得更多.嵌入式LINUX可能更多地是一些有長遠產品計劃的公司,為降低成本而進行長遠考慮; 二是微軟亞洲研究院對我院WinCE課程的支持計劃,,我們也很希望將來我院能有同學通過微軟的面試去實習,。WinCE和多媒體(如MPEG技術)是微軟亞 洲工程院目前做得較多的項目領域之一,他們很需要精通WinCE的人。

總結關于嵌入式操作系統(tǒng)類課程,,若您覺得自己功底較深且能鉆研下去,,則可去學嵌入式Linux;若您覺得自己VC++功底較好且想短平快地學嵌入式開發(fā),,則我院的WinCE課程是最

好的選擇,。

(3) 嵌入式開發(fā)的其它相關軟件課程

搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業(yè)歡迎,。主要的相關領域包括:

A,、數字圖像壓縮技術:這是嵌入式最重要最熱門的應用領域之一,主要是應掌握MPEG編解碼算法和技術,,如DVD,、MP3、PDA,、高精電視,、機頂盒等都涉及MPEG高速解碼問題。為此,,我院已預訂了一位能開設數字圖像處理課程的博士,。

B、通信協(xié)議及編程技術:這包括傳統(tǒng)的TCP/IP協(xié)議和熱門的無線通信協(xié)議,。首先,,大多數嵌入式設備都要連入局域網或Internet,所以首先應掌握TCP/IP協(xié)議及其編程,,這是需首

要掌握的基本技術,;其次,無線通信是目前的大趨勢,,所以掌握無線通信協(xié)議及編程也是是很重要的,。無結通信協(xié)議包括無線局域網通信協(xié)議802.11系列,Bluetooth,以及移動通

信(如GPRS,、GSM,、CDMA等)。

C,、網絡與信息安全技術:如加密技術,,數字證書CA等。我院有這方面的選修課,。

D,、 DSP技術:DSP是Digital Signal Process數字信號處理的意思,DSP處理器通過硬件實現數字信號處理算法,,如高速數據采集,、壓縮、解壓縮,、通信等,。數字信號處理是電子、通信等硬件 專業(yè)的課程,,對于搞軟件的人若能了解一下最好,。目前DSP人才較缺。如果有信號與系統(tǒng),、數字信號處理等課程基礎,對于學習MPEG編解碼原理會有很大幫 助,。

(4)嵌入式開發(fā)的相關硬件基礎

       對于軟件工程專業(yè)的學生,,從事嵌入式軟件開發(fā),像數字電路,、計算機組成原理,、嵌入式微處理器結構等硬件課程是較重要的。另外,,匯編語言,、C/C++、數據結構和 算法,、特別是操作系統(tǒng)等軟件基礎課也是十分重要的,。我們的主要目地是能看懂硬件工作原理,但重點應是在嵌入式軟件,,特別操作系統(tǒng)級軟件,,那將是我們的優(yōu) 勢。

      有些研究生是學電子,、通信類專業(yè)過來的,,有較好的模擬電路和單片機基礎,學嵌入式非常合適。嵌入式本身就是從單片機發(fā)展過來的,,只是單片機不帶 OS,,而現在很多嵌入式應用越來越復雜,以至不得不引入嵌入式操作系統(tǒng),。另外,,為追求更高速的信號處理速度,現在在一些速度要求較高的場合,,有不少公司是 將一些DSP算法,,如MPEG壓縮解壓縮算法等用硬件來實現,這就涉及到HDL數字電路設計技術及其FPGA/IP核實現技術,,這方面的人目前市場上也很 缺,。

      要么走ARM+WinCE,要么走ARM+LINUX,,要么走ARM+VXWORKS,。每個搞嵌入式的人都可選一條路,條條大路通羅馬,。

好好復習  各門基礎課程,, 相信自己一定可以 從事這方面的 開發(fā)工作。


本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,,并不代表本網站贊同其觀點。轉載的所有的文章,、圖片,、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者,。如涉及作品內容,、版權和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118,;郵箱:[email protected],。