基于ARM平臺的嵌入式系統(tǒng)的學(xué)習(xí)_第1頁
基于ARM平臺的嵌入式系統(tǒng)的學(xué)習(xí)_第2頁
基于ARM平臺的嵌入式系統(tǒng)的學(xué)習(xí)_第3頁
基于ARM平臺的嵌入式系統(tǒng)的學(xué)習(xí)_第4頁
基于ARM平臺的嵌入式系統(tǒng)的學(xué)習(xí)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

精品文檔-下載后可編輯基于ARM平臺的嵌入式系統(tǒng)的學(xué)習(xí)嵌入式系統(tǒng)一般指非PC系統(tǒng),有計算機功能但又不稱之為計算機的設(shè)備或器材。它是以應(yīng)用為中心,軟硬件可裁減的,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等綜合性嚴格要求的專用計算機系統(tǒng)。簡單地說,嵌入式系統(tǒng)集系統(tǒng)的應(yīng)用軟件與硬件于一體,類似于PC中BIOS的工作方式,具有軟件代碼小、高度自動化、響應(yīng)速度快等特點,特別適合于要求實時和多任務(wù)的體系。嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬件、嵌入式操作系統(tǒng)及應(yīng)用軟件系統(tǒng)等組成,它是可獨立工作的"器件".

嵌入式系統(tǒng)幾乎包括了生活中的所有電器設(shè)備,如掌上PDA、移動計算設(shè)備、電視機頂盒、手機上網(wǎng)、數(shù)字電視、多媒體、汽車、微波爐、數(shù)字相機、家庭自動化系統(tǒng)、電梯、空調(diào)、安全系統(tǒng)、自動售貨機、蜂窩式電話、消費電子設(shè)備、工業(yè)自動化儀表與醫(yī)療儀器等。

嵌入式系統(tǒng)的硬件部分,包括處理器/微處理器、存儲器及外設(shè)器件和I/O端口、圖形控制器等。嵌入式系統(tǒng)有別于一般的計算機處理系統(tǒng),它不具備像硬盤那樣大容量的存儲介質(zhì),而大多使用EPROM、EEPROM或閃存(FlashMemory)作為存儲介質(zhì)。軟件部分包括操作系統(tǒng)軟件(要求實時和多任務(wù)操作)和應(yīng)用程序編程。應(yīng)用程序控制著系統(tǒng)的運作和行為;而操作系統(tǒng)控制著應(yīng)用程序編程與硬件的交互作用。

根據(jù)現(xiàn)狀,嵌入式計算機可分成下面幾類。

(1)嵌入式微處理器(EmbeddedMicroprocessorUnit,EMPU)

嵌入式微處理器采用"增強型"通用微處理器。由于嵌入式系統(tǒng)通常應(yīng)用于環(huán)境比較惡劣的環(huán)境中,因而嵌入式微處理器在工作溫度、電磁兼容性以及可靠性方面的要求較通用的標準微處理器高。但是,嵌入式微處理器在功能方面與標準的微處理器基本上是一樣的。根據(jù)實際嵌入式應(yīng)用要求,將嵌入式微處理器裝配在專門設(shè)計的主板上,只保留和嵌入式應(yīng)用有關(guān)的主板功能,這樣可以大幅度減小系統(tǒng)的體積和功耗。和工業(yè)控制計算機相比,嵌入式微處理器組成的系統(tǒng)具有體積小、重量輕、成本低、可靠性高的優(yōu)點,但在其電路板上必須包括ROM、RAM、總線接口、各種外設(shè)等器件,從而降低了系統(tǒng)的可靠性,技術(shù)保密性也較差。由嵌入式微處理器及其存儲器、總線、外設(shè)等安裝在一塊電路主板上構(gòu)成一個通常所說的單板機系統(tǒng)。嵌入式處理器目前主要有Am186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM系列等。

(2)嵌入式微控制器(MicrocontrollerUnit,MCU)

