當前位置:成語大全網 - 書法字典 - 嵌入式開發和底層開發有什麽區別?他們的概念是什麽?

嵌入式開發和底層開發有什麽區別?他們的概念是什麽?

分類:計算機/網絡> & gt編程> & gt其他編程語言

問題描述:

嵌入式開發和底層開發有什麽區別?他們的概念是什麽?

分析:

舉個很簡單的例子:

嵌入式開發。

比如PDA手機,PDA,說起來就是給硬件開發寫驅動..

嵌入式開發。

比如PDA手機,PDA,說起來就是給硬件開發寫驅動..

這個工資收入比純WEB開發高壹倍。

我給妳找篇文章吧,呵呵。

嵌入式系統無疑是最熱門、最有前景的IT應用領域之壹。嵌入式系統應用於壹些特殊設備中。通常,這些設備的硬件資源(如處理器、內存等。)都非常有限,而且對成本比較敏感,有時對實時響應要求很高。尤其是隨著消費電器的智能化,嵌入式更為重要。如手機、PDA、電子詞典、可視電話、VCD/DVD/MP3播放器、數碼相機(DC)、數碼攝像機(DV)、u盤、機頂盒、高清電視(HDTV)、遊戲機、智能玩具、交換機、路由器、數控設備或儀器、汽車電子、家電控制系統、醫療保健。

嵌入式系統是軟件和硬件的結合,從事嵌入式開發的有兩種人。

壹類是硬件專業的,比如電子工程,通信工程。他們主要從事硬件設計,有時還要開發壹些與硬件關系最密切的底層軟件,比如BootLoader、板卡支持等。

包(就像PC的BIOS,它驅動硬件向下,支持操作系統向上),最基本的硬件驅動程序等。他們的優點是對硬件原理非常清楚,缺點是更擅長定義各種硬件接口,但往往無法應對復雜的軟件系統(如嵌入式操作系統原理和復雜的應用軟件)。

另壹類是軟件和計算機專業的人,主要從事嵌入式操作系統和應用軟件的開發。如果我們這些軟件學習者很好的掌握了硬件原理和接口,也可以寫BSP和硬件驅動。嵌入式硬件設計出來之後,各種功能都是通過軟件來實現的,嵌入式設備的增值很大程度上依賴於嵌入式軟件,嵌入式軟件占了嵌入式系統最重要的工作(目前很多公司都把硬件設計包給了專門的硬件公司,稍微復雜壹點的硬件都是由臺灣省或者國外的公司來設計,所以國內的硬件設計實力非常薄弱,很多嵌入式公司只負責自己開發軟件, 因為他們都知道,嵌入式產品的區別很大程度上在軟件上,軟件是最“花裏胡哨”的),所以我們這些搞軟件的根本不用擔心自己在嵌入式市場的地位。 智能設備和復雜系統越多,關鍵軟件就越重要,這是當前的趨勢。

從事嵌入式軟件開發的優勢在於:

(1)

目前這方面的人國內外都很稀缺。壹方面,非專業的IT人員很難切入這個領域,因為這個領域的進入門檻很高,不僅要了解底層的軟件(如操作系統級、驅動程序級軟件),還要對軟件的專業水平有更高的要求(嵌入式系統在軟件設計上要求更高的時空效率),還要了解硬件的工作原理。另壹方面,由於這壹領域相對較新,目前發展太快,許多軟硬件技術(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議等。)已經很久沒有出現了,掌握這些新技術的人當然很難找。嵌入式人才稀缺,價值自然高。他們越有經驗,他們的價格就越高。其實嵌入式人才是稀缺的,根本原因可能是大部分人都是無條件接觸,這就需要相應的嵌入式開發板和軟件,以及有經驗的人來指導開發過程。

(2)

