嵌入式工程師的軟硬件道路三步曲!new_第1頁
嵌入式工程師的軟硬件道路三步曲!new_第2頁
嵌入式工程師的軟硬件道路三步曲!new_第3頁
嵌入式工程師的軟硬件道路三步曲!new_第4頁
嵌入式工程師的軟硬件道路三步曲!new_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、硬件道路: 第一步: pcb設(shè)計,一般為開發(fā)板的電路裁減和擴(kuò)充,由開發(fā)板原理圖為基礎(chǔ),畫出PCB和封裝庫,設(shè)計自己的電路。 第二步: SOPC技術(shù),一般為FPGA,CPLD開發(fā),利用VHDL等硬件描述語言做專用芯片開發(fā),寫出自己的邏輯電路,基于ALTER或XILINUX的FPGA做開發(fā)。 第三步: SOC設(shè)計,分前端,后端實現(xiàn),這是硬件設(shè)計的核心技術(shù):芯片設(shè)計.能做到這步,已經(jīng)不屬于平凡的技術(shù)人員。 軟件道路: 第一步:bootloader的編寫,修改, 通過這步熟悉ARM硬件結(jié)構(gòu),學(xué)習(xí)ARM匯編語言,閱讀ARM的芯片手冊,感覺就是像操作51單片機(jī)一樣操作ARM芯片.這一步最好的兩個參考資料就

2、是:芯片手冊和bootloader源代碼。 第二步:系統(tǒng)移植, 驅(qū)動開發(fā), 我只做過linux方向,所以也推薦學(xué)習(xí)嵌入式linux系統(tǒng),作為標(biāo)準(zhǔn)體系,他開源而且可以獲得大量學(xué)習(xí)資料.操作系統(tǒng)是整個計算機(jī)科學(xué)的核心,熟悉 kernel實屬不易,kernel, 驅(qū)動開發(fā)的學(xué)習(xí),沒有什么捷徑,只有多讀代碼,多寫代碼,熟悉系統(tǒng)API. understanding linux kernel , linux device driver 都是不可多得的好書,值得一看。 第三步:應(yīng)用程序的編寫,各種GUI的移植,qt , minigui都被大量采用,兩種思想都類似,熟悉一種就可以。 軟件道路中,驅(qū)動,系統(tǒng)應(yīng)該

3、是最深入的部分,不是短時間可以掌握的,需要有勇氣和耐心。嵌入式開發(fā),軟硬結(jié)合,因為硬件條件比PC差很多,所以肯定會遇見不少問題,因此實踐的勇氣更加重要.有問題就解決問題,無數(shù)次的實驗,也許是解決問題的必由之路。嵌入式系統(tǒng)是軟硬結(jié)合的東西,搞嵌入式開發(fā)的人有兩類。 一類是學(xué)電子工程、通信工程等偏硬件專業(yè)出身的人,他們主要是搞硬件設(shè)計,有時要開發(fā)一些與硬件關(guān)系最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅(qū)動硬件,往上支持操作系統(tǒng)),最初級的硬件驅(qū)動程序等。他們的優(yōu)勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對復(fù)雜

4、軟件系統(tǒng)往往力不從心(例如嵌入式操作系統(tǒng)原理和復(fù)雜應(yīng)用軟件等)。 另一類是學(xué)軟件、計算機(jī)專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。如果我們學(xué)軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫B(tài)SP和硬件驅(qū)動程序。嵌入式硬件設(shè)計完后,各種功能就全靠軟件來實現(xiàn)了,嵌入式設(shè)備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統(tǒng)的最主要工作(目前有很多公司將硬件設(shè)計包給了專門的硬件公司,稍復(fù)雜的硬件都交給臺灣或國外公司設(shè)計,國內(nèi)的硬件設(shè)計力量很弱,很多嵌入式公司自己只負(fù)責(zé)開發(fā)軟件,因為公司都知道,嵌入式產(chǎn)品的差異很大程度在軟件上,在軟件方面是最有“花頭“可做的),所以我們搞軟件的人完全不用

