嵌入式軟件方面最重要的課程介紹
——
(1) 嵌入式微處理器結構與應用:
這是一門(mén)嵌入式硬件基礎課程,嵌入式是軟硬件結合的技術(shù),搞嵌入式軟件的人應對ARM處理器工作原理和接口技術(shù)有充分了解,包括ARM的匯編指令系統。若不了解處理器原理,怎么能控制硬件工作,怎么能寫(xiě)出節省內存又運行高速的最優(yōu)代碼(嵌入式軟件設計特別講究時(shí)空效率),怎么能寫(xiě)出驅動(dòng)程序(驅動(dòng)程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時(shí)都要求熟悉ARM處理器,將來(lái)若同學(xué)到公司中從事嵌入式軟件開(kāi)發(fā),公司都會(huì )給你一本該設備的硬件規格說(shuō)明書(shū) ,您必須能看懂其中的內存分布和端口使用等最基本的說(shuō)明(就像x86匯編一樣),否則怎么設計軟件。有些同學(xué)覺(jué)得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原因,等我們的嵌入式實(shí)驗室10月份建好后,您做了一些實(shí)驗后就會(huì )覺(jué)得看得見(jiàn)摸得著(zhù)。還有同學(xué)對ARM匯編不感興趣,以為嵌入式開(kāi)發(fā)用C語(yǔ)言就足夠了。其實(shí)不應僅是將匯編語(yǔ)言當成一個(gè)程序設計語(yǔ)言,學(xué)匯編主要是為了掌握處理器工作原理的。一個(gè)不熟悉匯編語(yǔ)言的人,怎么能在該處理器寫(xiě)出最優(yōu)的C語(yǔ)言代碼。在嵌入式開(kāi)發(fā)的一些關(guān)鍵部分,有時(shí)還必須寫(xiě)匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場(chǎng)合(如DSP處理器的高速圖像采集和圖像解壓縮),目前主要還要靠匯編寫(xiě)程序(我看到過(guò)很多公司是這樣做的)。當您在一個(gè)嵌入式公司工作時(shí),在查看描述原理的手冊時(shí),可能很多都是用匯編描述的(我就遇到過(guò)),這是因為很多硬件設計人員只會(huì )寫(xiě)或者喜歡用匯編描述,此時(shí)您就必須看懂匯編程序,否則軟硬件人員可能就無(wú)法交流。很多嵌入式職位招聘時(shí)都要求熟悉匯編。
(2) 嵌入式操作系統類(lèi)課程
除了WinCE的實(shí)時(shí)性稍差外,大多數嵌入式操作系統的實(shí)時(shí)性都很強,所以也可稱(chēng)為實(shí)時(shí)操作系統Real Time Operating System.從事嵌入式的人至少須掌握一個(gè)嵌入式操作系統(當然掌握兩個(gè)更好),這在嵌入式的所有技術(shù)中是最為關(guān)鍵的了。目前最重要的RTOS主要包括:
第一類(lèi)、傳統的經(jīng)典RTOS:最主要的便是Vxworks操作系統,以及其Tornado開(kāi)發(fā)平臺。Vxworks因出現稍早,實(shí)時(shí)性很強(據說(shuō)可在1ms內響應外部事件請求),并且內核可極微(據說(shuō)最小可8K),可靠性較高等,所以在北美,Vxworks占據了嵌入式系統的多半疆山。特別是在通信設備等實(shí)時(shí)性要求較高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術(shù)都和Linux很類(lèi)似,主要是C語(yǔ)言開(kāi)發(fā)。像Bell-alcatel、Lucent、華為等通信企業(yè)在開(kāi)發(fā)產(chǎn)品時(shí),Vxworks用得很多。但Vxworks因價(jià)格很高,所以一些小公司或小產(chǎn)品中往往用不起。目前很多公司都在往嵌入式Linux轉(聽(tīng)說(shuō)華為目前正在這樣轉)。但無(wú)論如何,Vxworks在一段長(cháng)時(shí)間內仍是不可動(dòng)搖的。與Vxworks類(lèi)似的稍有名的實(shí)時(shí)操作系統還有pSOS、QNX、Nucleus等RTOS。
第二類(lèi)、嵌入式Linux操作系統:Linux的前途除作為服務(wù)器操作系統外,最成功的便是在嵌入式領(lǐng)域的應用,原因當然是免費、開(kāi)源、支持軟件多、呼擁者眾,這樣嵌入式產(chǎn)品成本會(huì )低。Linux本身不是一個(gè)為嵌入式設計的操作系統,不是微內核的,并且實(shí)時(shí)性不強。目前應用在嵌入式領(lǐng)域的Linux系統主要有兩類(lèi):一類(lèi)是專(zhuān)為嵌入式設計的已被裁減過(guò)的Linux系統,最常用的是uClinux(不帶MMU功能),目前占較大應用份額,可在A(yíng)RM7上跑;另一類(lèi)是跑在A(yíng)RM9上的,一般是將Linux2.4.18內核移植在其上,可使用更多的Linux功能(當然uClinux更可跑在A(yíng)RM 9上)。很多人預測,嵌入式Linux預計將占嵌入式操作系統的50%以上份額,非常重要。缺點(diǎn)是熟悉Linux的人太少,開(kāi)發(fā)難度稍大。另外,目前我們能發(fā)現很多教材和很多大學(xué)都以ucOS/II為教學(xué)用實(shí)時(shí)操作系統,這主要是由于ucOS/II較簡(jiǎn)單,且開(kāi)源,非常適合入門(mén)者學(xué)習實(shí)時(shí)操作系統原理,但由于ucOS/II功能有限,實(shí)用用得較少,所以我院不將其作為教學(xué)重點(diǎn),要學(xué)習就應學(xué)直接實(shí)用的,比如uClinux就很實(shí)用。況且熟悉了Linux開(kāi)發(fā),不僅在嵌入式領(lǐng)域有用,對開(kāi)發(fā)Linux應用軟件,對加深操作系統的認識也有幫助,可謂一舉多得。據我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開(kāi)發(fā),Fujitum則是在自己的處理器上大搞Linux開(kāi)發(fā)。目前在嵌入式Linux領(lǐng)域,以下幾個(gè)方面的人特別難找,一是能將Linux移植到某個(gè)新型號的開(kāi)發(fā)版上;二是能寫(xiě)Linux驅動(dòng)程序的人;三是熟悉Linux內核裁減和優(yōu)化的人。
第三類(lèi)、 Windows
CE嵌入式操作系統:Microsoft也看準了嵌入式的巨大市場(chǎng),MS永遠是最厲害的,WinCE出來(lái)只有幾年時(shí)間,但目前已占據了很大市場(chǎng)份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開(kāi)發(fā)的場(chǎng)合,WinCE目前已很流行(據說(shuō)有一家賣(mài)工控機的公司板子賣(mài)得太好,以至來(lái)不及為客戶(hù)裁減WinCE)。WinCE目前主要為4.2版(.NET),開(kāi)發(fā)平臺主要為WinCE Platform Builder,有時(shí)也用EVC環(huán)境開(kāi)發(fā)一些較上層的應用,由于WinCE開(kāi)發(fā)都是大家熟悉的VC++環(huán)境,所以學(xué)過(guò)Windows程序設計課程的同學(xué)都不會(huì )有多大難度,這也是WinCE容易被人們接受的原因,開(kāi)發(fā)環(huán)境方便快速,微軟的強大技術(shù)支持,WinCE開(kāi)發(fā)難度遠低于嵌入式Linux。對于急于完成,不想拿嵌入式Linux冒險的開(kāi)發(fā)場(chǎng)合,WinCE是最合適了(找嵌入式Linux的人可沒(méi)那么好找的),畢竟公司不能像學(xué)生學(xué)習那樣試試看,保證開(kāi)發(fā)成功更重要。根據不同的側重點(diǎn),WinCE還有兩個(gè)特殊版本,一個(gè)是MS PocketPC操作系統專(zhuān)用于PDA上(掌上電腦),另一個(gè)是MS SmartPhone操作系統用于智能手機上(帶PDA功能的手機),兩者也都屬于WinCE平臺。在PDA和手機市場(chǎng)上,除WinCE外,著(zhù)名的PDA嵌入式操作系統還有Palm OS(因出現很早,很有名)、Symbian等,但在WinCE的強勁沖擊下,Palm和Symbian來(lái)日還能有多長(cháng)?我院可能是全國高校中唯一一家開(kāi)設專(zhuān)門(mén)的“Windows CE嵌入式操作系統“課程的學(xué)校,這主要是基于以下原因:我院本身前面便有Windows程序設計課程,同學(xué)學(xué)過(guò)VC++后再學(xué)WinCE,非常方便自然,通過(guò)學(xué)習WinCE同樣也可了解嵌入式軟件的一般開(kāi)發(fā)過(guò)程,對Linux有懼怕心理的同學(xué)也很合適。很顯然,嵌入式Linux永遠不可能替代WinCE,而且將來(lái)誰(shuí)占份額大還很難講,畢竟很多人更愿意接受MS的平臺,就像各國政府都在大力推LINUX已好長(cháng)時(shí)間,但您能看到幾個(gè)在PC機上真正使用LINUX的用戶(hù)?據我觀(guān)察,目前在嵌入式平臺上,LINUX是叫得最響,但還是WinCE實(shí)際用得更多.嵌入式LINUX可能更多地是一些有長(cháng)遠產(chǎn)品計劃的公司,為降低成本而進(jìn)行長(cháng)遠考慮;
二WinCE和多媒體(如MPEG技術(shù))是微軟亞洲工程院目前做得較多的項目領(lǐng)域之一,他們很需要精通WinCE的人。
總結關(guān)于嵌入式操作系統類(lèi)課程,若您覺(jué)得自己功底較深且能鉆研下去,則可去學(xué)嵌入式Linux;若您覺(jué)得自己VC++功底較好且想短平快地學(xué)嵌入式開(kāi)發(fā),則WinCE課程是最好的選擇。
(3) 嵌入式開(kāi)發(fā)的其它相關(guān)軟件課程
搞嵌入式若能熟悉嵌入式應用的一些主要領(lǐng)域,這樣的人更受企業(yè)歡迎。主要的相關(guān)領(lǐng)域包括:
A、數字圖像壓縮技術(shù):這是嵌入式最重要最熱門(mén)的應用領(lǐng)域之一,主要是應掌握MPEG編解碼算法和技術(shù),如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問(wèn)題。
B、通信協(xié)議及編程技術(shù):這包括傳統的TCP/IP協(xié)議和熱門(mén)的無(wú)線(xiàn)通信協(xié)議。首先,大多數嵌入式設備都要連入局域網(wǎng)或Internet,所以首先應掌握TCP/IP協(xié)議及其編程,這是需首要掌握的基本技術(shù);其次,無(wú)線(xiàn)通信是目前的大趨勢,所以掌握無(wú)線(xiàn)通信協(xié)議及編程也是是很重要的。無(wú)結通信協(xié)議包括無(wú)線(xiàn)局域網(wǎng)通信協(xié)議802.11系列,Bluetooth,以及移動(dòng)通信(如GPRS、GSM、CDMA等)。
C、網(wǎng)絡(luò )與信息安全技術(shù):如加密技術(shù),數字證書(shū)CA等。
D、DSP技術(shù):DSP是Digital Signal
Process數字信號處理的意思,DSP處理器通過(guò)硬件實(shí)現數字信號處理算法,如高速數據采集、壓縮、解壓縮、通信等。數字信號處理是電子、通信等硬件專(zhuān)業(yè)的課程,對于搞軟件的人若能了解一下最好。目前DSP人才較缺。如果有信號與系統、數字信號處理等課程基礎,對于學(xué)習MPEG編解碼原理會(huì )有很大幫助。
(4)嵌入式開(kāi)發(fā)的相關(guān)硬件基礎
對于軟件工程專(zhuān)業(yè)的學(xué)生,從事嵌入式軟件開(kāi)發(fā),像數字電路、計算機組成原理、嵌入式微處理器結構等硬件課程是較重要的。另外,匯編語(yǔ)言、C/C++、數據結構和算法、特別是操作系統等軟件基礎課也是十分重要的。我們的主要目地是能看懂硬件工作原理,但重點(diǎn)應是在嵌入式軟件,特別操作系統級軟件,那將是我們的優(yōu)勢。
有些是學(xué)電子、通信類(lèi)專(zhuān)業(yè)過(guò)來(lái)的,有較好的模擬電路和單片機基礎,學(xué)嵌入式非常合適。嵌入式本身就是從單片機發(fā)展過(guò)來(lái)的,只是單片機不帶OS,而現在很多嵌入式應用越來(lái)越復雜,以至不得不引入嵌入式操作系統。另外,為追求更高速的信號處理速度,現在在一些速度要求較高的場(chǎng)合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來(lái)實(shí)現,這就涉及到HDL數字電路設計技術(shù)及其FPGA/IP核實(shí)現技術(shù),這方面的人目前市場(chǎng)上也很缺。 linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論