與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常較低(但收入不低)。對於搞企業應用軟件的IT企業來說,這個用戶的系統做好了,又要搞下壹個用戶的,每個用戶的需求和完成時間都要根據客戶的要求來改變,往往是疲憊和重復的。相比之下,從事嵌入式系統的公司有自己的產品計劃,按照自己的節奏行事。開發出來的產品壹般都是通用的,不會被不同的客戶修改。壹個產品型號開發出來後,往往會有很長壹段空閑時間(或者只是對軟件做壹些小修),有時間充電休息。另外大家從事嵌入式軟件的工作範圍比較窄,涉及的專業技術範圍就是那些(ARM,RTOS,MPEG,802.11等。).時間久了,這些東西就會越來越有經驗,就會去賣舊書。幾個說明就夠那些新手琢磨半年了。如果妳是搞應用軟件的,也許下壹個客戶會換壹個完全不同的軟件開發平臺,那就苦了。

(3)

如果有壹天妳想創業,想做自己的產品,那麽嵌入是個不錯的主意,不像應用軟件那麽容易被盜版。土木工程學院壹家叫啟星的公司開發了壹款叫“Project E”的手持PDA(南校區門口有廣告)。施工技術人員可以用這款PDA現場進行土建預算估算等土建計算,據說賣得很好。我認識的壹個大學老師,他為餐廳開發了壹個PDA(WinCE平臺,可以無線上網)。據他說,它賣得很好,餐館可以讓顧客點擊PDA點餐,這更時尚。記得00級2+2班的壹群學生在學習Windows編程課程時,用VC++設計了壹個功能強大的菜單系統作為課程項目。當時我真的很想建議他們把這個軟件做成PDA,估計會有壹些銷量(上海火車站南廣場的麥當勞用壹個漂亮的PDA給用戶點餐,就像壹個像樣的)。這些PDA的硬件設計通常由其他公司定制(這稱為“OEM”),它們都是常見的硬件。我們只是設計軟件,成為自己的產品。

從事嵌入式軟件開發的劣勢有:

(1)

入門起點高,使用的技術往往難度大。如果軟硬件基礎不好,尤其是操作系統級軟件基礎不深,可能不適合此行。

(2)

這方面的企業數量遠遠少於企業計算企業。特別是嵌入式小企業多(小企業要自己做產品),知名大公司少(嵌入式大公司主要有英特爾、摩托羅拉、TI、飛利浦、三星、索尼、Futjtum、貝爾-阿爾卡特、意法半導體、中晶、研華、華為、中興、SVA等制造企業)。這些企業習慣性的思維方式是找電子、通信等硬專業的人。因為我們學院以前的畢業生主要是企業計算,所以我們學院和這些企業的接觸相對較少。我院正在積極努力,目前已經和其中心分部建立了聯系,爭取我院學生將來在這些企業實習或就業。

(3)少數公司往往要求碩士以上學歷的人從事嵌入式技術,主要是基於嵌入式技術的難度。但是大部分公司沒有這個要求,只要有經驗就行。

如果我們學院的學生學習嵌入式系統,顯然應該側重於嵌入式軟件,尤其是嵌入式操作系統,這應該是我們的強項。對於從事嵌入式軟件的人來說,最重要的技術顯然是(其實很多公司的招聘廣告裏都有寫):

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

(2)必須掌握嵌入式操作系統。

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

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

(1)

嵌入式微處理器的結構與應用:這是壹門嵌入式硬件的基礎課程,取代了我院傳統的課程“微機原理與接口”(目前國內高校的少數it專業都在做,因為講x86微機原理與接口很難找到實際用途,只是為了教學)。我們說過,嵌入式軟件是硬件和軟件的結合,從事嵌入式軟件的人要對ARM處理器的工作原理和接口技術有充分的了解,包括ARM的匯編指令系統。如果不了解處理器的原理,怎麽控制硬件工作,怎麽寫出最節省內存高速運行的代碼(嵌入式軟件設計特別註重時空效率),怎麽寫驅動程序(驅動程序都是和硬件打交道的)?許多公司在招聘嵌入式軟件人員時,要求熟悉ARM處理器。以後如果學生來公司開發嵌入式軟件,公司會給妳壹份設備的硬件說明書。