5、擔(dān)心我們在嵌入式市場上的用武之地,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢。 從事嵌入式軟件開發(fā)的好處是: (1)目前國內(nèi)外這方面的人都很稀缺。一方面,是因為這一領(lǐng)域入門門檻較高,不僅要懂較底層軟件(例如操作系統(tǒng)級、驅(qū)動程序級軟件),對軟件專業(yè)水平要求較高(嵌入式系統(tǒng)對軟件設(shè)計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業(yè)IT人員很難切入這一領(lǐng)域;另一方面,是因為這一領(lǐng)域較新,目前發(fā)展太快,很多軟硬件技術(shù)出現(xiàn)時間不長或正在出現(xiàn)(如ARM處理器、嵌入式操作系統(tǒng)、MPEG技術(shù)、無線通信協(xié)議等),掌握這些新技術(shù)的人當(dāng)然很找。嵌入式人才稀缺,身價自然就高,越有

6、經(jīng)驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數(shù)人無條件接觸,這需要相應(yīng)的嵌入式開發(fā)板和軟件,另外需要有經(jīng)驗的人進(jìn)行指導(dǎo)開發(fā)流程。 (2)與企業(yè)計算等應(yīng)用軟件不同,嵌入式領(lǐng)域人才的工作強(qiáng)度通常低一些(但收入不低)。搞企業(yè)應(yīng)用軟件的IT企業(yè),這個用戶的系統(tǒng)搞完了,又得去搞下一個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲于奔命,重復(fù)勞動。相比而言,搞嵌入式系統(tǒng)的公司,都有自己的產(chǎn)品計劃,按自己的節(jié)奏行事。所開發(fā)的產(chǎn)品通常是通用的,不會因客戶的不同而修改。一個產(chǎn)品型號開發(fā)完了,往往有較長一段空閑時間(或只是對軟件進(jìn)行一些小修補(bǔ)),有時間進(jìn)行充電和休整。另外,從事嵌入式軟件

7、的每個人工作范圍相對狹窄,所涉及的專業(yè)技術(shù)范圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越搞越有經(jīng)驗,賣賣老本,幾句指導(dǎo)也夠讓那些初入道者琢磨半年的。若搞應(yīng)用軟件,可能下一個客戶要換成一個完全不同的軟件開發(fā)平臺,那就苦了。 (3)哪天若想創(chuàng)業(yè),搞自已的產(chǎn)品,那么嵌入式是一個不錯的主意,這可不像應(yīng)用軟件那樣容易被盜版。土木學(xué)院有一個叫啟明星的公司開發(fā)出一個好象叫“工程e”的掌上PDA(南校區(qū)門口有廣告),施工技術(shù)人員用該PDA可當(dāng)場進(jìn)行土木概預(yù)算和其它土木計算,據(jù)說銷路特好。我認(rèn)識的某大學(xué)老師,他開發(fā)的飯館用的點菜PDA(WinCE平臺,可無線連網(wǎng)和上網(wǎng)),據(jù)他說

8、銷路不錯,飯館點點PDA讓客戶點菜,多顯派頭檔次。我記得00級2+2班當(dāng)年有一組同學(xué)在學(xué)Windows程序設(shè)計課程時用VC+設(shè)計了一個功能很強(qiáng)的點菜系統(tǒng)做為課程項目,當(dāng)時真想建議他們將這個軟件做成PDA,估計會有些銷路(上?;疖囌灸蠌V場的Macdonald便使用很漂亮的PDA給用戶點食品,像摸像樣的)。這些PDA的硬件設(shè)計一般都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設(shè)計軟件就變成自己的產(chǎn)品了。 從事嵌入式軟件開發(fā)的缺點是: (1)入門起點較高,所用到的技術(shù)往往都有一定難度,若軟硬件基礎(chǔ)不好,特別是操作系統(tǒng)級軟件功底不深,則可能不適于此行。 (2)這方面的企業(yè)數(shù)量要

9、遠(yuǎn)少于企業(yè)計算類企業(yè)。特別是從事嵌入式的小企業(yè)數(shù)量較多(小企業(yè)要搞自己的產(chǎn)品創(chuàng)業(yè)),知名大公司較少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半導(dǎo)體、Microtek、研華、華為、中興通信、上廣電等制造類企業(yè))。這些企業(yè)的習(xí)慣思維方式是到電子、通信等偏硬專業(yè)找人。 (3)有少數(shù)公司經(jīng)常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數(shù)公司也并無此要求,只要有經(jīng)驗即可。 同學(xué)若學(xué)習(xí)嵌入式,顯然應(yīng)偏重于嵌入式軟件,特別是嵌入式操作系統(tǒng)方面。對于搞嵌入式軟件的人,最重要的技術(shù)顯然是(實際上很多

10、公司的招聘廣告上就是這樣寫的): (1) 掌握主流嵌入式微處理器的結(jié)構(gòu)與原理 (2) 必須掌握一個嵌入式操作系統(tǒng) (3) 必須熟悉嵌入式軟件開發(fā)流程并至少做過一個嵌入式軟件項目。 嵌入式軟件方面最重要的課程包括: (1)嵌入式微處理器結(jié)構(gòu)與應(yīng)用:這是一門嵌入式硬件基礎(chǔ)課程,我院用這門課取代了傳統(tǒng)的“微機(jī)原理與接口”課程(目前國內(nèi)已有少部分高校IT專業(yè)這樣做了,因為講x86微機(jī)原理與接口很難找到實際用處,只為教學(xué)而已)。我們說過,嵌入式是軟硬件結(jié)合的技術(shù),搞嵌入式軟件的人應(yīng)對ARM處理器工作原理和接口技術(shù)有充分了解,包括ARM的匯編指令系統(tǒng)。若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節(jié)省

