嵌入式工程師經驗常識分享_第1頁
嵌入式工程師經驗常識分享_第2頁
嵌入式工程師經驗常識分享_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

嵌入式工程師經驗常識分享本文將從技術和就業經驗等角度為即將進入嵌入式開發的工程師們,詳細講述了嵌入式的概念,嵌入式開發之間的異同以及應該如何做出選擇。以下都是前輩的一些經驗之談,希望對大家有所幫助。

第一.工程師眼中的“嵌入式系統”

在工程師看來:著重理解“嵌入”的概念,主要從三個方面上來理解。

1.從硬件上,將基于CPU的處圍器件,整合到CPU芯片內部,比如早期基于X86體系結構下的計算機,CPU只是有運算器和累加器的功能,一切芯片要靠外部橋路來擴展實現,象串口之類的都是靠外部的16C550/2的串口控制器芯片實現。目前的這種串口控制器芯片早已集成到CPU內部,還有PC機有顯卡,而多數嵌入式處理器都帶有LCD控制器,但其種意義上就相當于顯卡。比較高端的ARM類IntelXscale架構下的IXP網絡處理器CPU內部集成PCI控制器(可配成支持4個PCI從設備或配成自身為CPI從設備);還集成3個NPE網絡處理器引擎,其中兩個對應于兩個MAC地址,可用于網關交換用,而另外一個NPE網絡處理器引擎支持DSL,只要外面再加個PHY芯片即可以實現DSL上網功能。IXP系列最高主頻可以達到1.8G,支持2G內存,1G×10或10G×1的以太網口或Febrechannel的光通道。IXP系列應該是目標基于ARM體系統結構下由intel進行整合后成Xscale內核的最高的處理器了。

2、從軟件上前,就是在定制操作系統內核里將應用一并選入,編譯后將內核下載到ROM中。而在定制操作系統內核時所選擇的應用程序組件就是完成了軟件的“嵌入”,比如WinCE在內核定制時,會有相應選擇,其中就是wordpad,PDF,MediaPlay等等選擇,如果我們選擇了,在CE啟動后,就可以在界面中找到這些東西,如果是以前PC上將的windows操作系統,多半的東西都需要我們得新再裝。

3、把軟件內核或應用文件系統等東西燒到嵌入式系統硬件平臺中的ROM中就實現了一個真正的“嵌入”。

以上的定義是我在6、7年前給嵌入式系統下自話側重于理解型的定義,書上的定義也有很多,但在這個領域范圍內,誰都不敢說自己的定義是十分確切的,包括那些專家學者們,因為畢竟嵌入式系統是計算機范疇下的一門綜合性學科。

二.嵌入式系統的分層及對口專業要求

嵌入式系統分為4層,硬件層、驅動層、操作系統層和應用層。

1.硬件層:是整個嵌入式系統的根本。如果現在單片機及接口這塊很熟悉,并且能用C和匯編語言來編程的話,從嵌入式系統的硬件層走起來相對容易,硬件層也是驅動層的基礎,一個優秀的驅動工程師是要能夠看懂硬件的電路圖和自行完成CPLD的邏輯設計的,同時還要對操作系統內核及其調度性相當的熟悉的。但硬件平臺是基礎,增值還要靠軟件。

硬件層比較適合于電子、通信、自動化、機電一體、信息工程類專業的人來搞。需要掌握的專業基礎知識,有:單片機原理及接口技術、微機原理及接口技術、C語言等。

2.驅動層:這部分相對而言比較難。驅動工程師不僅要能看懂電路圖,還要能對操作系統內核十分的精通,以便其所寫的驅動程序在系統調用時,不會獨占操作系統時間片,而導至其它任務不能動行。若不懂操作系統內核架構和實時調度性、沒有良好的驅動編寫風格、按大多數書上所說添加的驅動的方式,這樣可能連個初級的驅動工程師的水平都達不到,這樣所寫的驅動在應用調用時就如同windows下我們打開一個程序運行后,再打開一個程序時,要不就是中斷以前的程序,要不就是等上一會才能運行后來打開的程序。想做個好的驅動人員沒有三、四年功底,操作系統內核不研究上幾遍,不是太容易成功的,但其工資在嵌入式系統四層中可是最高的。

