嵌入式系统开发人员的知识结构
生活随笔
收集整理的這篇文章主要介紹了
嵌入式系统开发人员的知识结构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
嵌入式系統(tǒng)無疑是當前最熱門、最有發(fā)展前途的IT應用領域之一。嵌入式系統(tǒng)用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高。特別是隨著消費家電的智能化,嵌入式更顯重要。比如手機、PDA
嵌入式系統(tǒng)無疑是當前最熱門、最有發(fā)展前途的IT應用領域之一。嵌入式系統(tǒng)用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高。特別是隨著消費家電的智能化,嵌入式更顯重要。比如手機、PDA、電子字典、可視電話、VCD/DVD/MP3播放器、數碼相機(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)的最主要工作。目前國內很多嵌入式系統(tǒng)公司都將稍復雜的硬件設計外包給我國臺灣或國外公司設計,自己只負責開發(fā)軟件,因為嵌入式產品的差異很大程度在軟件上。因為越是智能設備,越是復雜系統(tǒng),軟件起的作用越關鍵,這是趨勢。
因此,未來嵌入式開發(fā)人員的知識結構應該包括:
1.嵌入式微處理器結構與應用
這是嵌入式硬件基礎課程,以取代傳統(tǒng)的“微機原理與接口”課程(目前國內已有少部分高校IT專業(yè)這樣做了,因為講x86微機原理與接口很難找到實際用處,只為教學而已)。嵌入式是軟硬件結合的技術,搞嵌入式軟件的人應充分了解ARM處理器工作原理和接口技術,包括ARM的匯編指令系統(tǒng)。若不了解處理器原理,怎么能控制硬件工作?怎么能寫出節(jié)省內存又運行高速的最優(yōu)代碼(嵌入式軟件設計特別講究時空效率)?怎么能寫出驅動程序(驅動程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時都要求熟悉ARM處理器。將來想從事嵌入式軟件開發(fā),公司都會給你一本該設備的硬件規(guī)格說明書,你必須能看懂其中的內存分布和端口使用等最基本的說明(就像x86匯編一樣),否則怎么設計軟件?
有些學員覺得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原因,必須在嵌入式實驗室做了一些實驗后才會覺得它看得見摸得著。還有的人對ARM匯編不感興趣,以為嵌入式開發(fā)用C語言就足夠了。其實不應僅將匯編語言當成一個程序設計語言,學匯編主要是為了掌握處理器工作原理。一個不熟悉匯編語言的人,怎么能為該處理器寫出最優(yōu)的C語言代碼呢?在嵌入式開發(fā)的一些關鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像采集和圖像解壓縮),目前主要還要靠匯編程序。當你在一個嵌入式公司工作,查看描述原理的手冊時,可能很多都是用匯編描述的,這是因為很多硬件設計人員只會寫或者喜歡用匯編描述,此時您就必須看懂匯編程序,否則軟硬件人員可能就無法交流。
目前嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM占據了絕對主流位置(手機幾乎都是使用ARM處理器)。ARM是一個只賣知識產權的公司,目前獲得購買了ARM CPU核授權許可的大公司很多,包括英特爾、三星、貝爾-阿爾卡特、摩托羅拉、飛利浦等,它們都在ARM CPU核的基礎上進行了一些外圍擴展,形成自己的處理器(如SamsungS3C2410、Motorola i.MXL9328等處理器都是采用ARM 9內核,指令一級是相同的)。而眾多中小公司又購買了這些處理器,設計了各種各樣的開發(fā)板,如華恒等國內很多著名嵌入式公司都生產基于Samsung S3C2410的開發(fā)板,供最終用戶使用或供教學實驗。
英特爾早期生產低端ARM(Strong ARM,相當于ARM 7),現在轉向生產高端ARM(即Intel Xscale處理器,相當于ARM 10,主要用在高端PDA上,如惠普和戴爾生產的PDA都采用Intel Xscale)。目前應用最多的是ARM 7和ARM 9兩類處理器。ARM 7較便宜,可運行uclinux(是一個不支持高級內存管理功能的嵌入式Linux系統(tǒng))、Vxworks、ucOS/II等實時操作系統(tǒng),但因處理器不帶內存管理單元MMU(無內存分頁和地址映射機制,不能使用虛擬內存),所以不能運行WinCE,另外通用Linux中的某些內存管理功能也不能用在ARM 7上。ARM 9是一個帶MMU功能的高端處理器,可運行WinCE或通用Linux的大多數功能。現在一般高校正在建設的嵌入式實驗室大多包括ARM 7系統(tǒng)(采用Samsung S3C44b0x開發(fā)板,主要用于嵌入式處理器結構、嵌入式Linux課程實驗)和ARM 9系統(tǒng)(采用Samsung S3C2410x開發(fā)板,主要用于WinCE課程建設),每套實驗板都配了高速仿真器。
2.嵌入式操作系統(tǒng)
除了WinCE的實時性稍差外,大多數嵌入式操作系統(tǒng)的實時性都很強,所以也被稱為實時操作系統(tǒng)(Real TimeOperating System,簡稱RTOS)。從事嵌入式的人必須至少掌握一種嵌入式操作系統(tǒng)(當然掌握兩種更好),這在嵌入式的所有技術中是最為關鍵的。目前最重要的RTOS主要包括:
傳統(tǒng)的經典RTOS:最主要的便是Vxworks操作系統(tǒng),以及Tornado開發(fā)平臺。Vxworks因出現稍早,實時性很強(可在1ms內響應外部事件請求),并且內核可極微(最小8K),可靠性較高,所以在北美,Vxworks占據了嵌入式系統(tǒng)的半壁江山。特別是在通信設備等實時性要求較高的系統(tǒng)中,RTOS幾乎非Vxworks莫屬。Vxworks的很多概念和技術都和Linux很類似,主要是C語言開發(fā)。貝爾-阿爾卡特、朗訊、華為等通信企業(yè)在開發(fā)產品時,大都會選用Vxworks。但因為Vxworks價格很高,所以一些小公司或小產品往往用不起它。目前很多公司都在往嵌入式Linux轉(比如華為)。但無論如何,Vxworks的地位在很長一段時間內仍是不可動搖的。與Vxworks類似的稍有名的RTOS還有pSOS、QNX、Nucleus等。
嵌入式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功能有限,實用性略為遜色。熟悉了Linux開發(fā),不僅在嵌入式領域有用,對開發(fā)Linux應用軟件,對加深操作系統(tǒng)的認識也有幫助,可謂一舉多得。據悉,目前英特爾、飛利浦都在搞ARM+Linux的嵌入式開發(fā),富士通則是在自己的處理器上進行Linux開發(fā)。
目前在嵌入式Linux領域,三類人才很稀缺:能將Linux移植到某個新型號的開發(fā)版上的人、能寫Linux驅動程序的人,以及熟悉Linux內核裁減和優(yōu)化的。
Windows CE嵌入式操作系統(tǒng):微軟也看準了嵌入式的巨大市場,WinCE出來只有幾年時間,但目前已占據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發(fā)的場合。WinCE目前主要為4.2版(.net),開發(fā)平臺主要為WinCE Platform Builder,有時也用EVC環(huán)境開發(fā)一些較上層的應用。由于WinCE開發(fā)都是在大家熟悉的VC++環(huán)境下,所以對學過Windows程序設計的人來說都不會有太大難度,這也是WinCE容易被人們接受的原因——熟悉開發(fā)環(huán)境、微軟的強大技術支持、開發(fā)難度遠低于嵌入式Linux。對于急于完成開發(fā)、不想拿嵌入式Linux冒險的開發(fā)場合,WinCE是最合適了。
根據不同的側重點,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永遠不可能替代WinCE,而且將來誰能占據更大份額,還很難講。畢竟很多人更愿意接受MS的平臺,就像各國政府都在大力推廣Linux應用,而且已持續(xù)很長時間,但如今真正在PC機上使用Linux的用戶并沒有占太大的比例。目前,在嵌入式平臺上,Linux是叫得最響的操作系統(tǒng),但其實還是WinCE實際應用得更多。
總之,在選擇使用哪類嵌入式操作系統(tǒng)的問題上,你要根據自己的能力和期望來具體情況具體分析。若你覺得自己功底較深且能鉆研下去,則可去學嵌入式Linux;若你覺得自己VC++功底較好,且希望短平快地學習嵌入式開發(fā),則WinCE是最好的選擇。
3.嵌入式開發(fā)的其他相關軟件技術
搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業(yè)歡迎。主要的相關領域包括:
數字圖像壓縮技術:這是嵌入式最重要、最熱門的應用領域之一,主要應掌握MPEG編解碼算法和技術,如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。
通信協(xié)議及編程技術:這包括傳統(tǒng)的TCP/IP協(xié)議和熱門的無線通信協(xié)議。首先,大多數嵌入式設備都要連入局域網或Internet,所以必須要掌握TCP/IP協(xié)議及其編程,這些都是基本技術;其次,無線通信是目前的大趨勢,所以掌握無線通信協(xié)議及編程也很重要。無線通信協(xié)議包括無線局域網通信協(xié)議802.11系列、Bluetooth(藍牙),以及移動通信(如GPRS、GSM、CDMA等)。
網絡與信息安全技術:如加密技術、數字證書CA等。
DSP技術:DSP(Digital Signal Process數字信號處理)處理器通過硬件實現數字信號處理算法,如高速數據采集、壓縮、解壓縮、通信等。數字信號處理是電子、通信等硬件專業(yè)的課程,搞軟件的人若能了解一些相關知識就更好了。目前DSP人才較為缺乏。如果你具有信號與系統(tǒng)、數字信號處理等課程的基礎,則對于學習MPEG編解碼原理有很大幫助。
4.嵌入式開發(fā)的相關硬件基礎
對于軟件工程專業(yè)的人來說,從事嵌入式軟件開發(fā),數字電路、計算機組成原理、嵌入式微處理器結構等硬件課程都是非常重要的。另外,匯編語言、C/C++、數據結構和算法,特別是操作系統(tǒng)等軟件基礎課也十分重要。學習這些內容的主要目的是為了能看懂硬件工作原理,所以重點還是應放在嵌入式軟件,特別是操作系統(tǒng)級軟件上。
如果是電子、通信類專業(yè)的人,有較好的模擬電路和單片機基礎,則學習嵌入式非常合適。嵌入式本身就是從單片機發(fā)展過來的,只是單片機不帶OS,而現在很多嵌入式應用越來越復雜,以至不得不引入嵌入式操作系統(tǒng)。另外,為追求更高速的信號處理速度,現在在一些速度要求較高的場合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來實現,這就涉及到HDL數字電路設計技術及其FPGA/IP核實現技術。
嵌入式的迷人之處在智能手機上得到了充分體現。比如,兼具MP3、英漢詞典、可閱讀Word文檔等功能的最低檔的智能手機,其處理器是ARM,OS是MS Smartphone(即WinCE.NET 4.2),簡直可作為學習嵌入式課程的產品案例了。有OS的手機果然了得,金山詞霸、Word、Excel、Regedit等居然都有Smartphone版的,PC上的MP3、Doc等文件居然在下載時都可被自動轉換成Smartphone格式。完全可用WinCE開發(fā)的一些程序將文件下載到自己的手機上。如今,PDA智能手機越來越火爆,而國產的ARM+Linux手機價格也僅為1200元左右。
總之,學習嵌入式研發(fā)設計,要么走ARM+WinCE的路,要么走ARM+Linux的路,要么走ARM+VXWORKS的路。每個從事嵌入式系統(tǒng)的人都可選擇其中的一條路,條條大路通羅馬。
嵌入式系統(tǒng)無疑是當前最熱門、最有發(fā)展前途的IT應用領域之一。嵌入式系統(tǒng)用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高。特別是隨著消費家電的智能化,嵌入式更顯重要。比如手機、PDA、電子字典、可視電話、VCD/DVD/MP3播放器、數碼相機(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)的最主要工作。目前國內很多嵌入式系統(tǒng)公司都將稍復雜的硬件設計外包給我國臺灣或國外公司設計,自己只負責開發(fā)軟件,因為嵌入式產品的差異很大程度在軟件上。因為越是智能設備,越是復雜系統(tǒng),軟件起的作用越關鍵,這是趨勢。
因此,未來嵌入式開發(fā)人員的知識結構應該包括:
1.嵌入式微處理器結構與應用
這是嵌入式硬件基礎課程,以取代傳統(tǒng)的“微機原理與接口”課程(目前國內已有少部分高校IT專業(yè)這樣做了,因為講x86微機原理與接口很難找到實際用處,只為教學而已)。嵌入式是軟硬件結合的技術,搞嵌入式軟件的人應充分了解ARM處理器工作原理和接口技術,包括ARM的匯編指令系統(tǒng)。若不了解處理器原理,怎么能控制硬件工作?怎么能寫出節(jié)省內存又運行高速的最優(yōu)代碼(嵌入式軟件設計特別講究時空效率)?怎么能寫出驅動程序(驅動程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時都要求熟悉ARM處理器。將來想從事嵌入式軟件開發(fā),公司都會給你一本該設備的硬件規(guī)格說明書,你必須能看懂其中的內存分布和端口使用等最基本的說明(就像x86匯編一樣),否則怎么設計軟件?
有些學員覺得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原因,必須在嵌入式實驗室做了一些實驗后才會覺得它看得見摸得著。還有的人對ARM匯編不感興趣,以為嵌入式開發(fā)用C語言就足夠了。其實不應僅將匯編語言當成一個程序設計語言,學匯編主要是為了掌握處理器工作原理。一個不熟悉匯編語言的人,怎么能為該處理器寫出最優(yōu)的C語言代碼呢?在嵌入式開發(fā)的一些關鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像采集和圖像解壓縮),目前主要還要靠匯編程序。當你在一個嵌入式公司工作,查看描述原理的手冊時,可能很多都是用匯編描述的,這是因為很多硬件設計人員只會寫或者喜歡用匯編描述,此時您就必須看懂匯編程序,否則軟硬件人員可能就無法交流。
目前嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM占據了絕對主流位置(手機幾乎都是使用ARM處理器)。ARM是一個只賣知識產權的公司,目前獲得購買了ARM CPU核授權許可的大公司很多,包括英特爾、三星、貝爾-阿爾卡特、摩托羅拉、飛利浦等,它們都在ARM CPU核的基礎上進行了一些外圍擴展,形成自己的處理器(如SamsungS3C2410、Motorola i.MXL9328等處理器都是采用ARM 9內核,指令一級是相同的)。而眾多中小公司又購買了這些處理器,設計了各種各樣的開發(fā)板,如華恒等國內很多著名嵌入式公司都生產基于Samsung S3C2410的開發(fā)板,供最終用戶使用或供教學實驗。
英特爾早期生產低端ARM(Strong ARM,相當于ARM 7),現在轉向生產高端ARM(即Intel Xscale處理器,相當于ARM 10,主要用在高端PDA上,如惠普和戴爾生產的PDA都采用Intel Xscale)。目前應用最多的是ARM 7和ARM 9兩類處理器。ARM 7較便宜,可運行uclinux(是一個不支持高級內存管理功能的嵌入式Linux系統(tǒng))、Vxworks、ucOS/II等實時操作系統(tǒng),但因處理器不帶內存管理單元MMU(無內存分頁和地址映射機制,不能使用虛擬內存),所以不能運行WinCE,另外通用Linux中的某些內存管理功能也不能用在ARM 7上。ARM 9是一個帶MMU功能的高端處理器,可運行WinCE或通用Linux的大多數功能。現在一般高校正在建設的嵌入式實驗室大多包括ARM 7系統(tǒng)(采用Samsung S3C44b0x開發(fā)板,主要用于嵌入式處理器結構、嵌入式Linux課程實驗)和ARM 9系統(tǒng)(采用Samsung S3C2410x開發(fā)板,主要用于WinCE課程建設),每套實驗板都配了高速仿真器。
2.嵌入式操作系統(tǒng)
除了WinCE的實時性稍差外,大多數嵌入式操作系統(tǒng)的實時性都很強,所以也被稱為實時操作系統(tǒng)(Real TimeOperating System,簡稱RTOS)。從事嵌入式的人必須至少掌握一種嵌入式操作系統(tǒng)(當然掌握兩種更好),這在嵌入式的所有技術中是最為關鍵的。目前最重要的RTOS主要包括:
傳統(tǒng)的經典RTOS:最主要的便是Vxworks操作系統(tǒng),以及Tornado開發(fā)平臺。Vxworks因出現稍早,實時性很強(可在1ms內響應外部事件請求),并且內核可極微(最小8K),可靠性較高,所以在北美,Vxworks占據了嵌入式系統(tǒng)的半壁江山。特別是在通信設備等實時性要求較高的系統(tǒng)中,RTOS幾乎非Vxworks莫屬。Vxworks的很多概念和技術都和Linux很類似,主要是C語言開發(fā)。貝爾-阿爾卡特、朗訊、華為等通信企業(yè)在開發(fā)產品時,大都會選用Vxworks。但因為Vxworks價格很高,所以一些小公司或小產品往往用不起它。目前很多公司都在往嵌入式Linux轉(比如華為)。但無論如何,Vxworks的地位在很長一段時間內仍是不可動搖的。與Vxworks類似的稍有名的RTOS還有pSOS、QNX、Nucleus等。
嵌入式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功能有限,實用性略為遜色。熟悉了Linux開發(fā),不僅在嵌入式領域有用,對開發(fā)Linux應用軟件,對加深操作系統(tǒng)的認識也有幫助,可謂一舉多得。據悉,目前英特爾、飛利浦都在搞ARM+Linux的嵌入式開發(fā),富士通則是在自己的處理器上進行Linux開發(fā)。
目前在嵌入式Linux領域,三類人才很稀缺:能將Linux移植到某個新型號的開發(fā)版上的人、能寫Linux驅動程序的人,以及熟悉Linux內核裁減和優(yōu)化的。
Windows CE嵌入式操作系統(tǒng):微軟也看準了嵌入式的巨大市場,WinCE出來只有幾年時間,但目前已占據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發(fā)的場合。WinCE目前主要為4.2版(.net),開發(fā)平臺主要為WinCE Platform Builder,有時也用EVC環(huán)境開發(fā)一些較上層的應用。由于WinCE開發(fā)都是在大家熟悉的VC++環(huán)境下,所以對學過Windows程序設計的人來說都不會有太大難度,這也是WinCE容易被人們接受的原因——熟悉開發(fā)環(huán)境、微軟的強大技術支持、開發(fā)難度遠低于嵌入式Linux。對于急于完成開發(fā)、不想拿嵌入式Linux冒險的開發(fā)場合,WinCE是最合適了。
根據不同的側重點,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永遠不可能替代WinCE,而且將來誰能占據更大份額,還很難講。畢竟很多人更愿意接受MS的平臺,就像各國政府都在大力推廣Linux應用,而且已持續(xù)很長時間,但如今真正在PC機上使用Linux的用戶并沒有占太大的比例。目前,在嵌入式平臺上,Linux是叫得最響的操作系統(tǒng),但其實還是WinCE實際應用得更多。
總之,在選擇使用哪類嵌入式操作系統(tǒng)的問題上,你要根據自己的能力和期望來具體情況具體分析。若你覺得自己功底較深且能鉆研下去,則可去學嵌入式Linux;若你覺得自己VC++功底較好,且希望短平快地學習嵌入式開發(fā),則WinCE是最好的選擇。
3.嵌入式開發(fā)的其他相關軟件技術
搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業(yè)歡迎。主要的相關領域包括:
數字圖像壓縮技術:這是嵌入式最重要、最熱門的應用領域之一,主要應掌握MPEG編解碼算法和技術,如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。
通信協(xié)議及編程技術:這包括傳統(tǒng)的TCP/IP協(xié)議和熱門的無線通信協(xié)議。首先,大多數嵌入式設備都要連入局域網或Internet,所以必須要掌握TCP/IP協(xié)議及其編程,這些都是基本技術;其次,無線通信是目前的大趨勢,所以掌握無線通信協(xié)議及編程也很重要。無線通信協(xié)議包括無線局域網通信協(xié)議802.11系列、Bluetooth(藍牙),以及移動通信(如GPRS、GSM、CDMA等)。
網絡與信息安全技術:如加密技術、數字證書CA等。
DSP技術:DSP(Digital Signal Process數字信號處理)處理器通過硬件實現數字信號處理算法,如高速數據采集、壓縮、解壓縮、通信等。數字信號處理是電子、通信等硬件專業(yè)的課程,搞軟件的人若能了解一些相關知識就更好了。目前DSP人才較為缺乏。如果你具有信號與系統(tǒng)、數字信號處理等課程的基礎,則對于學習MPEG編解碼原理有很大幫助。
4.嵌入式開發(fā)的相關硬件基礎
對于軟件工程專業(yè)的人來說,從事嵌入式軟件開發(fā),數字電路、計算機組成原理、嵌入式微處理器結構等硬件課程都是非常重要的。另外,匯編語言、C/C++、數據結構和算法,特別是操作系統(tǒng)等軟件基礎課也十分重要。學習這些內容的主要目的是為了能看懂硬件工作原理,所以重點還是應放在嵌入式軟件,特別是操作系統(tǒng)級軟件上。
如果是電子、通信類專業(yè)的人,有較好的模擬電路和單片機基礎,則學習嵌入式非常合適。嵌入式本身就是從單片機發(fā)展過來的,只是單片機不帶OS,而現在很多嵌入式應用越來越復雜,以至不得不引入嵌入式操作系統(tǒng)。另外,為追求更高速的信號處理速度,現在在一些速度要求較高的場合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來實現,這就涉及到HDL數字電路設計技術及其FPGA/IP核實現技術。
嵌入式的迷人之處在智能手機上得到了充分體現。比如,兼具MP3、英漢詞典、可閱讀Word文檔等功能的最低檔的智能手機,其處理器是ARM,OS是MS Smartphone(即WinCE.NET 4.2),簡直可作為學習嵌入式課程的產品案例了。有OS的手機果然了得,金山詞霸、Word、Excel、Regedit等居然都有Smartphone版的,PC上的MP3、Doc等文件居然在下載時都可被自動轉換成Smartphone格式。完全可用WinCE開發(fā)的一些程序將文件下載到自己的手機上。如今,PDA智能手機越來越火爆,而國產的ARM+Linux手機價格也僅為1200元左右。
總之,學習嵌入式研發(fā)設計,要么走ARM+WinCE的路,要么走ARM+Linux的路,要么走ARM+VXWORKS的路。每個從事嵌入式系統(tǒng)的人都可選擇其中的一條路,條條大路通羅馬。
總結
以上是生活随笔為你收集整理的嵌入式系统开发人员的知识结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机关于RAM的作用
- 下一篇: 永恒之蓝封445端口方法_永恒之蓝病毒解