11、內(nèi)存又運行高速的最優(yōu)代碼(嵌入式軟件設(shè)計特別講究時空效率),怎么能寫出驅(qū)動程序(驅(qū)動程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時都要求熟悉ARM處理器,將來若同學(xué)到公司中從事嵌入式軟件開發(fā),公司都會給你一本該設(shè)備的硬件規(guī)格說明書 (xxx Specification),您必須能看懂其中的內(nèi)存分布和端口使用等最基本的說明(就像x86匯編一樣),否則怎么設(shè)計軟件。有些同學(xué)覺得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原因,等我們的嵌入式實驗室10月份建好后,您做了一些實驗后就會覺得看得見摸得著。還有同學(xué)對ARM匯編不感興趣,以為嵌入式開發(fā)用C語言就足夠了。其實不應(yīng)僅是將匯編語言當(dāng)

12、成一個程序設(shè)計語言,學(xué)匯編主要是為了掌握處理器工作原理的。一個不熟悉匯編語言的人,怎么能在該處理器寫出最優(yōu)的C語言代碼。在嵌入式開發(fā)的一些關(guān)鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像采集和圖像解壓縮),目前主要還要靠匯編寫程序(我看到過很多公司是這樣做的)。當(dāng)您在一個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用匯編描述的(我就遇到過),這是因為很多硬件設(shè)計人員只會寫或者喜歡用匯編描述,此時您就必須看懂匯編程序,否則軟硬件人員可能就無法交流。很多嵌入式職位招聘時都要求熟悉匯編。 (2) 嵌入式操作系

13、統(tǒng)類課程 除了WinCE的實時性稍差外,大多數(shù)嵌入式操作系統(tǒng)的實時性都很強(qiáng),所以也可稱為實時操作系統(tǒng)Real Time Operating System.從事嵌入式的人至少須掌握一個嵌入式操作系統(tǒng)(當(dāng)然掌握兩個更好),這在嵌入式的所有技術(shù)中是最為關(guān)鍵的了。目前最重要的RTOS主要包括: 第一類、傳統(tǒng)的經(jīng)典RTOS:最主要的便是Vxworks操作系統(tǒng),以及其Tornado開發(fā)平臺。Vxworks因出現(xiàn)稍早,實時性很強(qiáng)(據(jù)說可在1ms內(nèi)響應(yīng)外部事件請求),并且內(nèi)核可極微(據(jù)說最小可8K),可靠性較高等,所以在北美,Vxworks占據(jù)了嵌入式系統(tǒng)的多半疆山。特別是在通信設(shè)備等實時性要求較高的系統(tǒng)中,

14、幾乎非Vxworks莫屬。Vxworks的很多概念和技術(shù)都和Linux很類似,主要是C語言開發(fā)。像Bell-alcatel、Lucent、華為等通信企業(yè)在開發(fā)產(chǎn)品時,Vxworks用得很多。但Vxworks因價格很高,所以一些小公司或小產(chǎn)品中往往用不起。目前很多公司都在往嵌入式Linux轉(zhuǎn)(華為、中興以及UT目前正在這樣轉(zhuǎn))。但無論如何,Vxworks在一段長時間內(nèi)仍是不可動搖的。與Vxworks類似的稍有名的實時操作系統(tǒng)還有pSOS、QNX、Nucleus等RTOS。 第二類、嵌入式Linux操作系統(tǒng):Linux的前途除作為服務(wù)器操作系統(tǒng)外,最成功的便是在嵌入式領(lǐng)域的應(yīng)用,原因當(dāng)然是免費、開