驅動層比較適合于電子、通信、自動化、機電一體、信息工程類專業尤其是計算機偏體系結構類專業的人來搞。當然除硬件層所具備的基礎學科外,還要對數據結構與算法、操作系統原理、編譯原理都要十分精通。

3.操作系統層:對于操作系統層而言目前可能只能說是簡單的移植,而很少有人來自已寫操作系統,或者寫出缺胳膊少腿的操作系統來,這部分工作大都由驅動工程師來完成。操作系統是負責系統任務的調試、磁盤和文件的管理,而嵌入式系統的實時性十分重要。據說,XP操作系統是微軟投入300人用兩年時間才搞定的,總時工時是600人/年;中科院軟件所自己的女媧Hopen操作系統估計也得花遇幾百人/年才能搞定。因此這部分工作相對來講沒有太大意義。

4.應用層:相對來講較為容易。如果會在windows下如何進行編程接口函數調用,到操作系統下只是編譯和開發環境有相應的變化而已。如果涉及Jave方面的編程也是如此的。嵌入式系統中涉及算法的由專業算法的人來處理的,不必歸結到嵌入式系統范疇內。但如果涉及嵌入式系統下面嵌入式數據庫、基于嵌入式系統的網絡編程和基于某此應用層面的協議應用開發(比如基于SIP、H.323、Astrisk)方面又較為復雜,并且有難度了。

三.目標與定位

先有目標,再去定位。

學ARM,從硬件上講,一方面就是學習接口電路設計,另一方面就是學習匯編和C語言的板級編程。如果從軟件上講,就是要學習基于ARM處理器的操作系統層面的驅動和移植了。這些對于初學者來說必須明確,要么從硬件著手開始學,要么從操作系統的熟悉到應用開始學,但不管學什么,只要不是純的操作系統級以上基于API的應用層的編程,硬件的寄存器類的東西還是要能看懂的、基于板級的匯編和C編程還是要會的。因此針對于嵌入式系統的硬件層和驅動層的人來說,ARM的接口電路設計、ARM的C語言和匯編語言編程及調試開發環境還是需要掌握的。

對于初學者必然要把握住方向,自己的目標是什么,自己要在哪一層面上走。然后再著手學習才比較好,與ARM相關的嵌入式系統的較為實際的兩個層面硬件層和驅動層,不管學好了那一層都會很有前途的。

如果想從嵌入式系統的應用層面的走的話,可能與ARM及其它體系相去較遠,要著重研究基嵌入式操作系統的環境應用與相應開發工具鏈,比如WinCe操作系統下的EVC應用開發(與windows下的VC相類似),如果想再有突破就往某些音視頻類的協議上靠,比如VOIP領域的基于SIP或H.323協議的應用層開發,或是基于嵌入式網絡數據庫的開發等等。

對于初學者來講,要量力而行,不要認為驅動層工資高就把它當成方向了,要結合自身特點,嵌入式系統四個層面上無論哪個層面上來講都是有高人存在,當然高人也對應的高工資。我是做硬件層的,以前每月工資中個人所得稅要被扣上近3千大元。當然我一方面充當工程師的角色,一方面充當主管人物的角色,兩個職位我一個人干,但上班時間就那些。硬件這方面上可能與我PK的人很少了,才讓我拿到那么多的工資。

四.如何選擇合適的開發系統

很多ARM初學者都希望有一套自己能用的系統,但他們住住會產生一種錯誤認識就是認為處理器版本越高、性能越高越好,就象很多人認為ARM9與ARM7好,我想對于初學者在此方面以此入門還應該理智,開發系統的選擇最終要看自己往嵌入式系統的那個方向上走,是做驅動開發還是應用,還是做嵌入式系統硬件層設計與板級測試。如果想從操作系統

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論