基于ARM平臺的嵌入式系統(tǒng)的學(xué)習(xí)
出處:sillboy 發(fā)布于:2011-09-04 09:10:52
嵌入式系統(tǒng)一般指非 PC 系統(tǒng),有計(jì)算機(jī)功能但又不稱之為計(jì)算機(jī)的設(shè)備或器材。它是以應(yīng)用為中心,軟硬件可裁減的,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等綜合性嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。簡單地說,嵌入式系統(tǒng)集系統(tǒng)的應(yīng)用軟件與硬件于一體,類似于 PC 中 BIOS 的工作方式,具有軟件代碼小、高度自動(dòng)化、響應(yīng)速度快等特點(diǎn),特別適合于要求實(shí)時(shí)和多任務(wù)的體系。嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬件、嵌入式操作系統(tǒng)及應(yīng)用軟件系統(tǒng)等組成,它是可獨(dú)立工作的"器件".
嵌入式系統(tǒng)幾乎包括了生活中的所有電器設(shè)備,如掌上 PDA 、移動(dòng)計(jì)算設(shè)備、電視機(jī)頂盒、手機(jī)上網(wǎng)、數(shù)字電視、多媒體、汽車、微波爐、數(shù)字相機(jī)、家庭自動(dòng)化系統(tǒng)、電梯、空調(diào)、安全系統(tǒng)、自動(dòng)售貨機(jī)、蜂窩式電話、消費(fèi)電子設(shè)備、工業(yè)自動(dòng)化儀表與醫(yī)療儀器等。
嵌入式系統(tǒng)的硬件部分,包括處理器 / 微處理器、存儲(chǔ)器及外設(shè)器件和 I/O 端口、圖形控制器等。嵌入式系統(tǒng)有別于一般的計(jì)算機(jī)處理系統(tǒng),它不具備像硬盤那樣大容量的存儲(chǔ)介質(zhì),而大多使用 EPROM 、 EEPROM 或閃存 (Flash Memory) 作為存儲(chǔ)介質(zhì)。軟件部分包括操作系統(tǒng)軟件 ( 要求實(shí)時(shí)和多任務(wù)操作 ) 和應(yīng)用程序編程。應(yīng)用程序控制著系統(tǒng)的運(yùn)作和行為;而操作系統(tǒng)控制著應(yīng)用程序編程與硬件的交互作用。
根據(jù)現(xiàn)狀,嵌入式計(jì)算機(jī)可分成下面幾類。
(1) 嵌入式微處理器 (Embedded Microprocessor Unit, EMPU)
嵌入式微處理器采用"增強(qiáng)型"通用微處理器。由于嵌入式系統(tǒng)通常應(yīng)用于環(huán)境比較惡劣的環(huán)境中,因而嵌入式微處理器在工作溫度、電磁兼容性以及可靠性方面的要求較通用的標(biāo)準(zhǔn)微處理器高。但是,嵌入式微處理器在功能方面與標(biāo)準(zhǔn)的微處理器基本上是一樣的。根據(jù)實(shí)際嵌入式應(yīng)用要求,將嵌入式微處理器裝配在專門設(shè)計(jì)的主板上,只保留和嵌入式應(yīng)用有關(guān)的主板功能,這樣可以大幅度減小系統(tǒng)的體積和功耗。和工業(yè)控制計(jì)算機(jī)相比,嵌入式微處理器組成的系統(tǒng)具有體積小、重量輕、成本低、可靠性高的優(yōu)點(diǎn),但在其電路板上必須包括 ROM 、 RAM 、總線接口、各種外設(shè)等器件,從而降低了系統(tǒng)的可靠性,技術(shù)保密性也較差。由嵌入式微處理器及其存儲(chǔ)器、總線、外設(shè)等安裝在一塊電路主板上構(gòu)成一個(gè)通常所說的單板機(jī)系統(tǒng)。嵌入式處理器目前主要有 Am186/88 、 386EX 、 SC-400 、 Power PC 、 68000 、 MIPS 、 ARM 系列等。
?。?) 嵌入式微控制器 (Microcontroller Unit, MCU)
嵌入式微控制器又稱單片機(jī),它將整個(gè)計(jì)算機(jī)系統(tǒng)集成到一塊芯片中。嵌入式微控制器一般以某種微處理器內(nèi)核為,根據(jù)某些典型的應(yīng)用,在芯片內(nèi)部集成了 ROM/EPROM 、 RAM 、總線、總線邏輯、定時(shí) / 計(jì)數(shù)器、看門狗、 I/O 、串行口、脈寬調(diào)制輸出、 A/D 、 D/A 、 Flash RAM 、 EEPROM 等各種必要功能部件和外設(shè)。為適應(yīng)不同的應(yīng)用需求,對功能的設(shè)置和外設(shè)的配置進(jìn)行必要的修改和裁減定制,使得一個(gè)系列的單片機(jī)具有多種衍生產(chǎn)品,每種衍生產(chǎn)品的處理器內(nèi)核都相同,不同的是存儲(chǔ)器和外設(shè)的配置及功能的設(shè)置。這樣可以使單片機(jī)限度地和應(yīng)用需求相匹配,從而減少整個(gè)系統(tǒng)的功耗和成本。和嵌入式微處理器相比,微控制器的單片化使應(yīng)用系統(tǒng)的體積大大減小,從而使功耗和成本大幅度下降、可靠性提高。由于嵌入式微控制器目前在產(chǎn)品的品種和數(shù)量上是所有種類嵌入式處理器中多的,而且上述諸多優(yōu)點(diǎn)決定了微控制器是嵌入式系統(tǒng)應(yīng)用的主流。微控制器的片上外設(shè)資源一般比較豐富,適合于控制,因此稱為微控制器。通常,嵌入式微處理器可分為通用和半通用兩類,比較有代表性的通用系列包括 8051 、 P51XA 、 MCS-251 、 MCS-96/196/296 、 C166/167 、 68300 等。而比較有代表性的半通用系列,如支持 USB 接口的 MCU 8XC930/931 、 C540 、 C541 ;支持 I2C 、 CAN 總線、 LCD 等的眾多專用 MCU 和兼容系列。目前 MCU 約占嵌入式系統(tǒng)市場份額的 70% .
?。?) 嵌入式 DSP 處理器 (Embedded Digital Signal Processor, EDSP
在數(shù)字信號處理應(yīng)用中,各種數(shù)字信號處理算法相當(dāng)復(fù)雜,這些算法的復(fù)雜度可能是 O(nm) 的,甚至是 NP 的,一般結(jié)構(gòu)的處理器無法實(shí)時(shí)的完成這些運(yùn)算。由于 DSP 處理器對系統(tǒng)結(jié)構(gòu)和指令進(jìn)行了特殊設(shè)計(jì),使其適合于實(shí)時(shí)地進(jìn)行數(shù)字信號處理。在數(shù)字濾波、 FFT 、譜分析等方面, DSP 算法正大量進(jìn)入嵌入式領(lǐng)域, DSP 應(yīng)用正從在通用單片機(jī)中以普通指令實(shí)現(xiàn) DSP 功能,過渡到采用嵌入式 DSP 處理器。嵌入式 DSP 處理器有兩類: (1)DSP 處理器經(jīng)過單片化、 EMC 改造、增加片上外設(shè)成為嵌入式 DSP 處理器, TI 的 TMS320C2000/C5000 等屬于此范疇; (2) 在通用單片機(jī)或 SOC 中增加 DSP 協(xié)處理器,例如 Intel 的 MCS-296 和 Infineon(Siemens) 的 TriCore .另外,在有關(guān)智能方面的應(yīng)用中,也需要嵌入式 DPS 處理器,例如各種帶有智能邏輯的消費(fèi)類產(chǎn)品,生物信息識別終端,帶有加解密算法的鍵盤, ADSL 接入、實(shí)時(shí)語音壓解系統(tǒng),虛擬現(xiàn)實(shí)顯示等。這類智能化算法一般都是運(yùn)算量較大,特別是向量運(yùn)算、指針線性尋址等較多,而這些正是 DSP 處理器的優(yōu)勢所在。嵌入式 DSP 處理器比較有代表性的產(chǎn)品是 TI 的 TMS320 系列和 Motorola 的 DSP56000 系列。 TMS320 系列處理器包括用于控制的 C2000 系列、移動(dòng)通信的 C5000 系列,以及性能更高的 C6000 和 C8000 系列。 DSP56000 目前已經(jīng)發(fā)展成為 DSP56000 、 DSP56100 、 DSP56200 和 DSP56300 等幾個(gè)不同系列的處理器。另外, Philips 公司近也推出了基于可重置嵌入式 DSP 結(jié)構(gòu),采用低成本、低功耗技術(shù)制造的 R. E. A. L DSP 處理器,其特點(diǎn)是具備雙 Harvard 結(jié)構(gòu)和雙乘 / 累加單元,應(yīng)用目標(biāo)是大批量消費(fèi)類產(chǎn)品。
?。?) 嵌入式片上系統(tǒng) (System On Chip, SOC)
隨著 EDI 的推廣和 VLSI 設(shè)計(jì)的普及化,以及半導(dǎo)體工藝的迅速發(fā)展,可以在一塊硅片上實(shí)現(xiàn)一個(gè)更為復(fù)雜的系統(tǒng),這就產(chǎn)生了 SOC 技術(shù)。各種通用處理器內(nèi)核將作為 SOC 設(shè)計(jì)公司的標(biāo)準(zhǔn)庫,和其他許多嵌入式系統(tǒng)外設(shè)一樣,成為 VLSI 設(shè)計(jì)中一種標(biāo)準(zhǔn)的器件,用標(biāo)準(zhǔn)的 VHDL 、 Verlog 等硬件語言描述,存儲(chǔ)在器件庫中。用戶只需定義出其整個(gè)應(yīng)用系統(tǒng),仿真通過后就可以將設(shè)計(jì)圖交給半導(dǎo)體工廠制作樣品。這樣除某些無法集成的器件以外,整個(gè)嵌入式系統(tǒng)大部分均可集成到一塊或幾塊芯片中去,應(yīng)用系統(tǒng)電路板將變得很簡單,對于減小整個(gè)應(yīng)用系統(tǒng)體積和功耗、提高可靠性非常有利。 SOC 可分為通用和專用兩類,通用 SOC 如 Infineon(Siemens) 的 TriCore 、 Motorola 的 M-Core ,以及某些 ARM 系列器件,如 Echelon 和 Motorola 聯(lián)合研制的 Neuron 芯片等;專用 SOC 一般專用于某個(gè)或某類系統(tǒng)中,如 Philips 的 Smart XA ,它將 XA 單片機(jī)內(nèi)核和支持超過 2048 位復(fù)雜 RSA 算法的 CCU 單元制作在一塊硅片上,形成一個(gè)可加載 Java 或 C 語言的專用 SOC ,可用于互聯(lián)網(wǎng)安全方面。
本文將從技術(shù)和就業(yè)經(jīng)驗(yàn)等角度為即將進(jìn)入嵌入式開發(fā)的程序員們,詳細(xì)講述了嵌入的概念,嵌入式開發(fā)之間的異同以及應(yīng)該如何做出選擇,希望對大家有所幫助。
一、嵌入式系統(tǒng)的概念
主要從三個(gè)方面上來理解。
1、從硬件上,將基于CPU的處圍器件,整合到CPU芯片內(nèi)部,比如早期基于X86體系結(jié)構(gòu)下的計(jì)算機(jī),CPU只是有運(yùn)算器和累加器的功能,一切芯片要造外部橋路來擴(kuò)展實(shí)現(xiàn),象串口之類的都是靠外部的16C550/2的串口控制器芯片實(shí)現(xiàn),而目前的這種串口控制器芯片早已集成到CPU內(nèi)部,還有PC機(jī)有顯卡,而多數(shù)嵌入式處理器都帶有LCD控制器,但其種意義上就相當(dāng)于顯卡。比較高端的ARM類Intel Xscale架構(gòu)下的IXP網(wǎng)絡(luò)處理器CPU內(nèi)部集成PCI控制器(可配成支持4個(gè)PCI從設(shè)備或配成自身為CPI從設(shè)備);還集成3個(gè)NPE網(wǎng)絡(luò)處理器引擎,其中兩個(gè)對應(yīng)于兩個(gè)MAC地址, 可用于網(wǎng)關(guān)交換用,而另外一個(gè)NPE網(wǎng)絡(luò)處理器引擎支持DSL,只要外面再加個(gè)PHY芯片即可以實(shí)現(xiàn)DSL上網(wǎng)功能。IXP系列主頻可以達(dá)到 1.8G,支持2G內(nèi)存,1G×10或10G×1的以太網(wǎng)口或Febre channel的光通道。IXP系列應(yīng)該是目標(biāo)基于ARM體系統(tǒng)結(jié)構(gòu)下由 intel進(jìn)行整合后成Xscale內(nèi)核的的處理器了。
2、從軟件上前,就是在定制操作系統(tǒng)內(nèi)核里將應(yīng)用一并選入,編譯后將內(nèi)核到ROM中。而在定制操作系統(tǒng)內(nèi)核時(shí)所選擇的應(yīng)用程序組 件就是完成了軟件的"嵌入",比如WinCE在內(nèi)核定制時(shí),會(huì)有相應(yīng)選擇,其中就是wordpad,PDF,MediaPlay等等選擇,如果我們選擇 了,在CE啟動(dòng)后,就可以在界面中找到這些東西,如果是以前PC上將的windows操作系統(tǒng),多半的東西都需要我們得新再裝。
3、把軟件內(nèi)核或應(yīng)用文件系統(tǒng)等東西燒到嵌入式系統(tǒng)硬件平臺中的ROM中就實(shí)現(xiàn)了一個(gè)真正的"嵌入".
以上的定義是我在6、7年前給嵌入式系統(tǒng)下自話側(cè)重于理解型的定義,書上的定義也有很多,但在這個(gè)領(lǐng)域范圍內(nèi),誰都不敢說自己的定義是十分確切的,包括那些學(xué)者們,歷為畢竟嵌入式系統(tǒng)是計(jì)算機(jī)范疇下的一門綜合性學(xué)科
二、嵌入式系統(tǒng)的分層與的分類
嵌入式系統(tǒng)分為4層,硬件層、驅(qū)動(dòng)層、操作系統(tǒng)層和應(yīng)用層。
1、硬件層,是整個(gè)嵌入式系統(tǒng)的根本,如果現(xiàn)在單片機(jī)及接口這塊很熟悉,并且能用C和匯編語言來編程的話,從嵌入式系統(tǒng)的硬件層走起來相對容易,硬件層也是驅(qū)動(dòng)層的基礎(chǔ),一個(gè)的驅(qū)動(dòng)工程師是要能夠看懂硬件的電路圖和自行完成CPLD的邏輯設(shè)計(jì)的,同時(shí)還要對操作系統(tǒng)內(nèi)核及其調(diào)度性相當(dāng)?shù)氖煜さ?。但硬件平臺是基礎(chǔ),增值還要靠軟件。
硬件層比較適合于,電子、通信、自動(dòng)化、機(jī)電一體、信息工程類的人來搞,需要掌握的基礎(chǔ)知識有,單片機(jī)原理及接口技術(shù)、微機(jī)原理及接口技術(shù)、C語言。
2、 驅(qū)動(dòng)層,這部分比較難,驅(qū)動(dòng)工程師不僅要能看懂電路圖還要能對操作系統(tǒng)內(nèi)核十分的精通,以便其所寫的驅(qū)動(dòng)程序在系統(tǒng)調(diào)用時(shí),不會(huì)獨(dú)占操作系統(tǒng)時(shí)間片,而導(dǎo) 至其它任務(wù)不能動(dòng)行,不懂操作系統(tǒng)內(nèi)核架構(gòu)和實(shí)時(shí)調(diào)度性,沒有良好的驅(qū)動(dòng)編寫風(fēng)格,按大多數(shù)書上所說添加的驅(qū)動(dòng)的方式,很多人都能做到,但可能連個(gè)初級的 驅(qū)動(dòng)工程師的水平都達(dá)不到,這樣所寫的驅(qū)動(dòng)在應(yīng)用調(diào)用時(shí)就如同windows下我們打開一個(gè)程序運(yùn)行后,再打開一個(gè)程序時(shí),要不就是中斷以前的程序,要不 就是等上一會(huì)才能運(yùn)行后來打開的程序。想做個(gè)好的驅(qū)動(dòng)人員沒有三、四年功底,操作系統(tǒng)內(nèi)核不研究上幾編,不是太容易成功的,但其工資在嵌入式系統(tǒng)四層中可 是的。
驅(qū)動(dòng)層比較適合于電子、通信、自動(dòng)化、機(jī)電一體、信息工程類尤其是計(jì)算機(jī)偏體系結(jié)構(gòu)類的人來搞,除硬件層所具備的基礎(chǔ)學(xué)科外,還要對數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)原理、編譯原理都要十分精通了解。
3、操作系統(tǒng)層,對于操作系統(tǒng)層目前可能只能說是簡單的移植,而很少有人來自已寫操作系統(tǒng),或者寫出缺胳膊少腿的操作系統(tǒng)來,這部分工作大都由驅(qū)動(dòng)工程師來完成。操作系統(tǒng)是負(fù)責(zé)系統(tǒng)任務(wù)的調(diào)試、磁盤和文件的管理,而嵌入式系統(tǒng)的實(shí)時(shí)性十分重要。據(jù)說,XP操作系統(tǒng)是微軟投入300人用兩年時(shí)間才搞定的,總時(shí)工時(shí)是600人年,中科院軟件所自己的女媧Hopen操作系統(tǒng)估計(jì)也得花遇幾百人年才能搞定。因此這部分工作相對來講沒有太大意義。
4、應(yīng)用層,相對來講較為容易的,如果會(huì)在windows下如何進(jìn)行編程接口函數(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 個(gè)比較明顯的階段。
階段是無操作系統(tǒng)的嵌入算法階段,是以單芯片為的可編程控制器形式的系統(tǒng),同時(shí)具有與監(jiān)測、伺服、指示設(shè)備相配合的功能。這種系統(tǒng)大部分應(yīng)用于一些性極強(qiáng)的工業(yè)控制系統(tǒng)中,一般沒有操作系統(tǒng)的支持,通過匯編語言編程對系統(tǒng)進(jìn)行直接控制,運(yùn)行結(jié)束后清除內(nèi)存。這一階段系統(tǒng)的主要特點(diǎn)是:系統(tǒng)結(jié)構(gòu)和功能都相對單一,處理效率較低,存儲(chǔ)容量較小,幾乎沒有用戶接口。由于這種嵌入式系統(tǒng)使用簡便、價(jià)格很低,以前在國內(nèi)工業(yè)領(lǐng)域應(yīng)用較為普遍,但是已經(jīng)遠(yuǎn)遠(yuǎn)不能適應(yīng)高效的、需要大容量存儲(chǔ)介質(zhì)的現(xiàn)代化工業(yè)控制和新興的信息家電等領(lǐng)域的需求。
第二階段是以嵌入式 CPU 為基礎(chǔ)、以簡單操作系統(tǒng)為的嵌入式系統(tǒng)。這一階段系統(tǒng)的主要特點(diǎn)是: CPU 種類繁多,通用性比較差;系統(tǒng)開銷小, 效率高;一般配備系統(tǒng)仿真器,操作系統(tǒng)具有一定的兼容性和擴(kuò)展性;應(yīng)用軟件較,用戶界面不夠友好;系統(tǒng)主要用來控制系統(tǒng)負(fù)載以及監(jiān)控應(yīng)用程序運(yùn)行。
第三階段是通用的嵌入式實(shí)時(shí)操作系統(tǒng)階段,是以嵌入式操作系統(tǒng)為的嵌入式系統(tǒng)。這一階段系統(tǒng)的主要特點(diǎn)是:嵌入式操作系統(tǒng)能運(yùn)行于各種不同類型的微處理器上,兼容性好;操作系統(tǒng)內(nèi)核精小、效率高,并且具有高度的模塊化和擴(kuò)展性;具備文件和目錄管理、設(shè)備支持、多任務(wù)、網(wǎng)絡(luò)支持、圖形窗口以及用戶界面等功能;具有大量的應(yīng)用程序接口 (API) ,開發(fā)應(yīng)用程序簡單;嵌入式應(yīng)用軟件豐富。
第四階段是以基于 Internet 為標(biāo)志的嵌入式系統(tǒng),這是一個(gè)正在迅速發(fā)展的階段。目前大多數(shù)嵌入式系統(tǒng)還孤立于 Internet 之外,但隨著 Internet 的發(fā)展以及 Internet 技術(shù)與信息家電、工業(yè)控制技術(shù)等結(jié)合日益密切,嵌入式設(shè)備與 Internet 的結(jié)合將代表著嵌入式技術(shù)的真正未來。
三、目標(biāo)與定位
先有目標(biāo),再去定位。
學(xué) ARM,從硬件上講,一方面就是學(xué)習(xí)接口電路設(shè)計(jì),另一方面就是學(xué)習(xí)匯編和C語言的板級編程。如果從軟件上講,就是要學(xué)習(xí)基于ARM處理器的操作系統(tǒng)層面 的驅(qū)動(dòng)、移植了。這些對于初學(xué)都來說必須明確,要么從硬件著手開始學(xué),要么從操作系統(tǒng)的熟悉到應(yīng)用開始學(xué),但不管學(xué)什么,只要不是純的操作系統(tǒng)級以上基于 API的應(yīng)用層的編程,硬件的寄存器類的東西還是要能看懂的,基于板級的匯編和C編程還是要會(huì)的。因此針對于嵌入式系統(tǒng)的硬件層和驅(qū)動(dòng)程的人,ARM的接 口電路設(shè)計(jì)、ARM的C語言和匯編語言編程及調(diào)試開發(fā)環(huán)境還是需要掌握的。
因此對于初學(xué)者必然要把握住方向,自己的目標(biāo)是什么,自己要在那一層面上走。然后再著手學(xué)習(xí)較好,與ARM相關(guān)的嵌入式系統(tǒng)的較為實(shí)際的兩個(gè)層面硬件層和驅(qū)動(dòng)層,不管學(xué)好了那一層都會(huì)很有前途的。
如果想從嵌入式系統(tǒng)的應(yīng)用層面的走的話,可能與ARM及其它體系相去較遠(yuǎn),要著重研究基嵌入式操作系統(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é)者來講,要量力而行,不要認(rèn)為驅(qū)動(dòng)層工資高就把它當(dāng)成方向了,要結(jié)合自身特點(diǎn),嵌入式系統(tǒng)四個(gè)層面上那個(gè)層面上來講都是有高人存在,當(dāng)然高人也對應(yīng) 的高工資,我是做硬件層的,以前每月工資中個(gè)人所得稅要被扣上近3千大元,當(dāng)然我一方面充當(dāng)工程師的角色,一方面充當(dāng)主管及人物的角色,兩個(gè)職位我一個(gè)人 干,但上班時(shí)間就那些。硬件這方面上可能與我PK的人很少了,才讓我拿到那么多的工資。
四、開發(fā)系統(tǒng)選擇
很多ARM初學(xué)者都希望有一套自己能用的系統(tǒng),但他們住住會(huì)產(chǎn)生一種錯(cuò)誤認(rèn)識就是認(rèn)為處理器版本越高、性能越高越好,就象很多人認(rèn)為ARM9與ARM7好, 我想對于初學(xué)者在此方面以此入門還應(yīng)該理智,開發(fā)系統(tǒng)的選擇終要看自己往嵌入式系統(tǒng)的那個(gè)方向上走,是做驅(qū)動(dòng)開發(fā)還是應(yīng)用,還是做嵌入式系統(tǒng)硬件層設(shè)計(jì) 與板級測試。如果想從操作系統(tǒng)層面或應(yīng)用層面上走,不管是驅(qū)動(dòng)還是應(yīng)用,那當(dāng)然處理器性能越高越好了,但這個(gè)東西自學(xué),有十分大的困難,不是幾個(gè)月或半年 或是一年二年能搞定的事。
嵌入式實(shí)時(shí)操作系統(tǒng)在目前的嵌入式應(yīng)用中用得越來越廣泛,尤其在功能復(fù)雜、系統(tǒng)龐大的應(yīng)用中顯得愈來愈重要。
首先,嵌入式實(shí)時(shí)操作系統(tǒng)提高了系統(tǒng)的可靠性。在控制系統(tǒng)中,出于安全方面的考慮,要求系統(tǒng)起碼不能崩潰,而且還要有自愈能力。不僅要求在硬件設(shè)計(jì)方面提高系統(tǒng)的可靠性和抗干擾性,而且也應(yīng)在軟件設(shè)計(jì)方面提高系統(tǒng)的抗干擾性,盡可能地減少安全漏洞和不可靠的隱患。長期以來的前后臺系統(tǒng)軟件設(shè)計(jì)在遇到強(qiáng)干擾時(shí),使得運(yùn)行的程序產(chǎn)生異常、出錯(cuò)、跑飛,甚至死循環(huán),造成了系統(tǒng)的崩潰。而實(shí)時(shí)操作系統(tǒng)管理的系統(tǒng),這種干擾可能只是引起若干進(jìn)程中的一個(gè)被破壞,可以通過系統(tǒng)運(yùn)行的系統(tǒng)監(jiān)控進(jìn)程對其進(jìn)行修復(fù)。通常情況下,這個(gè)系統(tǒng)監(jiān)視進(jìn)程用來監(jiān)視各進(jìn)程運(yùn)行狀況,遇到異常情況時(shí)采取一些利于系統(tǒng)穩(wěn)定可靠的措施,如把有問題的任務(wù)清除掉。
其次,提高了開發(fā)效率,縮短了開發(fā)周期。在嵌入式實(shí)時(shí)操作系統(tǒng)環(huán)境下,開發(fā)一個(gè)復(fù)雜的應(yīng)用程序,通??梢园凑哲浖こ讨械慕怦钤瓌t將整個(gè)程序分解為多個(gè)任務(wù)模塊。每個(gè)任務(wù)模塊的調(diào)試、修改幾乎不影響其他模塊。商業(yè)軟件一般都提供了良好的多任務(wù)調(diào)試環(huán)境。 再次,嵌入式實(shí)時(shí)操作系統(tǒng)充分發(fā)揮了 32 位 CPU 的多任務(wù)潛力。 32 位 CPU 比 8 、 16 位 CPU 快,另外它本來是為運(yùn)行多用戶、多任務(wù)操作系統(tǒng)而設(shè)計(jì)的,特別適于運(yùn)行多任務(wù)實(shí)時(shí)系統(tǒng)。 32 位 CPU 采用利于提高系統(tǒng)可靠性和穩(wěn)定性的設(shè)計(jì),使其更容易做到不崩潰。例如, CPU 運(yùn)行狀態(tài)分為系統(tǒng)態(tài)和用戶態(tài)。將系統(tǒng)堆棧和用戶堆棧分開,以及實(shí)時(shí)地給出 CPU 的運(yùn)行狀態(tài)等,允許用戶在系統(tǒng)設(shè)計(jì)中從硬件和軟件兩方面對實(shí)時(shí)內(nèi)核的運(yùn)行實(shí)施保護(hù)。如果還是采用以前的前后臺方式,則無法發(fā)揮 32 位 CPU 的優(yōu)勢。
從某種意義上說,沒有操作系統(tǒng)的計(jì)算機(jī) ( 裸機(jī) ) 是沒有用的。在嵌入式應(yīng)用中,只有把 CPU 嵌入到系統(tǒng)中,同時(shí)又把操作系統(tǒng)嵌入進(jìn)去,才是真正的計(jì)算機(jī)嵌入式應(yīng)用。
在某種意義上請,ARM7與9的差別就是在某些功能指令集上豐富了些,主頻提高一些而已,就比如286和386.對于用戶來講可能覺查不到什么,只能是感覺速度有些快而已。
ARM7比較適合于那些想從硬件層面上走的人,因?yàn)锳RM7系列處理器內(nèi)部帶MMU的很少,而且比較好控制,就比如S3C44B0來講,可以很容易將 Cache關(guān)了,而且內(nèi)部接口寄存器很容易看明白,各種接口對于用硬件程序控制或AXD單步命令行指令都可以控制起來,基于51單片機(jī)的思想很容易能把他 搞懂,就當(dāng)成個(gè)32位的單片機(jī),從而消除很多51工程師想轉(zhuǎn)為嵌入式系統(tǒng)硬件ARM開發(fā)工程師的困惑,從而不會(huì)被業(yè)界某此不是真正懂嵌入式爛公司帶到操作 系統(tǒng)層面上去,讓他們望而失畏,讓業(yè)界更加缺少這方面的人才。
而嵌入式系統(tǒng)不管硬件設(shè)計(jì)還是軟件驅(qū)動(dòng)方面都是十分注重接口這部分的,選擇平臺還要考察一個(gè)處理器的外部資源,你接觸外部資源越多,越熟悉他們那你以后就業(yè)成功的機(jī)率就越高,這就是招聘時(shí) 所說的有無"相關(guān)技能",因?yàn)橐粋€(gè)人不可能在短短幾年內(nèi)把所有的處理器都接觸一遍,而招聘單位所用的處理器就可能是我們完全沒有見過的,就拿臺灣數(shù)十家小 公司(市價(jià)幾千萬)的公司生產(chǎn)的ARM類處理器,也很好用,但這些東西通用性太差,用這些處理器的公司就只能招有相關(guān)工作經(jīng)驗(yàn)的人了,那什么是相關(guān)工作經(jīng) 驗(yàn),在硬件上講的是外圍接口設(shè)計(jì),在軟件上講是操作系統(tǒng)方面相關(guān)接口驅(qū)動(dòng)及應(yīng)用開發(fā)經(jīng)驗(yàn)。我從業(yè)近十年,2000年ARM出現(xiàn),我一天始做ARM7,然后 直接跑到了Xscale(這個(gè)板本在ARM10-11之間),一做就是五年,招人面試都不下數(shù)百人,在這些方面還是深有體會(huì)的。
我個(gè)人認(rèn)為三星的S3C44b0對初學(xué)者來說比較合適,為什么這么說哪?因?yàn)榻涌谫Y源比較豐富,技術(shù)成熟,資料較多,應(yīng)該十分適合于初學(xué)者,有問題可能很容易找人幫且解決,因?yàn)榇蠖鄶?shù)人都很熟悉,就如同51類的單片機(jī),有N多位級的人物可以給你幫忙,相關(guān)問題得以很快解答,所然業(yè)界認(rèn)為這款A(yù)RM都做用得爛了,但對于初學(xué)者來,就卻是件好事。
因此開發(fā)系統(tǒng)的選擇,要看自己的未來從來目標(biāo)方向、要看開發(fā)板接口資源、還要看業(yè)界的通用性。
五、如何看待培訓(xùn)
首先說說我自己,我目前從業(yè)近十年,與國內(nèi)嵌入式系統(tǒng)行業(yè)共同起步,一直站在嵌入式系統(tǒng)行業(yè)前沿,設(shè)計(jì)過多款高端嵌入式系統(tǒng)平臺產(chǎn)品并為眾多公司提供過解決方案,離職前為從事VOIP的美資公司設(shè)計(jì)IP-PBX,歷任項(xiàng)目經(jīng)理、項(xiàng)目主管、技術(shù)總監(jiān)、部門經(jīng)理,積累眾多人脈,并集多年經(jīng)驗(yàn)所得,考慮到學(xué)生就業(yè)與公司招人的不相匹配,公司想招人招不到,而學(xué)生和剛畢業(yè)的工程師想找份工作也不太容易,于此力創(chuàng)知天行科技有限公司,開展嵌入式系統(tǒng)教育培訓(xùn)。
因一線的科研人員和一線的教師不相接觸,導(dǎo)至國內(nèi)嵌入式人才缺乏,國外高校的技術(shù)超前于業(yè)界公司,而國內(nèi)情況是業(yè)界公司方面的嵌入式系統(tǒng)技術(shù)要遠(yuǎn)遠(yuǎn)于高 校。為架構(gòu)業(yè)界與高校溝通的橋梁,把先進(jìn)技能帶給高校學(xué)子,為學(xué)生在就業(yè)競爭中打造一張,并為業(yè)界工程師快速提升實(shí)現(xiàn)自我創(chuàng)造機(jī)遇,我就這樣辭去了外 企年薪20多萬的職位,做嵌入式系統(tǒng)方面的培訓(xùn)了。
對于培訓(xùn)來講,是花錢來買時(shí)間,很多工程師都喜歡自己學(xué),認(rèn)為培訓(xùn)不值,這也是有 可能的,純?yōu)橘嶅X的培訓(xùn)當(dāng)然不會(huì)太有價(jià)值,但對于實(shí)力型的培訓(xùn)他們可能就虧大了,有這樣一筆帳不知他們算過沒有,如果一個(gè)一周的培訓(xùn),能帶給他們自學(xué)兩年 后才能掌握的知識,在培訓(xùn)完后他們用三個(gè)月到半年時(shí)間消化培訓(xùn)內(nèi)容,這樣他會(huì)省約至少一年半的時(shí)間來學(xué)其它的或重新站在另一個(gè)高度上工作,那么他將遲一 年后會(huì)拿到他兩年后水平所對應(yīng)的工資,就是在工資與水平對應(yīng)的關(guān)系上比同批人縮短一年,每月按少1千計(jì),再減去培訓(xùn)費(fèi)用至少多1.0萬,同時(shí)也省了一年 時(shí)間,不管是休閑也好,再繼續(xù)提高也好,總之是跑到了隊(duì)伍的前面了。
另一層面上講,對于新人的培訓(xùn)相當(dāng)于他們?yōu)樽约禾崆百I了份失業(yè)保險(xiǎn),有師傅會(huì)帶領(lǐng)他們?nèi)氲?,我今年暑假時(shí)班里年輕的一個(gè)學(xué)生是大二的,今年才上大三,這學(xué)期才剛學(xué)單片機(jī),但現(xiàn)在ARM方面的編程工作已經(jīng)搞得有聲有色了,再過一年多畢業(yè),他還會(huì)失業(yè)嗎?
再者通過培訓(xùn),你可以知道很多業(yè)界不為常人所知的事,同時(shí)也為自己找了個(gè)師傅,就比如說,兩個(gè)工程師分別用S3C2410和PXA255來做手持設(shè)備,同樣 兩人都工作四年,再出去找工作,兩人工資可能多可相差一倍,為什么?這就是業(yè)界不為常人所知的規(guī)則,2410屬于民品,被業(yè)界用爛了,做產(chǎn)品時(shí)成本特敏 感,當(dāng)然也對人才成本敏感了,PXA255是intel的東西,一個(gè)255 CPU能買三個(gè)2410,一直被業(yè)界定義為貴族產(chǎn)品,用的公司都是大公司或?yàn)?軍方服務(wù)的公司,不會(huì)在乎成本,只要把東西做好,一切都好說,但這方面做的人也少啊,因?yàn)殚_發(fā)系統(tǒng)貴啊。
對于說為自已找了個(gè)好師傅, 我想是這樣的,因?yàn)橥壒こ處熼g存在著某此潛在的競爭關(guān)系,有很多人不愿意把自己知道的東西教給別人,這意味著他將要失業(yè),就是所說的教會(huì)徒弟,餓死師傅,但對于我們這些人就不存在這樣的關(guān)系了,我是在嵌入式系統(tǒng)平臺設(shè)計(jì)上走到了一定程序,目前在國內(nèi)這塊的技術(shù)上已經(jīng)是自己很難再突破自己,因此很多東西 我對大家都是OPEN的,就比如說下面那部分關(guān)于接口設(shè)計(jì)中所提到的時(shí)序接口東西,我要是不講,卻使是硬件工程師我想也幾乎只有10%的人能知道 吧。
六、成為嵌入式系統(tǒng)硬件工程師要具備的技能
對于硬件來講有幾個(gè)方向,就單純信號來分為數(shù)字和模擬,模擬比較難搞,一般需要很長的經(jīng)驗(yàn)積累,單單一個(gè)阻值或容值的不夠就可能使信號偏差很大。因此年輕人搞的較少,隨著技術(shù)的發(fā)展,出現(xiàn)了模擬電路數(shù)字化,比如手機(jī)的Modem射頻模塊,都采用成熟的套片,而當(dāng)年國際上只有兩家公司有此技術(shù),自我感覺模擬功能不太強(qiáng)的人,不太適合搞這個(gè),如果真能搞定到手機(jī)的射頻模塊,只要達(dá)到一般程度可能月薪都在15K以上。
另一類就是數(shù)字部分了,在大方向上又可分為51/ARM的單片機(jī)類,DSP類,F(xiàn)PGA類, 國內(nèi)FPGA的工程師大多是在IC設(shè)計(jì)公司從事IP核的前端驗(yàn)證,這部分不搞到門級,前途不太明朗,即使做個(gè)IC前端驗(yàn)證工程師,也要搞上幾年才能勝任。 DSP硬件接口比較定型,如果不向驅(qū)動(dòng)或是算法上靠攏,前途也不會(huì)太大。而ARM單片機(jī)類的內(nèi)容就較多,業(yè)界產(chǎn)品占用量大,應(yīng)用人群廣,因此就業(yè)空間極大,而硬件設(shè)計(jì)體現(xiàn)水平和水準(zhǔn)的就是接口設(shè)計(jì)這塊,這是各個(gè)硬件工程師相互PK,判定水平高低的依據(jù)。而接口設(shè)計(jì)這塊關(guān)鍵的是看時(shí)序,而不是簡單 的連接,比如PXA255處理器I2C要求速度在100Kbps,如果把一個(gè)I2C外圍器件,還達(dá)不到100kbps的與它相接,必然要導(dǎo)致設(shè)計(jì)的失 敗。這樣的情況有很多,比如51單片機(jī)可以在總線接 LCD,但為什么這種LCD就不能掛在ARM的總線上,還有ARM7總線上可以外接個(gè)Winband的SD卡控制器,但為什么這種控制器接不到ARM9或 是Xscale處理器上,這些都是問題。因此接口并不是一種簡單的連接,要看時(shí)序,要看參數(shù)。 一個(gè)的硬件工程師應(yīng)該能夠在沒有參考方案的前提下設(shè)計(jì) 出一個(gè)在成本和性能上更加的產(chǎn)品,靠現(xiàn)有的方案,也要進(jìn)行適當(dāng)?shù)目尚行圆眉?,但不是胡亂的來,我遇到一個(gè)工程師把方案中的5V變1.8V的DC芯片, 直接更換成LDO,有時(shí)就會(huì)把CPU燒上幾個(gè)。前幾天還有人希望我?guī)兔Π阉麄円郧盎赑XA255平臺的手持GPS設(shè)備做下程序優(yōu)化,我問了一下情況,地 圖是存在SD卡中的,而SD卡與PXA255的MMC控制器間采用的SPI接口,因此導(dǎo)致地圖讀取速度十分的慢,這種情況是設(shè)計(jì)中嚴(yán)重的缺陷,而不是程序 的問題,因此我提了幾條建議,讓他們更新試下再說。因此想成為一個(gè)的工程師,需要對系統(tǒng)整體性的把握和對已有電路的理解,換句話說,給你一套電路圖你 終究能看明白多少,看不明白80%以上的話,說明你離的工程師還差得遠(yuǎn)哪。其次是電路的調(diào)試能力和審圖能力,但基本的能力還是原理圖設(shè)計(jì)PCB繪 制,邏輯設(shè)計(jì)這塊。這是指的硬件設(shè)計(jì)工程師,從上面的硬件設(shè)計(jì)工程師中還可以分出ECAD工程師,就是的畫PCB板的工程師,和EMC設(shè)計(jì)工程師,幫 人家解決EMC的問題。硬件工程師再往上就是板級測試工程師,就是C語功底很好的硬件工程師,在電路板調(diào)試過程中能通過自已編寫的測試程序?qū)τ布δ苓M(jìn)行 驗(yàn)證。然后再交給基于操作系統(tǒng)級的驅(qū)動(dòng)開發(fā)人員。
總之,硬件的內(nèi)容很多很雜,硬件那方面練成了都會(huì)成為一個(gè)高手,我時(shí)常會(huì)給人家做下方案評估,很多硬件工程師設(shè)計(jì)的東西,經(jīng)常被我一句話否定,因此工程師做到我這種地步,也會(huì)得罪些人,但硬件的確會(huì)有很多不為人知的東西,讓很多硬件工程師也摸不到頭腦。
那么硬件件工程師技術(shù)技能都要具備那些東西哪,首先要掌握EDA設(shè)計(jì)的輔助工具類如ProtelORCADPowperPCBMaplux2ISE、 VDHL語言,要能用到這些工具畫圖畫板做邏輯設(shè)計(jì),再有就是接口設(shè)計(jì)審圖能力,再者就是調(diào)試能力,如果能走到總體方案設(shè)計(jì)這塊,那就基本上快成為資深工 程師了。
硬件是要靠經(jīng)驗(yàn),也要靠積累的,十年磨一劍,百年磨一針。
參考文獻(xiàn):
[1]. PC datasheet http://www.hbjingang.com/datasheet/PC+_2043275.html.
[2]. EPROM datasheet http://www.hbjingang.com/datasheet/EPROM+_1128137.html.
[3]. 386EX datasheet http://www.hbjingang.com/datasheet/386EX+_1137240.html.
[4]. EMC datasheet http://www.hbjingang.com/datasheet/EMC+_2342312.html.
[5]. TMS320 datasheet http://www.hbjingang.com/datasheet/TMS320+_1699215.html.
[6]. DSP56100 datasheet http://www.hbjingang.com/datasheet/DSP56100+_268749.html.
[7]. DSP56300 datasheet http://www.hbjingang.com/datasheet/DSP56300+_268796.html.
[8]. IXP datasheet http://www.hbjingang.com/datasheet/IXP_1932214.html.
[9]. PCI datasheet http://www.hbjingang.com/datasheet/PCI_1201469.html.
[10]. CPLD datasheet http://www.hbjingang.com/datasheet/CPLD_1136600.html.
[11]. PXA255 datasheet http://www.hbjingang.com/datasheet/PXA255_559864.html.
[12]. PCB datasheet http://www.hbjingang.com/datasheet/PCB_1201640.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開發(fā)實(shí)踐指南2026/1/6 10:40:19
- 嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計(jì)實(shí)踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識2025/7/14 16:59:04
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析
- 高速PCB信號完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題