15、源、支持軟件多、呼擁者眾,這樣嵌入式產(chǎn)品成本會低。Linux本身不是一個為嵌入式設(shè)計的操作系統(tǒng),不是微內(nèi)核的,并且實時性不強(qiáng)。目前應(yīng)用在嵌入式領(lǐng)域的Linux系統(tǒng)主要有兩類:一類是專為嵌入式設(shè)計的已被裁減過的Linux系統(tǒng),最常用的是uClinux(不帶MMU功能),目前占較大應(yīng)用份額,可在ARM7上跑;另一類是跑在ARM 9上的,一般是將Linux 2.4.18內(nèi)核移植在其上,可使用更多的Linux功能(當(dāng)然uClinux更可跑在ARM 9上)。很多人預(yù)測,嵌入式Linux預(yù)計將占嵌入式操作系統(tǒng)的50%以上份額,非常重要。缺點是熟悉Linux的人太少,開發(fā)難度稍大。另外,目前我們能發(fā)現(xiàn)很多教

16、材和很多大學(xué)都以ucOS/II為教學(xué)用實時操作系統(tǒng),這主要是由于ucOS/II較簡單,且開源,非常適合入門者學(xué)習(xí)實時操作系統(tǒng)原理,但由于ucOS/II功能有限,實用用得較少,所以我院不將其作為教學(xué)重點,要學(xué)習(xí)就應(yīng)學(xué)直接實用的,比如uClinux就很實用。況且熟悉了Linux開發(fā),不僅在嵌入式領(lǐng)域有用,對開發(fā)Linux應(yīng)用軟件,對加深操作系統(tǒng)的認(rèn)識也有幫助,可謂一舉多得。據(jù)我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發(fā),F(xiàn)ujitum則是在自己的處理器上大搞Linux開發(fā)。目前在嵌入式Linux領(lǐng)域,以下幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發(fā)版