嵌入式微控制器又稱單片機,它將整個計算機系統(tǒng)集成到一塊芯片中。嵌入式微控制器一般以某種微處理器內(nèi)核為,根據(jù)某些典型的應(yīng)用,在芯片內(nèi)部集成了ROM/EPROM、RAM、總線、總線邏輯、定時/計數(shù)器、看門狗、I/O、串行口、脈寬調(diào)制輸出、A/D、D/A、FlashRAM、EEPROM等各種必要功能部件和外設(shè)。為適應(yīng)不同的應(yīng)用需求,對功能的設(shè)置和外設(shè)的配置進行必要的修改和裁減定制,使得一個系列的單片機具有多種衍生產(chǎn)品,每種衍生產(chǎn)品的處理器內(nèi)核都相同,不同的是存儲器和外設(shè)的配置及功能的設(shè)置。這樣可以使單片機限度地和應(yīng)用需求相匹配,從而減少整個系統(tǒng)的功耗和成本。和嵌入式微處理器相比,微控制器的單片化使應(yīng)用系統(tǒng)的體積大大減小,從而使功耗和成本大幅度下降、可靠性提高。由于嵌入式微控制器目前在產(chǎn)品的品種和數(shù)量上是所有種類嵌入式處理器中多的,而且上述諸多優(yōu)點決定了微控制器是嵌入式系統(tǒng)應(yīng)用的主流。微控制器的片上外設(shè)資源一般比較豐富,適合于控制,因此稱為微控制器。通常,嵌入式微處理器可分為通用和半通用兩類,比較有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、68300等。而比較有代表性的半通用系列,如支持USB接口的MCU8XC930/931、C540、C541;支持I2C、CAN總線、LCD等的眾多專用MCU和兼容系列。目前MCU約占嵌入式系統(tǒng)市場份額的70%.

(3)嵌入式DSP處理器(EmbeddedDigitalSignalProcessor,EDSP

在數(shù)字信號處理應(yīng)用中,各種數(shù)字信號處理算法相當復(fù)雜,這些算法的復(fù)雜度可能是O(nm)的,甚至是NP的,一般結(jié)構(gòu)的處理器無法實時的完成這些運算。由于DSP處理器對系統(tǒng)結(jié)構(gòu)和指令進行了特殊設(shè)計,使其適合于實時地進行數(shù)字信號處理。在數(shù)字濾波、FFT、譜分析等方面,DSP算法正大量進入嵌入式領(lǐng)域,DSP應(yīng)用正從在通用單片機中以普通指令實現(xiàn)DSP功能,過渡到采用嵌入式DSP處理器。嵌入式DSP處理器有兩類:(1)DSP處理器經(jīng)過單片化、EMC改造、增加片上外設(shè)成為嵌入式DSP處理器,TI的TMS320C2000/C5000等屬于此范疇;(2)在通用單片機或SOC中增加DSP協(xié)處理器,例如Intel的MCS-296和Infineon(Siemens)的TriCore.另外,在有關(guān)智能方面的應(yīng)用中,也需要嵌入式DPS處理器,例如各種帶有智能邏輯的消費類產(chǎn)品,生物信息識別終端,帶有加解密算法的鍵盤,ADSL接入、實時語音壓解系統(tǒng),虛擬現(xiàn)實顯示等。這類智能化算法一般都是運算量較大,特別是向量運算、指針線性尋址等較多,而這些正是DSP處理器的優(yōu)勢所在。嵌入式DSP處理器比較有代表性的產(chǎn)品是TI的TMS320系列和Motorola的DSP56000系列。TMS320系列處理器包括用于控制的C2000系列、移動通信的C5000系列,以及性能更高的C6000和C8000系列。DSP56000目前已經(jīng)發(fā)展成為DSP56000、DSP56100、DSP56200和DSP56300等幾個不同系列的處理器。另外,Philips公司近也推出了基于可重置嵌入式DSP結(jié)構(gòu),采用低成本、低功耗技術(shù)制造的R.E.A.LDSP處理器,其特點是具備雙Harvard結(jié)構(gòu)和雙乘/累加單元,應(yīng)用目標是大批量消費類產(chǎn)品。

(4)嵌入式片上系統(tǒng)(SystemOnChip,SOC)

隨著EDI的推廣和VLSI設(shè)計的普及化,以及半導(dǎo)體工藝的迅速發(fā)展,可以在一塊硅片上實現(xiàn)一個更為復(fù)雜的系統(tǒng),這就產(chǎn)生了SOC技術(shù)。各種通用處理器內(nèi)核將作為SOC設(shè)計公司的標準庫,和其他許多嵌入式系統(tǒng)外設(shè)一樣,成為VLSI設(shè)計中一種標準的器件,用標準的VHDL、Verlog等硬件語言描述,存儲在器件庫中。用戶只需定義出其整個應(yīng)用系統(tǒng),仿真通過后就可以將設(shè)計圖交給半導(dǎo)體工廠制作樣品。這樣除某些無法集成的器件以外,整個嵌入式系統(tǒng)大部分均可集成到一塊或幾塊芯片中去,應(yīng)用系統(tǒng)電路板將變得很簡單,對于減小整個應(yīng)用系統(tǒng)體積和功耗、提高可靠性非常有利。SOC可分為通用和專用兩類,通用SOC如Infineon(Siemens)的TriCore、Motorola的M-Core,以及某些ARM系列器件,如Echelon和Motorola聯(lián)合研制的Neuron芯片等;專用SOC一般專用于某個或某類系統(tǒng)中,如Philips的SmartXA,它將XA單片機內(nèi)核和支持超過2048位復(fù)雜RSA算法的CCU單元制作在一塊硅片上,形成一個可加載Java或C語言的專用SOC,可用于互聯(lián)網(wǎng)安全方面。

本文將從技術(shù)和就業(yè)經(jīng)驗等角度為即將進入嵌入式開發(fā)的程序員們,詳細講述了嵌入的概念,嵌入式開發(fā)之間的異同以及應(yīng)該如何做出選擇,希望對大家有所幫助。

一、嵌入式系統(tǒng)的概念

主要從三個方面上來理解。

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

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

3、把軟件內(nèi)核或應(yīng)用文件系統(tǒng)等東西燒到嵌入式系統(tǒng)硬件平臺中的ROM中就實現(xiàn)了一個真正的"嵌入".

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

二、嵌入式系統(tǒng)的分層與的分類

嵌入式系統(tǒng)分為4層,硬件層、驅(qū)動層、操作系統(tǒng)層和應(yīng)用層。

1、硬件層,是整個嵌入式系統(tǒng)的根本,如果現(xiàn)在單片機及接口這塊很熟悉,并且能用C和匯編語言來編程的話,從嵌入式系統(tǒng)的硬件層走起來相對容易,硬件層也是驅(qū)動層的基礎(chǔ),一個的驅(qū)動工程師是要能夠看懂硬件的電路圖和自行完成CPLD的邏輯設(shè)計的,同時還要對操作系統(tǒng)內(nèi)核及其調(diào)度性相當?shù)氖煜さ?。但硬件平臺是基礎(chǔ),增值還要靠軟件。

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

