嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一。嵌入式系統用
在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有
限,并且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能
化,嵌入式更顯重要。像我們平常常見到的手機、PDA、電子字典、可視電話、VCD
/DVD/MP3 Player、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(Set Top
Box)、高清電視(HDTV)、游戲機、智能玩具、交換機、路由器、數控設備或儀表、
汽車電子、家電控制系統、醫療儀器、航天航空設備等等都是典型的嵌入式系統。
嵌入式系統是軟硬結合的東西,搞嵌入式開發的人有兩類。
一類是學電子工程、通信工程等偏硬件專業出身的人,他們主要是搞硬件設計
,有時要開發一些與硬件關系最密切的最底層軟件,如BootLoader、Board Suppor
t Package(像PC的BIOS一樣,往下驅動硬件,往上支持操作系統),最初級的硬件
驅動程序等。他們的優勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件
接口,但對復雜軟件系統往往力不從心(例如嵌入式操作系統原理和復雜應用軟件
等)。
另一類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件
的開發。如果我們學軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫BS
P和硬件驅動程序。嵌入式硬件設計完后,各種功能就全靠軟件來實現了,嵌入式設
備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統的最主要工作(目前有
很多公司將硬件設計包給了專門的硬件公司,稍復雜的硬件都交給臺灣或國外公司
設計,國內的硬件設計力量很弱,很多嵌入式公司自己只負責開發軟件,因為公司
都知道,嵌入式產品的差異很大程度在軟件上,在軟件方面是最有“花頭“可做的
),所以我們搞軟件的人完全不用擔心我們在嵌入式市場上的用武之地,越是智能
設備越是復雜系統,軟件越起關鍵作用,而且這是目前的趨勢。
從事嵌入式軟件開發的好處是:
(1) 目前國內外這方面的人都很稀缺。一方面,是因為這一領域入門門檻較高
,不僅要懂較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業水平要
求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件
的工作原理,所以非專業IT人員很難切入這一領域;另一方面,是因為這一領域較
新,目前發展太快,很多軟硬件技術出現時間不長或正在出現(如ARM處理器、嵌入
式操作系統、MPEG技術、無線通信協議等),掌握這些新技術的人當然很找。嵌入
式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少,根本原因
可能是大多數人無條件接觸,這需要相應的嵌入式開發板和軟件,另外需要有經驗的
人進行指導開發流程。
(2) 與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(
但收入不低)。搞企業應用軟件的IT企業,這個用戶的系統搞完了,又得去搞下一
個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲于奔命,
重復勞動。相比而言,搞嵌入式系統的公司,都有自己的產品計劃,按自己的節奏
行事。所開發的產品通常是通用的,不會因客戶的不同而修改。一個產品型號開發
完了,往往有較長一段空閑時間(或只是對軟件進行一些小修補),有時間進行充
電和休整。另外,從事嵌入式軟件的每個人工作范圍相對狹窄,所涉及的專業技術
范圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越搞越有經驗
,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。若搞應用軟件,可能下一
個客戶要換成一個完全不同的軟件開發平臺,那就苦了。
(3) 哪天若想創業,搞自已的產品,那么嵌入式是一個不錯的主意,這可不
像應用軟件那樣容易被盜版。土木學院有一個叫啟明星的公司開發出一個好象叫“
工程e”的掌上PDA(南校區門口有廣告),施工技術人員用該PDA可當場進行土木概
預算和其它土木計算,據說銷路特好。我認識的某大學老師,他開發的飯館用的點
菜PDA(WinCE平臺,可無線連網和上網),據他說銷路不錯,飯館點點PDA讓客戶點
菜,多顯派頭檔次。我記得00級2+2班當年有一組同學在學Windows程序設計課程時
用VC++設計了一個功能很強的點菜系統做為課程項目,當時真想建議他們將這個軟
件做成PDA,估計會有些銷路(上海火車站南廣場的Macdonald便使用很漂亮的PDA給
用戶點食品,像摸像樣的)。這些PDA的硬件設計一般都是請其它公司給訂做(這叫
“貼牌”:OEM),都是通用的硬件,我們只管設計軟件就變成自己的產品了。
從事嵌入式軟件開發的缺點是:
(1) 入門起點較高,所用到的技術往往都有一定難度,若軟硬件基礎不好,
特別是操作系統級軟件功底不深,則可能不適于此行。
(2) 這方面的企業數量要遠少于企業計算類企業。特別是從事嵌入式的小企
業數量較多(小企業要搞自己的產品創業),知名大公司較少(搞嵌入式的大公司
主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、
意法半導體、Microtek、研華、華為、中興通信、上廣電等制造類企業)。這些企
業的習慣思維方式是到電子、通信等偏硬專業找人。由于我院以前畢業生以企業計
算為主,所以我院與這些企業聯系相對較少。我院正積極努力,目前已與其中部分
公司建立了聯系,爭取今后能有我院同學到這些企業中實習或就業。
(3)有少數公司經常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多
數公司也并無此要求,只要有經驗即可。
我院同學若學習嵌入式,顯然應偏重于嵌入式軟件,特別是嵌入式操作系統方
面,應是我們的強項。對于搞嵌入式軟件的人,最重要的技術顯然是(實際上很多
公司的招聘廣告上就是這樣寫的):
(1) 掌握主流嵌入式微處理器的結構與原理
(2) 必須掌握一個嵌入式操作系統
(3) 必須熟悉嵌入式軟件開發流程并至少做過一個嵌入式軟件項目。
嵌入式軟件方面最重要的課程包括:
(1) 嵌入式微處理器結構與應用:這是一門嵌入式硬件基礎課程,我院用這
門課取代了傳統的“微機原理與接口”課程(目前國內已有少部分高校IT專業這樣
做了,因為講x86微機原理與接口很難找到實際用處,只為教學而已)。我們說過,
嵌入式是軟硬件結合的技術,搞嵌入式軟件的人應對ARM處理器工作原理和接口技術
有充分了解,包括ARM的匯編指令系統。若不了解處理器原理,怎么能控制硬件工作
,怎么能寫出節省內存又運行高速的最優代碼(嵌入式軟件設計>
|