17、上;二是能寫Linux驅(qū)動程序的人;三是熟悉Linux內(nèi)核裁減和優(yōu)化的人。 第三類、 Windows CE嵌入式操作系統(tǒng):Microsoft也看準(zhǔn)了嵌入式的巨大市場,MS永遠(yuǎn)是最厲害的,WinCE出來只有幾年時間,但目前已占據(jù)了很大市場份額,特別是在PDA、手機(jī)、顯示儀表等界面要求較高或者要求快速開發(fā)的場合,WinCE目前已很流行(據(jù)說有一家賣工控機(jī)的公司板子賣得太好,以至來不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開發(fā)平臺主要為WinCE Platform Builder,有時也用EVC環(huán)境開發(fā)一些較上層的應(yīng)用,對于急于完成,不想拿嵌入式Linux冒險的開發(fā)場合,

18、WinCE是最合適了(找嵌入式Linux的人可沒那么好找的),畢竟公司不能像學(xué)生學(xué)習(xí)那樣試試看,保證開發(fā)成功更重要。根據(jù)不同的側(cè)重點 ,WinCE還有兩個特殊版本,一個是MS PocketPC操作系統(tǒng)專用于PDA上(掌上電腦),另一個是MS SmartPhone操作系統(tǒng)用于智能手機(jī)上(帶PDA功能的手機(jī)),兩者也都屬于WinCE平臺。在PDA和手機(jī)市場上,除WinCE外,著名的PDA嵌入式操作系統(tǒng)還有Palm OS(因出現(xiàn)很早,很有名)、Symbian等,但在WinCE的強(qiáng)勁沖擊下,Palm和Symbian來日還能有多長? 總結(jié)關(guān)于嵌入式操作系統(tǒng)類課程,若您覺得自己功底較深且能鉆研下去,則可去

19、學(xué)嵌入式Linux;若您覺得自己VC+功底較好且想短平快地學(xué)嵌入式開發(fā),WinCE是最好的選擇。 (3) 嵌入式開發(fā)的其它相關(guān)軟件課程 搞嵌入式若能熟悉嵌入式應(yīng)用的一些主要領(lǐng)域,這樣的人更受企業(yè)歡迎。主要的相關(guān)領(lǐng)域包括: A、數(shù)字圖像壓縮技術(shù):這是嵌入式最重要最熱門的應(yīng)用領(lǐng)域之一,主要是應(yīng)掌握MPEG編解碼算法和技術(shù),如DVD、MP3、PDA、高精電視、機(jī)頂盒等都涉及MPEG高速解碼問題。B、通信協(xié)議及編程技術(shù):這包括傳統(tǒng)的TCP/IP協(xié)議和熱門的無線通信協(xié)議。首先,大多數(shù)嵌入式設(shè)備都要連入局域網(wǎng)或Internet,所以首先應(yīng)掌握TCP/IP協(xié)議及其編程,這是需首要掌握的基本技術(shù);其次,無線通

20、信是目前的大趨勢,所以掌握無線通信協(xié)議及編程也是是很重要的。無結(jié)通信協(xié)議包括無線局域網(wǎng)通信協(xié)議802.11系列,Bluetooth,以及移動通信(如GPRS、GSM、CDMA等)。 C、網(wǎng)絡(luò)與信息安全技術(shù):如加密技術(shù),數(shù)字證書CA等。我院有這方面的選修課。 D、DSP技術(shù):DSP是Digital Signal Process數(shù)字信號處理的意思,DSP處理器通過硬件實現(xiàn)數(shù)字信號處理算法,如高速數(shù)據(jù)采集、壓縮、解壓縮、通信等。數(shù)字信號處理是電子、通信等硬件專業(yè)的課程,對于搞軟件的人若能了解一下最好。目前DSP人才較缺。如果有信號與系統(tǒng)、數(shù)字信號處理等課程基礎(chǔ),對于學(xué)習(xí)MPEG編解碼原理會有很大幫助

21、。 (4)嵌入式開發(fā)的相關(guān)硬件基礎(chǔ) 對于軟件工程專業(yè)的學(xué)生,從事嵌入式軟件開發(fā),像數(shù)字電路、計算機(jī)組成原理、嵌入式微處理器結(jié)構(gòu)等硬件課程是較重要的。另外,匯編語言、C/C+、數(shù)據(jù)結(jié)構(gòu)和算法、特別是操作系統(tǒng)等軟件基礎(chǔ)課也是十分重要的。主要目地是能看懂硬件工作原理,但重點應(yīng)是在嵌入式軟件,特別操作系統(tǒng)級軟件。 研究生里有些是學(xué)電子、通信類專業(yè)過來的,有較好的模擬電路和單片機(jī)基礎(chǔ),學(xué)嵌入式非常合適。嵌入式本身就是從單片機(jī)發(fā)展過來的,只是單片機(jī)不帶OS,而現(xiàn)在很多嵌入式應(yīng)用越來越復(fù)雜,以至不得不引入嵌入式操作系統(tǒng)。另外,為追求更高速的信號處理速度,現(xiàn)在在一些速度要求較高的場合,有不少公司是將一些DSP

22、算法,如MPEG壓縮解壓縮算法等用硬件來實現(xiàn),這就涉及到HDL數(shù)字電路設(shè)計技術(shù)及其FPGA/IP核實現(xiàn)技術(shù),這方面的人目前市場上也很缺。 題外話 另外,能寫驅(qū)動程序的人目前是非常緊缺的(驅(qū)動程序也可歸于嵌入式范疇),包括桌面Windows中的DDK開發(fā)環(huán)境和WDM驅(qū)動程序。公司每時每刻都要推出新產(chǎn)品,每一個新產(chǎn)品出來了,要能被操作系統(tǒng)所使用,是必須寫驅(qū)動程序的。寫驅(qū)動程序就必須掌握操作系統(tǒng)(如Windows或Linux)的內(nèi)部工作原理,還涉及到少量硬件知識,難度較大,所以這方面的人很難找。想成為高手的同學(xué),也可從驅(qū)動程序方面獲得突破。 我可說一下自己的經(jīng)歷,三年前我曾短暫地在一家公司寫過Win

23、CE驅(qū)動程序(正是因為知道這方面的人緊缺,所以才要做這方面的事),盡管那以前從未做過驅(qū)動程序,應(yīng)聘那個職位時正是看準(zhǔn)了公司是很難招聘到這方面的人,既然都找不到人,驅(qū)動還得有人做,這正是可能有機(jī)會切入這一領(lǐng)域的大好機(jī)會。面試時大講自己寫過多少萬行匯編程序,對計算機(jī)工作原理如何清楚,簡歷中又寫著我曾閱讀完兩本關(guān)于Windows Driver Model的兩本英文原版書,寫過幾個小型的驅(qū)動程序練習(xí)程序(其實根本沒寫過,我們的同學(xué)將來千萬不要像我這樣,早練就些過硬功夫,就不至于淪落到我這等地步,就不用像我那樣去“欺騙”公司了,我這是一個典型的反面教材),居然一切都PASS(當(dāng)然最重要的是筆試和面試問題

24、還說得過去),這只能說明這一領(lǐng)域找人的困難程度。公司本就未指望找到搞過驅(qū)動的人,找個有相關(guān)基礎(chǔ)的人就算不錯了。做了以后,發(fā)現(xiàn)也并不是怎樣難的。其實搞驅(qū)動程序的工作是很舒服的,搞完一個版本就會空一段時間,只有等公司新的芯片推出或新的OS出現(xiàn)后,才需要再去開發(fā)新一版驅(qū)動,那時有將近一個月時間空閑著在等WinCE .NET Beta版推出,準(zhǔn)備將驅(qū)動程序升級到CE .NET上,現(xiàn)在在軟件學(xué)院工作整日忙,無限懷念那段悠閑時光。 很巧合,最近本人無意中再次體會到了嵌入式的迷人之處。上周我那用了3年的手機(jī)終于不能WORK了。此次更新,除要求有手機(jī)常見功能外,最好有MP3功能(現(xiàn)在很多英語聽力都有MP3文件

25、),最好有英漢詞典,最好還能讀WORD文檔。最后選了個滿足以上條件的最便宜的手機(jī)DOPOD 515(斬了我2.2K,但想想這也算自己對嵌入式事業(yè)的支持,這樣便也想開了),算得上最低檔的智能手機(jī)了?;貋硪徊椋謾C(jī)的about顯示,本手機(jī)Processor是ARM,其OS是MS Smartphone(即WinCE .NET 4.2),這么巧合,簡直可做為學(xué)習(xí)嵌入式課程的產(chǎn)品案例了(等我們的WinCE課程開得有聲有色后,希望能從微軟研究院搞些Smartphone來開發(fā)開發(fā))。有OS的手機(jī)果然了得,金山詞霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的,PC上的MP3、DOC

26、等居然在download時都可被自動轉(zhuǎn)換成smartphone格式,真是爽。完全可用Windows CE自己開發(fā)一些需要的程序download到自己的手機(jī)上?,F(xiàn)在市面銷售PDA智能手機(jī)火爆,MS總是財源滾滾。但我已發(fā)現(xiàn)國產(chǎn)的ARM+LINUX手機(jī)出現(xiàn)在市面上,價格只1.2K。 在GOOGLE網(wǎng)上能搜索太多的關(guān)于嵌入式系統(tǒng)的討論了,有很多有經(jīng)驗者談自己的體會,投入到其中的論壇中,你會切身感到嵌入式學(xué)習(xí)的熱潮。 要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。每個搞嵌入式的人都可選一條路,條條大路通羅馬。嵌入式系統(tǒng)的分層與專業(yè)、目標(biāo)與定位 嵌入式系統(tǒng)分為層,硬件層

27、、驅(qū)動層、操作系統(tǒng)層和應(yīng)用層。1、硬件層,是整個嵌入式系統(tǒng)的根本,如果現(xiàn)在單片機(jī)及接口這塊很熟悉,并且能用C和匯編語言來編程的話,從嵌入式系統(tǒng)的硬件層走起來相對容易,硬件層也是驅(qū)動層的基礎(chǔ),一個優(yōu)秀的驅(qū)動工程師是要能夠看懂硬件的電路圖和自行完成CPLD的邏輯設(shè)計的,同時還要對操作系統(tǒng)內(nèi)核及其調(diào)度性相當(dāng)?shù)氖煜さ?。但硬件平臺是基礎(chǔ),增值還要靠軟件。硬件層比較適合于,電子、通信、自動化、機(jī)電一體、信息工程類專業(yè)的人來搞,需要掌握的專業(yè)基礎(chǔ)知識有,單片機(jī)原理及接口技術(shù)、微機(jī)原理及接口技術(shù)、C語言。2、驅(qū)動層,這部分比較難,驅(qū)動工程師不僅要能看懂電路圖還要能對操作系統(tǒng)內(nèi)核十分的精通,以便其所寫的驅(qū)動程序