2、驅(qū)動層,這部分比較難,驅(qū)動工程師不僅要能看懂電路圖還要能對操作系統(tǒng)內(nèi)核十分的精通,以便其所寫的驅(qū)動程序在系統(tǒng)調(diào)用時,不會獨占操作系統(tǒng)時間片,而導(dǎo)至其它任務(wù)不能動行,不懂操作系統(tǒng)內(nèi)核架構(gòu)和實時調(diào)度性,沒有良好的驅(qū)動編寫風(fēng)格,按大多數(shù)書上所說添加的驅(qū)動的方式,很多人都能做到,但可能連個初級的驅(qū)動工程師的水平都達不到,這樣所寫的驅(qū)動在應(yīng)用調(diào)用時就如同windows下我們打開一個程序運行后,再打開一個程序時,要不就是中斷以前的程序,要不就是等上一會才能運行后來打開的程序。想做個好的驅(qū)動人員沒有三、四年功底,操作系統(tǒng)內(nèi)核不研究上幾編,不是太容易成功的,但其工資在嵌入式系統(tǒng)四層中可是的。

驅(qū)動層比較適合于電子、通信、自動化、機電一體、信息工程類尤其是計算機偏體系結(jié)構(gòu)類的人來搞,除硬件層所具備的基礎(chǔ)學(xué)科外,還要對數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)原理、編譯原理都要十分精通了解。

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

4、應(yīng)用層,相對來講較為容易的,如果會在windows下如何進行編程接口函數(shù)調(diào)用,到操作系統(tǒng)下只是編譯和開發(fā)環(huán)境有相應(yīng)的變化而已。如果涉及Jave方面的編程也是如此的。嵌入式系統(tǒng)中涉及算法的由算法的人來處理的,不必歸結(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ù)雜,并且有難度了。

5、嵌入式操作系統(tǒng)的發(fā)展