(xxx

規格),妳必須能理解內存分配、端口使用等最基本的指令(就像x86匯編壹樣),否則如何設計軟件。有些同學認為嵌入式處理器課程很枯燥,這主要是因為硬件課程比較抽象。我們的嵌入式實驗室在5438年6月+10月建好之後,妳做壹些實驗就會覺得摸得著。有些同學對ARM匯編不感興趣,認為C語言做嵌入式開發就夠了。其實不應該只是把匯編語言當成編程語言,學習匯編主要是為了掌握處理器的工作原理。壹個不熟悉匯編語言的人如何在這個處理器上寫出最好的C語言代碼?在嵌入式開發的壹些關鍵部分,有時候需要寫壹個程序集,比如Bootloader(可能還有BSP)。尤其是在速度要求極高的情況下(比如DSP處理器的高速圖像采集和圖像解壓縮),目前程序主要是由sinks編寫的(我看到很多公司都是這麽做的)。在嵌入式公司工作,看描述原理的手冊,可能很多都是用匯編描述的(我也遇到過)。這是因為很多硬件設計師只會寫或者喜歡用匯編來描述。這個時候妳壹定要懂匯編程序,否則軟硬件人員可能無法溝通。很多嵌入式崗位在招聘時都要求熟悉組裝。

(2)嵌入式操作系統課程

除了WinCE,大部分嵌入式操作系統都具有很強的實時性,所以也可以稱之為實時操作系統。

操作的

系統。從事嵌入式系統的人,至少要掌握壹個嵌入式操作系統(當然掌握兩個更好),這是所有嵌入式技術中最關鍵的。目前,最重要的RTOS主要包括:

第壹類,傳統經典RTOS:最重要的是Vxworks操作系統及其Tornado開發平臺。由於Vxworks出現的時間稍早,實時性強(據說可以在1ms內響應外部事件請求),內核可以極小(據說可以小到8K),可靠性高,所以在北美,Vxworks占據了嵌入式系統的壹半以上。尤其是在通信設備等實時性要求高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術和Linux類似,主要是C語言開發。Vxworks被貝爾-阿爾卡特、朗訊、華為等通信公司在開發產品時廣泛使用。但是因為價格高,Vxworks在壹些小公司或者產品上用不了。目前很多公司都在轉嵌入式Linux(聽說華為目前也在這麽做)。但無論如何,Vxworks在很長壹段時間內都不會動搖。類似Vxworks的還有RTOS如pSOS、QNX、Nucleus等。

第二類,嵌入式Linux操作系統:Linux除了作為服務器操作系統,最成功的未來是在嵌入式領域的應用。當然原因是免費,開源,支持很多軟件,吸引很多用戶,所以嵌入式產品成本會低。Linux本身不是為嵌入式系統設計的操作系統,也不是微內核,實時性不強。目前在嵌入式領域應用的Linux系統主要有兩類:壹類是專門為嵌入式系統設計的cut Linux系統,最常用的是uClinux(無MMU功能),目前在應用中占很大份額,可以在ARM7上運行;另壹個挽著胳膊跑。

9,壹般是Linux。

2.4.18內核移植在上面,可以使用更多的Linux功能(當然uClinux可以在ARM上運行。

9開)。很多人預測,嵌入式Linux將占嵌入式操作系統的50%以上,這壹點非常重要。缺點是熟悉Linux的人太少,開發難度略大。另外,目前我們可以發現很多教材和很多大學都使用ucOS/II作為教學的實時操作系統。這主要是因為ucOS/II簡單開源,非常適合初學者學習實時操作系統的原理。但由於ucOS/II功能有限,實際使用較少,並不是我院的教學重點。要學就要學直接實用的,比如

UClinux很實用。除此之外,熟悉Linux開發不僅在嵌入式領域有用,對於開發Linux應用軟件和加深對操作系統的理解也有幫助,可謂壹舉兩得。據我所知,目前Intel和Philip都在做ARM+LINUX的嵌入式開發,而Fujitum在做自己處理器上的LINUX開發。目前在嵌入式Linux領域,特別難找到以下幾個方面的人:壹個是把Linux移植到新的模型開發版本;第二,會寫Linux驅動的人;第三,熟悉Linux內核縮減和優化的人。我院嵌入式Linux的課程系列是:本科操作系統必修課,然後是Linux編程選修課,最後是嵌入式Linux系統選修課。目前我們學院在Linux方面有很強的實力。魏老師和張老師熟悉Linux開發,金老師和唐老師熟悉Linux系統管理。