28、在系統(tǒng)調(diào)用時,不會獨占操作系統(tǒng)時間片,而導(dǎo)至其它任務(wù)不能動行,不懂操作系統(tǒng)內(nèi)核架構(gòu)和實時調(diào)度性,沒有良好的驅(qū)動編寫風(fēng)格,按大多數(shù)書上所說添加的驅(qū)動的方式,很多人都能做到,但可能連個初級的驅(qū)動工程師的水平都達(dá)不到,這樣所寫的驅(qū)動在應(yīng)用調(diào)用時就如同Windows下我們打開一個程序運行后,再打開一個程序時,要不就是中斷以前的程序,要不就是等上一會才能運行后來打開的程序。想做個好的驅(qū)動人員沒有三、四年功底,操作系統(tǒng)內(nèi)核不研究上幾編,不是太容易成功的,但其工資在嵌入式系統(tǒng)四層中可是最高的。驅(qū)動層比較適合于電子、通信、自動化、機(jī)電一體、信息工程類專業(yè)尤其是計算機(jī)偏體系結(jié)構(gòu)類專業(yè)的人來搞,除硬件層所具備的基

29、礎(chǔ)學(xué)科外,還要對數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)原理、編譯原理都要十分精通了解。3、操作系統(tǒng)層,對于操作系統(tǒng)層目前可能只能說是簡單的移植,而很少有人來自已寫操作系統(tǒng),或者寫出缺胳膊少腿的操作系統(tǒng)來,這部分工作大都由驅(qū)動工程師來完成。操作系統(tǒng)是負(fù)責(zé)系統(tǒng)任務(wù)的調(diào)試、磁盤和文件的管理,而嵌入式系統(tǒng)的實時性十分重要。據(jù)說,XP操作系統(tǒng)是微軟投入300人用兩年時間才搞定的,總時工時是600人年,中科院軟件所自己的女媧Hopen操作系統(tǒng)估計也得花遇幾百人年才能搞定。因此這部分工作相對來講沒有太大意義。4、應(yīng)用層,相對來講較為容易的,如果會在Windows下如何進(jìn)行編程接口函數(shù)調(diào)用,到操作系統(tǒng)下只是編譯和開發(fā)環(huán)境有