嵌入式操作系統(tǒng)伴隨著嵌入式系統(tǒng)的發(fā)展經(jīng)歷了4個比較明顯的階段。

階段是無操作系統(tǒng)的嵌入算法階段,是以單芯片為的可編程控制器形式的系統(tǒng),同時具有與監(jiān)測、伺服、指示設(shè)備相配合的功能。這種系統(tǒng)大部分應(yīng)用于一些性極強的工業(yè)控制系統(tǒng)中,一般沒有操作系統(tǒng)的支持,通過匯編語言編程對系統(tǒng)進行直接控制,運行結(jié)束后清除內(nèi)存。這一階段系統(tǒng)的主要特點是:系統(tǒng)結(jié)構(gòu)和功能都相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口。由于這種嵌入式系統(tǒng)使用簡便、價格很低,以前在國內(nèi)工業(yè)領(lǐng)域應(yīng)用較為普遍,但是已經(jīng)遠遠不能適應(yīng)高效的、需要大容量存儲介質(zhì)的現(xiàn)代化工業(yè)控制和新興的信息家電等領(lǐng)域的需求。

第二階段是以嵌入式CPU為基礎(chǔ)、以簡單操作系統(tǒng)為的嵌入式系統(tǒng)。這一階段系統(tǒng)的主要特點是:CPU種類繁多,通用性比較差;系統(tǒng)開銷小,效率高;一般配備系統(tǒng)仿真器,操作系統(tǒng)具有一定的兼容性和擴展性;應(yīng)用軟件較,用戶界面不夠友好;系統(tǒng)主要用來控制系統(tǒng)負載以及監(jiān)控應(yīng)用程序運行。

第三階段是通用的嵌入式實時操作系統(tǒng)階段,是以嵌入式操作系統(tǒng)為的嵌入式系統(tǒng)。這一階段系統(tǒng)的主要特點是:嵌入式操作系統(tǒng)能運行于各種不同類型的微處理器上,兼容性好;操作系統(tǒng)內(nèi)核精小、效率高,并且具有高度的模塊化和擴展性;具備文件和目錄管理、設(shè)備支持、多任務(wù)、網(wǎng)絡(luò)支持、圖形窗口以及用戶界面等功能;具有大量的應(yīng)用程序接口(API),開發(fā)應(yīng)用程序簡單;嵌入式應(yīng)用軟件豐富。

第四階段是以基于Internet為標志的嵌入式系統(tǒng),這是一個正在迅速發(fā)展的階段。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,但隨著Internet的發(fā)展以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等結(jié)合日益密切,嵌入式設(shè)備與Internet的結(jié)合將代表著嵌入式技術(shù)的真正未來。

三、目標與定位

先有目標,再去定位。

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

因此對于初學(xué)者必然要把握住方向,自己的目標是什么,自己要在那一層面上走。然后再著手學(xué)習(xí)較好,與ARM相關(guān)的嵌入式系統(tǒng)的較為實際的兩個層面硬件層和驅(qū)動層,不管學(xué)好了那一層都會很有前途的。

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

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

四、開發(fā)系統(tǒng)選擇

很多ARM初學(xué)者都希望有一套自己能用的系統(tǒng),但他們住住會產(chǎn)生一種錯誤認識就是認為處理器版本越高、性能越高越好,就象很多人認為ARM9與ARM7好,我想對于初學(xué)者在此方面以此入門還應(yīng)該理智,開發(fā)系統(tǒng)的選擇終要看自己往嵌入式系統(tǒng)的那個方向上走,是做驅(qū)動開發(fā)還是應(yīng)用,還是做嵌入式系統(tǒng)硬件層設(shè)計與板級測試。如果想從操作系統(tǒng)層面或應(yīng)用層面上走,不管是驅(qū)動還是應(yīng)用,那當然處理器性能越高越好了,但這個東西自學(xué),有十分大的困難,不是幾個月或半年或是一年二年能搞定的事。

嵌入式實時操作系統(tǒng)在目前的嵌入式應(yīng)用中用得越來越廣泛,尤其在功能復(fù)雜、系統(tǒng)龐大的應(yīng)用中顯得愈來愈重要。