第三類,Windows

CE嵌入式操作系統:微軟也看到了巨大的嵌入式市場,MS永遠是最好的。WinCE雖然才出了幾年,但是目前已經占據了很大的市場份額,尤其是在PDA、手機、顯示儀表等接口要求高或者開發速度快的場合,WinCE目前很受歡迎(據說有壹家賣工控機的公司賣板卡賣的太好了,根本來不及給客戶切WinCE)。目前WinCE主要是4.2版本(。NET),開發平臺主要是WinCE Platform Builder。有時,壹些上層應用程序是在EVC環境下開發的。因為WinCE開發是大家比較熟悉的VC++環境,所以我院學過Windows編程課程的同學不會有太大的難度,這也是WinCE容易被人們接受的原因。開發環境方便快捷,加上微軟強大的技術支持,WinCE的開發難度遠低於嵌入式Linux。WinCE最適合急於完成,又不想用嵌入式Linux冒險的開發場合(找嵌入式Linux的人沒那麽好找)。畢竟公司不能像學生壹樣去嘗試,保證開發成功更重要。根據側重點不同,WinCE有兩個特殊版本,壹個是MS PocketPC操作系統專用於PDA(掌上電腦),另壹個是MS SmartPhone操作系統用於智能手機(具有PDA功能的手機),兩者都屬於WinCE平臺。在PDA和手機市場,除了WinCE之外,還有其他知名的PDA嵌入式操作系統,如Palm OS(因其早期出現而聞名)和Symbian等。但在WinCE的強烈沖擊下,Palm和Symbian未來還能有多久?我院可能是國內唯壹開設“Windows CE嵌入式操作系統”專題課程的學院,主要原因如下:我院本身前面就有Windows編程的課程,學生學習VC++後學習WinCE非常方便自然。通過學習WinCE,他們還可以了解嵌入式軟件的壹般開發流程,這也適合對Linux有所畏懼的學生。顯然,嵌入式LINUX永遠無法取代WinCE,未來誰會占大份額還很難說。畢竟很多人更願意接受MS這個平臺,就像各國推Linux已經很久了,但是妳能看到有多少用戶真正在PC上使用LINUX?據我觀察,目前嵌入式平臺上LINUX呼聲最高,但WinCE其實用得更多。嵌入式LINUX可能更多的是有長期產品規劃的公司,從長遠考慮降低成本;

二、微軟亞洲研究院對我院WinCE課程的支持計劃。我們也希望我們學院的壹些同學以後可以通過微軟的面試來實踐。WinCE和多媒體(比如MPEG技術)是微軟亞洲工程院目前做的比較多的項目領域之壹,他們需要精通WinCE的人。

總結嵌入式操作系統的課程。如果妳覺得自己基礎很深,可以努力學習,可以學習嵌入式Linux。如果妳覺得自己有很好的VC++基礎,想快速學習嵌入式開發,我們學院的WinCE課程是最好的選擇。

(3)嵌入式開發的其他相關軟件課程。

如果熟悉嵌入式應用的壹些主要領域,這類人更受企業歡迎。主要相關領域包括:

A.數字圖像壓縮技術:這是嵌入式系統最重要和最流行的應用領域之壹。主要是需要掌握MPEG編解碼算法和技術,比如DVD、MP3、PDA、高清電視、機頂盒等都涉及到MPEG高速解碼。為此,我院預約了壹位可以開設數字圖像處理課程的醫生。

b .通信協議和編程技術:這包括傳統的TCP/IP協議和流行的無線通信協議。首先,大部分嵌入式設備都要接入局域網或互聯網,所以首先要掌握TCP/IP協議及其編程,這是需要首先掌握的基礎技術。其次,目前無線通信是大勢所趨,所以掌握無線通信協議和編程也很重要。無結通信協議包括無線局域網通信協議802.11系列、藍牙、移動通信(如GPRS、GSM、CDMA等。).

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

D.DSP技術:DSP就是數字信號。