30、相應(yīng)的變化而已。如果涉及Jave方面的編程也是如此的。嵌入式系統(tǒng)中涉及算法的由專業(yè)算法的人來處理的,不必歸結(jié)到嵌入式系統(tǒng)范疇內(nèi)。但如果涉及嵌入式系統(tǒng)下面嵌入式數(shù)據(jù)庫、基于嵌入式系統(tǒng)的網(wǎng)絡(luò)編程和基于某此應(yīng)用層面的協(xié)議應(yīng)用開發(fā)(比如基于SIP、H.323、Astrisk)方面又較為復(fù)雜,并且有難度了。目標(biāo)與定位。先有目標(biāo),再去定位。學(xué)ARM,從硬件上講,一方面就是學(xué)習(xí)接口電路設(shè)計,另一方面就是學(xué)習(xí)匯編和C語言的板級編程。如果從軟件上講,就是要學(xué)習(xí)基于ARM處理器的操作系統(tǒng)層面的驅(qū)動、移植了。這些對于初學(xué)都來說必須明確,要么從硬件著手開始學(xué),要么從操作系統(tǒng)的熟悉到應(yīng)用開始學(xué),但不管學(xué)什么,只要不是純

31、的操作系統(tǒng)級以上基于API的應(yīng)用層的編程,硬件的寄存器類的東西還是要能看懂的,基于板級的匯編和C編程還是要會的。因此針對于嵌入式系統(tǒng)的硬件層和驅(qū)動程的人,ARM的接口電路設(shè)計、ARM的C語言和匯編語言編程及調(diào)試開發(fā)環(huán)境還是需要掌握的。因此對于初學(xué)者必然要把握住方向,自己的目標(biāo)是什么,自己要在那一層面上走。然后再著手學(xué)習(xí)較好,與ARM相關(guān)的嵌入式系統(tǒng)的較為實際的兩個層面硬件層和驅(qū)動層,不管學(xué)好了那一層都會很有前途的。如果想從嵌入式系統(tǒng)的應(yīng)用層面的走的話,可能與ARM及其它體系相去較遠(yuǎn),要著重研究基嵌入式操作系統(tǒng)的環(huán)境應(yīng)用與相應(yīng)開發(fā)工具鏈,比如WinCe操作系統(tǒng)下的EVC應(yīng)用開發(fā)(與Windows

32、下的VC相類似),如果想再有突破就往某些音視頻類的協(xié)議上靠,比如VOIP領(lǐng)域的基于SIP或H.323協(xié)議的應(yīng)用層開發(fā),或是基于嵌入式網(wǎng)絡(luò)數(shù)據(jù)庫的開發(fā)等等。對于初學(xué)者來講,要量力而行,不要認(rèn)為驅(qū)動層工資高就把它當(dāng)成方向了,要結(jié)合自身特點,嵌入式系統(tǒng)四個層面上那個層面上來講都是有高人存在,當(dāng)然高人也對應(yīng)的高工資,我是做硬件層的,以前每月工資中個人所得稅要被扣上近3千大元,當(dāng)然我一方面充當(dāng)工程師的角色,一方面充當(dāng)主管及人物的角色,兩個職位我一個人干,但上班時間就那些。硬件這方面上可能與我PK的人很少了,才讓我拿到那么多的工資。ARM及嵌入式開發(fā)近年越來越熱,特別是android與linux在手機(jī)、平