首先,嵌入式實時操作系統(tǒng)提高了系統(tǒng)的可靠性。在控制系統(tǒng)中,出于安全方面的考慮,要求系統(tǒng)起碼不能崩潰,而且還要有自愈能力。不僅要求在硬件設(shè)計方面提高系統(tǒng)的可靠性和抗干擾性,而且也應(yīng)在軟件設(shè)計方面提高系統(tǒng)的抗干擾性,盡可能地減少安全漏洞和不可靠的隱患。長期以來的前后臺系統(tǒng)軟件設(shè)計在遇到強干擾時,使得運行的程序產(chǎn)生異常、出錯、跑飛,甚至死循環(huán),造成了系統(tǒng)的崩潰。而實時操作系統(tǒng)管理的系統(tǒng),這種干擾可能只是引起若干進程中的一個被破壞,可以通過系統(tǒng)運行的系統(tǒng)監(jiān)控進程對其進行修復(fù)。通常情況下,這個系統(tǒng)監(jiān)視進程用來監(jiān)視各進程運行狀況,遇到異常情況時采取一些利于系統(tǒng)穩(wěn)定可靠的措施,如把有問題的任務(wù)清除掉。

其次,提高了開發(fā)效率,縮短了開發(fā)周期。在嵌入式實時操作系統(tǒng)環(huán)境下,開發(fā)一個復(fù)雜的應(yīng)用程序,通??梢园凑哲浖こ讨械慕怦钤瓌t將整個程序分解為多個任務(wù)模塊。每個任務(wù)模塊的調(diào)試、修改幾乎不影響其他模塊。商業(yè)軟件一般都提供了良好的多任務(wù)調(diào)試環(huán)境。再次,嵌入式實時操作系統(tǒng)充分發(fā)揮了32位CPU的多任務(wù)潛力。32位CPU比8、16位CPU快,另外它本來是為運行多用戶、多任務(wù)操作系統(tǒng)而設(shè)計的,特別適于運行多任務(wù)實時系統(tǒng)。32位CPU采用利于提高系統(tǒng)可靠性和穩(wěn)定性的設(shè)計,使其更容易做到不崩潰。例如,CPU運行狀態(tài)分為系統(tǒng)態(tài)和用戶態(tài)。將系統(tǒng)堆棧和用戶堆棧分開,以及實時地給出CPU的運行狀態(tài)等,允許用戶在系統(tǒng)設(shè)計中從硬件和軟件兩方面對實時內(nèi)核的運行實施保護。如果還是采用以前的前后臺方式,則無法發(fā)揮32位CPU的優(yōu)勢。

從某種意義上說,沒有操作系統(tǒng)的計算機(裸機)是沒有用的。在嵌入式應(yīng)用中,只有把CPU嵌入到系統(tǒng)中,同時又把操作系統(tǒng)嵌入進去,才是真正的計算機嵌入式應(yīng)用。

在某種意義上請,ARM7與9的差別就是在某些功能指令集上豐富了些,主頻提高一些而已,就比如286和386.對于用戶來講可能覺查不到什么,只能是感覺速度有些快而已。

ARM7比較適合于那些想從硬件層面上走的人,因為ARM7系列處理器內(nèi)部帶MMU的很少,而且比較好控制,就比如S3C44B0來講,可以很容易將Cache關(guān)了,而且內(nèi)部接口寄存器很容易看明白,各種接口對于用硬件程序控制或AXD單步命令行指令都可以控制起來,基于51單片機的思想很容易能把他搞懂,就當成個32位的單片機,從而消除很多51工程師想轉(zhuǎn)為嵌入式系統(tǒng)硬件ARM開發(fā)工程師的困惑,從而不會被業(yè)界某此不是真正懂嵌入式爛公司帶到操作系統(tǒng)層面上去,讓他們望而失畏,讓業(yè)界更加缺少這方面的人才。

而嵌入式系統(tǒng)不管硬件設(shè)計還是軟件驅(qū)動方面都是十分注重接口這部分的,選擇平臺還要考察一個處理器的外部資源,你接觸外部資源越多,越熟悉他們那你以后就業(yè)成功的機率就越高,這就是招聘時所說的有無"相關(guān)技能",因為一個人不可能在短短幾年內(nèi)把所有的處理器都接觸一遍,而招聘單位所用的處理器就可能是我們完全沒有見過的,就拿臺灣數(shù)十家小公司(市價幾千萬)的公司生產(chǎn)的ARM類處理器,也很好用,但這些東西通用性太差,用這些處理器的公司就只能招有相關(guān)工作經(jīng)驗的人了,那什么是相關(guān)工作經(jīng)驗,在硬件上講的是外圍接口設(shè)計,在軟件上講是操作系統(tǒng)方面相關(guān)接口驅(qū)動及應(yīng)用開發(fā)經(jīng)驗。我從業(yè)近十年,2000年ARM出現(xiàn),我一天始做ARM7,然后直接跑到了Xscale(這個板本在ARM10-11之間),一做就是五年,招人面試都不下數(shù)百人,在這些方面還是深有體會的。