過程數字信號處理是指DSP處理器通過硬件實現數字信號處理算法,如高速數據采集、壓縮、解壓縮、通信等。數字信號處理是電子、通信等硬件專業的課程,搞軟件的最好懂。目前DSP人才緊缺。如果妳有信號與系統、數字信號處理等課程的基礎,對學習MPEG編解碼原理會很有幫助。

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

對於軟件工程專業的學生來說,重要的是從事嵌入式軟件開發,比如數字電路、計算機組成原理、嵌入式微處理器結構等硬件課程。此外,匯編語言、C/C++、數據結構與算法等軟件基礎課程,尤其是操作系統也很重要。我們的主要目的是了解硬件的工作原理,但重點應該是嵌入式軟件,尤其是操作系統級的軟件,這將是我們的優勢。

我們有些研究生是電子與通信專業的,在模擬電路和單片機方面有很好的基礎,非常適合學習嵌入式系統。嵌入式本身就是從單片機發展而來的,但是單片機沒有OS,現在很多嵌入式應用越來越復雜,以至於不得不引入嵌入式操作系統。另外,為了追求更高的信號處理速度,現在很多公司都是用硬件實現壹些DSP算法,比如MPEG壓縮和解壓縮算法,這就涉及到HDL數字電路設計技術及其FPGA/IP核心實現技術,而這方面的人目前市場上也比較稀缺。

離題

另外,會寫驅動的人目前比較緊缺(驅動也可以屬於嵌入式範疇),包括DDK開發環境和桌面Windows的WDM驅動。該公司將不斷推出新產品。每壹個新產品出來。如果能被系統使用,就要寫驅動了。寫驅動需要掌握操作系統(如Windows或Linux)的內部工作原理,涉及少量硬件知識,很難找到這方面的人。想當高手的同學也可以在驅動方面有所突破。我可以說說我自己的經歷。三年前,我在壹家公司簡單寫過壹個WinCE驅動(正是因為知道這個領域缺人,才不得不這麽做)。雖然我之前沒做過司機,但是我在應聘那個職位的時候就確定公司很難招到這個領域的人。既然找不到人,就得有人做司機,這是切入這個領域的大好機會。面試的時候,我談到我寫過多少上萬行的匯編語言,對計算機的工作原理有多清楚。我在簡歷裏寫了我看了兩本關於Windows驅動模型的英文原版書,寫了幾個小的驅動練習程序(其實根本沒寫。我們同學以後千萬不要像我壹樣苦練,才不會落到我這種地步。不用像我壹樣“騙”公司,這是典型的反面教材),但是壹切都過(當然最重要的是筆試和面試題都過得去),這只能說明這個領域的人難找。公司沒指望找個做過司機的,找個有相關基礎的就不錯了。做了之後,找起來就沒那麽難了。其實在司機身上工作是很舒服的。做完壹個版本,會空壹段時間。只有在公司新的芯片推出或者新的OS出現之後,才需要開發新版本的驅動程序。當時閑了近壹個月等WinCE的測試版。NET Beta被推出,準備把驅動升級到CE .NET,現在整天忙著在軟件所工作,無限懷念那段無憂無慮的時光。

無獨有偶,最近無意中又體驗到了嵌入式的魅力。上周,我用了三年的手機終於不能用了。這次更新,除了手機常見的功能,最好還有MP3功能(現在很多英語聽眾都有MP3文件),壹本英漢詞典,WORD文檔。最後我選擇了最便宜的符合以上條件的手機多普達515(切我2.2K,不過就當是我對嵌入式業務的支持吧,我願意開),這是最低配的智能手機。回去查壹下,手機的about顯示這款手機的處理器是ARM,OS是MS Smartphone(即WinCE。NET 4.2),這麽巧,可以作為學習嵌入式課程的產品案例(我們的WinCE課程很豐富多彩之後,希望能從微軟研究院弄點智能手機來開發)。帶OS的手機真的很棒。金山詞霸,WORD,EXCEL,REGEDIT等。都有*** artphone版本。PC上的MP3和DOC下載時可以自動轉換成*** artphone格式,真的很酷。可以用Windows CE開發壹些必要的程序,下載到手機上。現在市場上流行PDA智能手機,MS總是財源滾滾。但是我發現市面上出現的國產ARM+LINUX的手機,價格只有1.2K。