33、板等許多消費類電子及工業(yè)設(shè)備中越來越成熟的應(yīng)用,更是讓很多學(xué)生及許多原來windows的程序員紛紛轉(zhuǎn)向嵌入式開發(fā)的大軍中來。對于初學(xué)者,該如何有效快速的學(xué)好嵌入式開發(fā)呢? 我給初學(xué)者建議是:第一步:學(xué)習(xí)了解嵌入式硬件知識。這也許這不是你的發(fā)展方向,但這是嵌入式開發(fā)的基礎(chǔ),在嵌入式開發(fā)的各個環(huán)節(jié)都必須詳細(xì)了解硬件的功能。因此至少要做到能看懂原理圖。第二步:從簡單的開始學(xué)習(xí)。一般而言,最容易入手的是嵌入式應(yīng)用程序開發(fā),其次是嵌入式驅(qū)動開發(fā),最難的是嵌入式系統(tǒng)移植。學(xué)習(xí)方法:1,挑選適合于自己的開發(fā)板借用或租用市場上現(xiàn)在開發(fā)板種類太多,購買之前最好是借朋友的板子先試試,多體驗幾款,否則買了不光是浪費

34、銀子,也可能耽誤學(xué)習(xí)進(jìn)度。沒有這些資源就到淘寶網(wǎng)上去租幾塊板子來體驗,這對你以后學(xué)習(xí)會有很大的幫助。2,反復(fù)推敲。學(xué)習(xí)搭建開發(fā)環(huán)境,建立交叉編譯環(huán)境及硬件環(huán)境,一定要反復(fù)推敲。3,不斷嘗試。從最簡單hello world開始,逐步深入,不斷驗證操作系統(tǒng)及硬件功能。4,詳細(xì)記錄。嵌入式開發(fā)過程中會碰到各種各樣奇怪的問題,做筆記和寫心得變得非常重要,每一次小小的成功都要記錄,并反復(fù)驗證這個方法是否正確。曾經(jīng)的FPGA由于邏輯資源有限,僅用于IO膠合以及一些簡單的邏輯功能實現(xiàn),代替以往的74系列和4000系列IC,以節(jié)省PCB面積和布線麻煩,縮小產(chǎn)品面積,提高系統(tǒng)的抗干擾性和可靠性,其最大的優(yōu)勢在于

35、靈活,可編程。而今的FPGA,隨著半導(dǎo)體工藝的不斷進(jìn)步和發(fā)展,已進(jìn)入了亞微米時代,F(xiàn)PGA片上集成了上千萬邏輯門的可編程邏輯資源。主要包括查找表(LUT)、寄存器(DF,F(xiàn)F),可編程互連IO塊、塊RAM(單端口/雙端口RAM)、嵌入式IP軟核或硬核、硬件乘法器、硬件DSP單元等?,F(xiàn)在最先進(jìn)的FPGA技術(shù)為Xilinx28納米工藝的Zynq-7000 系列FPGA,其內(nèi)嵌ARM Cortex-A9 MPCore雙核處理器和AMBA片上總線,功能十分強(qiáng)勁。現(xiàn)在最大的兩家FPGA生產(chǎn)廠商是Xilinx(賽靈思)和Altera,它們都針對嵌入式市場推出了自己相應(yīng)的嵌入式IP軟核或硬核,前者的軟核包括

36、PicoBlaze(8位,44MIPS,比較古老了)和MicroBlaze(32位,性能高達(dá)300MIPS,視具體的軟核版本和器件系列而定,所有Xilinx的FPGA都可以嵌入實現(xiàn)),硬核包括PowerPC(僅Virtex系列支持)和Cortex-A9 MPCore(僅最新Zynq-7000系列)處理器,其相應(yīng)的開發(fā)軟件為EDK,包含Xilinx Platform Studio(XPS,硬件搭建和簡易代碼編寫編譯環(huán)境)和Xilinx Platform Studio SDK(高級軟件開發(fā)環(huán)境,支持操作系統(tǒng)調(diào)試);后者(Altera)的軟核為NIOS-II(32位RSIC處理器,有硬件加速功能,能夠?qū)崿F(xiàn)用戶自定義指令,處理能力同樣視具體的FPGA器件系列而定,最高達(dá)近300MIPS。2000年剛推出時為16位RSIC,也是業(yè)界首款FPGA嵌入式處理器)

溫馨提示

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

評論

0/150

提交評論