我個人認為三星的S3C44b0對初學(xué)者來說比較合適,為什么這么說哪?因為接口資源比較豐富,技術(shù)成熟,資料較多,應(yīng)該十分適合于初學(xué)者,有問題可能很容易找人幫且解決,因為大多數(shù)人都很熟悉,就如同51類的單片機,有N多位級的人物可以給你幫忙,相關(guān)問題得以很快解答,所然業(yè)界認為這款A(yù)RM都做用得爛了,但對于初學(xué)者來,就卻是件好事。

因此開發(fā)系統(tǒng)的選擇,要看自己的未來從來目標方向、要看開發(fā)板接口資源、還要看業(yè)界的通用性。

五、如何看待培訓(xùn)

首先說說我自己,我目前從業(yè)近十年,與國內(nèi)嵌入式系統(tǒng)行業(yè)共同起步,一直站在嵌入式系統(tǒng)行業(yè)前沿,設(shè)計過多款高端嵌入式系統(tǒng)平臺產(chǎn)品并為眾多公司提供過解決方案,離職前為從事VOIP的美資公司設(shè)計IP-PBX,歷任項目經(jīng)理、項目主管、技術(shù)總監(jiān)、部門經(jīng)理,積累眾多人脈,并集多年經(jīng)驗所得,考慮到學(xué)生就業(yè)與公司招人的不相匹配,公司想招人招不到,而學(xué)生和剛畢業(yè)的工程師想找份工作也不太容易,于此力創(chuàng)知天行科技有限公司,開展嵌入式系統(tǒng)教育培訓(xùn)。

因一線的科研人員和一線的教師不相接觸,導(dǎo)至國內(nèi)嵌入式人才缺乏,國外高校的技術(shù)超前于業(yè)界公司,而國內(nèi)情況是業(yè)界公司方面的嵌入式系統(tǒng)技術(shù)要遠遠于高校。為架構(gòu)業(yè)界與高校溝通的橋梁,把先進技能帶給高校學(xué)子,為學(xué)生在就業(yè)競爭中打造一張,并為業(yè)界工程師快速提升實現(xiàn)自我創(chuàng)造機遇,我就這樣辭去了外企年薪20多萬的職位,做嵌入式系統(tǒng)方面的培訓(xùn)了。

對于培訓(xùn)來講,是花錢來買時間,很多工程師都喜歡自己學(xué),認為培訓(xùn)不值,這也是有可能的,純?yōu)橘嶅X的培訓(xùn)當然不會太有價值,但對于實力型的培訓(xùn)他們可能就虧大了,有這樣一筆帳不知他們算過沒有,如果一個一周的培訓(xùn),能帶給他們自學(xué)兩年后才能掌握的知識,在培訓(xùn)完后他們用三個月到半年時間消化培訓(xùn)內(nèi)容,這樣他會省約至少一年半的時間來學(xué)其它的或重新站在另一個高度上工作,那么他將遲一年后會拿到他兩年后水平所對應(yīng)的工資,就是在工資與水平對應(yīng)的關(guān)系上比同批人縮短一年,每月按少1千計,再減去培訓(xùn)費用至少多1.0萬,同時也省了一年時間,不管是休閑也好,再繼續(xù)提高也好,總之是跑到了隊伍的前面了。

另一層面上講,對于新人的培訓(xùn)相當于他們?yōu)樽约禾崆百I了份失業(yè)保險,有師傅會帶領(lǐng)他們?nèi)氲?,我今年暑假時班里年輕的一個學(xué)生是大二的,今年才上大三,這學(xué)期才剛學(xué)單片機,但現(xiàn)在ARM方面的編程工作已經(jīng)搞得有聲有色了,再過一年多畢業(yè),他還會失業(yè)嗎?

再者通過培訓(xùn),你可以知道很多業(yè)界不為常人所知的事,同時也為自己找了個師傅,就比如說,兩個工程師分別用S3C2410和PXA255來做手持設(shè)備,同樣兩人都工作四年,再出去找工作,兩人工資可能多可相差一倍,為什么?這就是業(yè)界不為常人所知的規(guī)則,2410屬于民品,被業(yè)界用爛了,做產(chǎn)品時成本特敏感,當然也對人才成本敏感了,PXA255是intel的東西,一個255CPU能買三個2410,一直被業(yè)界定義為貴族產(chǎn)品,用的公司都是大公司或為軍方服務(wù)的公司,不會在乎成本,只要把東西做好,一切都好說,但這方面做的人也少啊,因為開發(fā)系統(tǒng)貴啊。

對于說為自已找了個好師傅,我想是這樣的,因為同級工程師間存在著某此潛在的競爭關(guān)系,有很多人不愿意把自己知道的東西教給別人,這意味著他將要失業(yè),就是所說的教會徒弟,餓死師傅,但對于我們這些人就不存在這樣的關(guān)系了,我是在嵌入式系統(tǒng)平臺設(shè)計上走到了一定程序,目前在國內(nèi)這塊的技術(shù)上已經(jīng)是自己很難再突破自己,因此很多東西我對大家都是OPEN的,就比如說下面那部分關(guān)于接口設(shè)計中所提到的時序接口東西,我要是不講,卻使是硬件工程師我想也幾乎只有10%的人能知道吧。

六、成為嵌入式系統(tǒng)硬件工程師要具備的技能

對于硬件來講有幾個方向,就單純信號來分為數(shù)字和模擬,模擬比較難搞,一般需要很長的經(jīng)驗積累,單單一個阻值或容值的精度不夠就可能使信號偏差很大。因此年輕人搞的較少,隨著技術(shù)的發(fā)展,出現(xiàn)了模擬電路數(shù)字化,比如手機的Modem射頻模塊,都采用成熟的套片,而當年國際上只有兩家公司有此技術(shù),自我感覺模擬功能不太強的人,不太適合搞這個,如果真能搞定到手機的射頻模塊,只要達到一般程度可能月薪都在15K以上。

另一類就是數(shù)字部分了,在大方向上又可分為51/ARM的單片機類,DSP類,F(xiàn)PGA類,國內(nèi)FPGA的工程師大多是在IC設(shè)計公司從事IP核的前端驗證,這部分不搞到門級,前途不太明朗,即使做個IC前端驗證工程師,也要搞上幾年才能勝任。DSP硬件接口比較定型,如果不向驅(qū)動或是算法上靠攏,前途也不會太大。而ARM單片機類的內(nèi)容就較多,業(yè)界產(chǎn)品占用量大,應(yīng)用人群廣,因此就業(yè)空間極大,而硬件設(shè)計體現(xiàn)水平和水準的就是接口設(shè)計這塊,這是各個硬件工程師相互PK,判定水平高低的依據(jù)。而接口設(shè)計這塊關(guān)鍵的是看時序,而不是簡單的連接,比如PXA255處理器I2C要求速度在100Kbps,如果把一個I2C外圍器件,還達不到100kbps的與它相接,必然要導(dǎo)致設(shè)計的失敗。這樣的情況有很多,比如51單片機可以在總線接LCD,但為什么這種LCD就不能掛在ARM的總線上,還有ARM7總線上可以外接個Winband的SD卡控制器,但為什么這種控制器接不到ARM9或是Xscale處理器上,這些都是問題。因此接口并不是一種簡單的連接,要看時序,要看參數(shù)。一個的硬件工程師應(yīng)該能夠在沒有參考方案的前提下設(shè)計出一個在成本和性能上更加的產(chǎn)品,靠現(xiàn)有的方案,也要進行適當?shù)目尚行圆眉簦皇呛鷣y的來,我遇到一個工程師把方案中的5V變1.8V的DC芯片,直接更換成LDO,有時就會把CPU燒上幾個。前幾天還有人希望我?guī)兔Π阉麄円郧盎赑XA255平臺的手持GPS設(shè)備做下程序優(yōu)化,我問了一下情況,地圖是存在SD卡中的,而SD卡與PXA255的MMC控制器間采用的SPI接口,因此導(dǎo)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論