ARM小記
ARM何物
ARM(AdvancedRISCMachines,進(jìn)階精簡(jiǎn)指令集機(jī)器),如果你一直把這個(gè)單詞讀成“A”-“R”-“M”,那么將有一個(gè)好消息和一個(gè)壞消息要告訴你。好消息是:你這是初次接觸到ARM技術(shù)相關(guān)的文章,而本文內(nèi)容正是專為你量身打造的,無(wú)論你是嵌入式系統(tǒng)的門外漢還是單片機(jī)技術(shù)的初學(xué)者,都可以通過(guò)本文輕松地了解ARM技術(shù)。請(qǐng)相信我,這并不困難!壞消息是:我很抱歉的告訴你,它的正確讀法應(yīng)該是“arm”,是手臂、胳膊的英文發(fā)音。很出丑是不是?但除非你是在大聲朗讀,不然沒人會(huì)知道的。你又多了一個(gè)知識(shí)和一個(gè)不可告人的秘密。調(diào)整一下心態(tài),我們的故事就從這里開始吧!
1990年,有一家高科技公司在美麗的英國(guó)安了家,公司是由一群先知先覺的工程師組成的,他們致力于一種新的CPU體系結(jié)構(gòu)的設(shè)計(jì)。他們想讓這款CPU的性能更為出色,有精簡(jiǎn)的指令集(可以理解成給CPU發(fā)出命令的咒語(yǔ),當(dāng)然是越簡(jiǎn)單越好了)和較低的功耗(適合在需要高速度運(yùn)算又采用電池充電的設(shè)備當(dāng)中使用)。當(dāng)時(shí)傳統(tǒng)的電腦CPU發(fā)熱量大,需要使用風(fēng)扇散熱,這確實(shí)很不方便,至少我不希望我的智能手機(jī)看上去像電吹風(fēng)。所以,他們夜以繼日的開發(fā),努力實(shí)現(xiàn)這個(gè)偉大構(gòu)想。終于,他們成功了!大家興高采烈地為這款新的處理器結(jié)構(gòu)取了一個(gè)響亮的名字——AdvancedRISCMachines,簡(jiǎn)稱ARM。有趣的是這家公司的名字也是AdvancedRISCMachinesLtd.,簡(jiǎn)稱ARM,不得不說(shuō)他們當(dāng)初成立公司時(shí)的偉大目標(biāo)現(xiàn)在實(shí)現(xiàn)了,可是這個(gè)巧合里面有什么精彩秘密呢?其實(shí)早在我出生的前一年——1983年,一家名為Acorn的電腦公司就已經(jīng)開始著手開發(fā)精簡(jiǎn)指令集的32位微處理器。在我1歲的時(shí)候——1985年,該公司已經(jīng)研發(fā)出了ARM1處理器,一年之后又推出了ARM2處理器并批量生產(chǎn),之后不久又推出了ARM3處理器。這個(gè)時(shí)候已經(jīng)大名鼎鼎的蘋果公司看到了商機(jī),于是想和Acorn公司合作開發(fā)。后來(lái)雙方研究決定另外開設(shè)一家新公司,專門設(shè)計(jì)、研發(fā)精簡(jiǎn)指令集處理器。于是才有了前面提到的ARM公司的成立。ARM公司成立之后所研發(fā)的是ARM6型處理器結(jié)構(gòu),推出之后就被自己的兩個(gè)東家(蘋果和Acorn公司)應(yīng)用在其新款的產(chǎn)品上。現(xiàn)在好了,我們的ARM處理器結(jié)構(gòu)誕了。一開始ARM公司的處理器自產(chǎn)、自用,可是隨后吸引了一大批世界級(jí)的芯片生產(chǎn)廠商(也可能是ARM公司邀請(qǐng)他們過(guò)來(lái)的,誰(shuí)知道呢)。這些大廠商們正在為處理器市場(chǎng)的弊端而發(fā)愁,所以很快雙方建立了合作,即ARM公司自己不生產(chǎn)芯片,而是出售其ARM處理器結(jié)構(gòu)的設(shè)計(jì)方案,各大芯片生產(chǎn)廠商根據(jù)設(shè)計(jì)方案來(lái)生產(chǎn)ARM結(jié)構(gòu)的處理器芯片。這是一樁一本萬(wàn)利的生意,各大廠商每生產(chǎn)一片ARM體系結(jié)構(gòu)的處理器,就要向ARM公司支付一筆知識(shí)產(chǎn)權(quán)費(fèi)用。僅是出售一套現(xiàn)有的內(nèi)核方案就需要至少20萬(wàn)美元,如果還需要特殊修改服務(wù)則更是需要上千萬(wàn)美元。ARM公司也在不斷的升級(jí)、完善自己的產(chǎn)品以占據(jù)更多的市場(chǎng)份額。目前的32位微處理器市場(chǎng)上,ARM體系結(jié)構(gòu)的產(chǎn)品已經(jīng)占到7成以上,而且還在增長(zhǎng)。ARM公司身體力行,用實(shí)踐證明了“知識(shí)就是財(cái)富”這句話的真實(shí)性。當(dāng)然,這還要是在嚴(yán)格保護(hù)知識(shí)產(chǎn)權(quán)、嚴(yán)厲打擊盜版的國(guó)家和地區(qū)才行。
話分兩頭,單表買家。ARM處理器結(jié)構(gòu)被各大芯片廠商采用,制作出高性能、低功耗的理器,然后推向市場(chǎng)(通常我們叫它“ARM處理器”,還有叫“ARM單片機(jī)的”)。這些廠家里包括三星電子(SAMSUNG)、飛思卡爾(Freescale,摩托羅拉旗下公司)、思睿邏輯(CirrusLogic)、愛特梅爾(ATMEL)、恩智浦(NXP,飛利浦旗下公司)、國(guó)際商業(yè)機(jī)器公司(IBM)、德州儀器(TI)、富士通(FUJITSU)和任天堂等,相信這些公司不是腦門發(fā)熱的家伙,它們選擇ARM一定有更長(zhǎng)遠(yuǎn)的考慮。
處理器行業(yè)方興未艾,每天都會(huì)有新的技術(shù)和方案來(lái)滿足我們的需求。在低端市場(chǎng)有51單片機(jī)等8位處理器來(lái)滿足我們制作流水燈、電子鐘之類的作品,更可以作為控制類產(chǎn)品的開發(fā)。它們結(jié)構(gòu)簡(jiǎn)單、價(jià)格便宜、易學(xué)易用,是目前電子愛好者熱衷的玩藝兒。在高端市場(chǎng),由x86結(jié)構(gòu)的32位或64位的處理器來(lái)構(gòu)成我們PC機(jī)的核心部分。它們性能極高、速度飛快,一邊看電影一邊聊QQ都不在話下。
而一些需要電池供電的手持設(shè)備上,如智能手機(jī)、高級(jí)游戲機(jī)、數(shù)碼相機(jī)、掌上電腦等消費(fèi)類電子產(chǎn)品卻需要一款中端類型的處理器。ARM不是唯一的選擇,但卻是最好的選擇。蘋果的iPod、諾基亞N93、索愛K系列手機(jī)、戴爾的PDA電腦、任天堂的掌上游戲機(jī)、多普達(dá)的智能手機(jī)、還有國(guó)內(nèi)的一些山寨版電子產(chǎn)品上無(wú)不用到ARM的處理器。同時(shí)在世界范圍內(nèi)的嵌入式行業(yè)也刮起了一股ARM的流行風(fēng),ARM的學(xué)習(xí)教程、開發(fā)實(shí)驗(yàn)板、開發(fā)工具、仿真軟件日新月異、層出不窮。許多8051單片機(jī)的研發(fā)公司也開始向ARM轉(zhuǎn)型,而原本學(xué)習(xí)8051單片機(jī)的技術(shù)人員和愛好者也開始追趕流行,開始學(xué)習(xí)ARM技術(shù)。我個(gè)人認(rèn)為這種“追趕時(shí)尚”多少存在一些非理性和麻木的因素。單片機(jī)行業(yè)真的要從8位轉(zhuǎn)向32位嗎?ARM全面取代8051是未來(lái)市場(chǎng)的趨勢(shì)嗎?作為單片機(jī)初學(xué)者的你應(yīng)該怎么辦,是緊跟時(shí)代脈動(dòng),還是專心一門技術(shù)?以我個(gè)人拙見,根本沒有選擇的必要,下文中再與你細(xì)聊。
ARM最好的選擇,但不是唯一的選擇,與之競(jìng)爭(zhēng)的對(duì)手也非等閑之輩。最有名的當(dāng)屬英特爾公司出品的XScale處理器(芯片是在2003年前后推出的,2006年英特爾退出嵌入式領(lǐng)域,將XScale處理器部門賣給了Marvell公司),XScale系列處理器從早期英特爾生產(chǎn)的PXA255、XA270到現(xiàn)在Marvell公司生產(chǎn)的PXA300、PXA310、PXA320,從性能上看都相當(dāng)優(yōu)秀。XScale處理器曾被應(yīng)用在掌上電腦和智能手機(jī)上(如MOTOE680)。有趣的是,XScale處理器也是在ARMV5TE核心的基礎(chǔ)上改進(jìn)而成的。另外還有飛思卡爾公司的ColdFire(冷火)處理器架構(gòu)、AIM聯(lián)盟(蘋果、IBM、摩托羅拉的聯(lián)盟)所研發(fā)的PowerPC微處理器架構(gòu),以及MIPS技術(shù)公司的MIPS32和MIPS64處理器架構(gòu)。另外還有像AVR32等新型處理器不斷推出,這些都是32位嵌入式微處理器,這里就不一一介紹了。表1列出了ARM處理器的系列和應(yīng)用。請(qǐng)注意表中“應(yīng)用”這一列,也許你會(huì)發(fā)現(xiàn)一些熟知的電子產(chǎn)品。之前你在使用它們的時(shí)候并沒有去想它們的處理器是什么,因?yàn)檫@個(gè)問題顯得相當(dāng)神秘,現(xiàn)在你知道了,原來(lái)那些看似復(fù)雜的產(chǎn)品都有一顆ARM“心”。
最近看到一條新聞,基于ARM處理器的上網(wǎng)本(見圖2)將在2010年6月份推出。但因?yàn)槲④浌镜腤indows操作系統(tǒng)不支持ARM處理器,所以ARM處理器的上網(wǎng)本將會(huì)使用Linux等操作系統(tǒng)。這條新聞?lì)A(yù)示著ARM開始進(jìn)軍上網(wǎng)本市場(chǎng),以其特有的實(shí)力將筆記本電腦變得更輕巧,未來(lái)的智能產(chǎn)品將會(huì)超出現(xiàn)在的想象。ARM還可以創(chuàng)造多少奇跡?讓我們拭目以待吧。
學(xué)習(xí)指南
許多朋友想學(xué)習(xí)ARM,可是又不知道該從何入手。想聽聽我的傳奇經(jīng)歷嗎?那是大學(xué)三年級(jí)離畢業(yè)之前,我在哈爾濱的電子市場(chǎng)看到了一款LPC2200處理器(飛利浦公司的ARM處理器產(chǎn)品)的開發(fā)板(見圖3),這是飛利浦旗下的一款A(yù)RM處理器,帶一個(gè)真彩液晶屏,開機(jī)時(shí)很炫酷,隨板又贈(zèng)送一本ARM基礎(chǔ)教程。當(dāng)時(shí)很開心,在還沒把8051學(xué)出什么名堂的時(shí)候,就開始想轉(zhuǎn)戰(zhàn)ARM技術(shù)。當(dāng)時(shí)這款產(chǎn)品要價(jià)2000元,我反復(fù)掙扎了很久,最后還是壓不住沖動(dòng)的性子,把它買了下來(lái)。當(dāng)時(shí)向債主爸爸許諾,一定在短期之內(nèi)把ARM學(xué)好。我還真是下了狠心,在各位同學(xué)紛紛準(zhǔn)備畢業(yè)設(shè)計(jì)論文的時(shí)候,我正抱著一本ARM基礎(chǔ)教程的書反復(fù)研究。當(dāng)時(shí)還沒有什么好的ARM技術(shù)論壇,21IC論壇上水太深,也不敢隨便冒泡。就這樣,短暫又美好的大學(xué)時(shí)光過(guò)去了,那時(shí)我已經(jīng)自認(rèn)為對(duì)ARM技術(shù)有了一定的了解。
書中主要講述ARM7TDMI的系統(tǒng)結(jié)構(gòu)及原理,枯燥且難理解。如果是現(xiàn)在,我都懶得翻這種書,可當(dāng)時(shí)卻是朝圣般地研讀。當(dāng)時(shí)感覺ARM是一個(gè)結(jié)構(gòu)非常復(fù)雜的微處理器,它是32位處理器,是一個(gè)超級(jí)單片機(jī),要了解ARM的內(nèi)核結(jié)構(gòu),精簡(jiǎn)指令集的使用,還要學(xué)習(xí)匯編語(yǔ)言,最后就是學(xué)習(xí)一個(gè)叫μC/OS-II的操作系統(tǒng)??偠灾獙W(xué)的內(nèi)容比8051復(fù)雜,設(shè)計(jì)制作也就更難?;叵肫饋?lái),對(duì)當(dāng)時(shí)學(xué)過(guò)的內(nèi)容已沒有什么印象了。
轉(zhuǎn)機(jī)出現(xiàn)在南下求職中。畢業(yè)之后許多同學(xué)留在了哈爾濱,而我卻選擇只身一人南下深圳,因?yàn)槟抢锏碾娮有袠I(yè)發(fā)達(dá),如果可以找到一家好公司可以學(xué)到很多經(jīng)驗(yàn)。和我一樣想法的人應(yīng)該很多,可是最后的遭遇也各不相同,我還是比較幸運(yùn)的,找到一家很不錯(cuò)的嵌入式系統(tǒng)研發(fā)公司,老板對(duì)我也很好。我在那里從測(cè)試員做起,然后做到技術(shù)支持工程師,最后是產(chǎn)品經(jīng)理。一路下來(lái)經(jīng)歷了許多有趣的事情,也從一個(gè)產(chǎn)品應(yīng)用的角度重新認(rèn)識(shí)了ARM。我覺得后來(lái)在工作經(jīng)驗(yàn)中學(xué)到的ARM更成熟、更鮮活。
實(shí)踐中的ARM和書中的ARM完全不同。我要學(xué)習(xí)的內(nèi)容從內(nèi)核結(jié)構(gòu)變成了操作系統(tǒng),ARM的最大特點(diǎn)就是可以安裝嵌入式操作系統(tǒng),包括在ARM7上安裝μC/OS-II,在ARM9上安裝的WindowsCE、VxWorks和Linux。安裝了操作系統(tǒng)的ARM其實(shí)是更簡(jiǎn)單。以應(yīng)用較廣泛的WindowsCE來(lái)說(shuō),我們要開發(fā)的USB接口、以太網(wǎng)之類的功能早就已經(jīng)模塊化了,可以直接加載使用。我們需要做的只是在用EVC編譯器制作一個(gè)主程序和用戶界面。
所以ARM已經(jīng)將強(qiáng)大的操作系統(tǒng)和底層硬件分隔開來(lái),學(xué)習(xí)ARM其實(shí)是在學(xué)習(xí)操作系統(tǒng)。這就好像我們今天學(xué)習(xí)PC機(jī)的使用,其實(shí)主要是在學(xué)習(xí)Windows操作系統(tǒng)的使用一樣。學(xué)習(xí)ARM時(shí)如果從電腦軟件一端入手便會(huì)很容易,如果從單片機(jī)一端的硬件結(jié)構(gòu)開始,那么學(xué)習(xí)會(huì)困難一些——主要是思維方式不同,學(xué)習(xí)的難度就有不同。但并不是說(shuō)不可以這樣學(xué)習(xí),把ARM處理器當(dāng)成沒有操作系統(tǒng)的超級(jí)單片機(jī)使用也是很好的選擇。市場(chǎng)上許多介紹ARM入門的書多是電子行業(yè)的資深人士,他們熟悉8051,當(dāng)ARM出現(xiàn)時(shí)習(xí)慣上將ARM處理器當(dāng)作高級(jí)版的單片機(jī)來(lái)看待,自然也就習(xí)慣性地從硬件入手教學(xué)。另一方面,現(xiàn)在已經(jīng)非常成熟的電腦軟件開發(fā)的專家,多是用VC來(lái)編寫電腦軟件,如果讓他們使用EVC(嵌入式VC)來(lái)開發(fā)嵌入式系統(tǒng)自然不在話下,可惜他們并沒有及時(shí)地進(jìn)入這個(gè)領(lǐng)域。所以由電腦軟件專家編寫的嵌入式系統(tǒng)開發(fā)教程更是鳳毛麟角。嵌入式系統(tǒng)要想快速發(fā)展,就需要由懂得單片機(jī)開發(fā)的硬件工程師和通曉電腦軟件開發(fā)的專家通力配合才能實(shí)現(xiàn)。目前業(yè)內(nèi)也都意識(shí)到了這一點(diǎn),嵌入式系統(tǒng)的未來(lái)值得期待。
作為個(gè)人來(lái)講,無(wú)論你是單片機(jī)愛好者,還是電子技術(shù)應(yīng)用專業(yè)的在校大學(xué)生,在掌握8051應(yīng)用之后都應(yīng)該盡量學(xué)習(xí)一下ARM方面的知識(shí)。我個(gè)人推薦你學(xué)習(xí)三星電子公司出品的S3C2410或S3C2440處理器。它們是ARM9核心的,可以安裝WindowsCE和Linux操作系統(tǒng)。市場(chǎng)上的學(xué)習(xí)板價(jià)格也便宜,圖書和資料也相當(dāng)豐富。相信你會(huì)愛上圖型界面的開發(fā)的,那確實(shí)是很讓一個(gè)電子愛好者著迷的事情?,F(xiàn)在行業(yè)內(nèi)嵌入式系統(tǒng)的開發(fā)人才短缺,學(xué)好ARM也會(huì)對(duì)找工作大有好處。
小結(jié)
文章寫到這里,也許有的朋友已經(jīng)開始計(jì)劃學(xué)習(xí)ARM了。我的文章煽動(dòng)性確實(shí)很強(qiáng),可是面對(duì)自己的未來(lái)計(jì)劃應(yīng)該更理性、更冷靜的思考。首先ARM對(duì)于單純的電子愛好者而言并沒有單片機(jī)那么好玩。因?yàn)锳RM處理器的價(jià)格較高,周邊的元器件也并不便宜。雖然用ARM可以開發(fā)一些智能化更高的產(chǎn)品(例如帶有彩色顯示屏的設(shè)備、以太網(wǎng)接口的設(shè)備等),但是做一個(gè)硬件制作下來(lái)需要幾百到幾千元,作為電子愛好者的DIY娛樂,確實(shí)是太奢侈了。所以多數(shù)學(xué)習(xí)ARM的人都是為了找到福利更好的工作,或者承接一些基于ARM的項(xiàng)目開發(fā)。如果你不是出于這兩種目的,對(duì)于ARM只了解就可以了。還有,ARM軟、硬件開發(fā)的復(fù)雜程度要比8位單片機(jī)高,如果8位單片機(jī)還沒有熟悉開發(fā)的時(shí)候就轉(zhuǎn)到ARM的學(xué)習(xí),其實(shí)是不理智的行為。玩轉(zhuǎn)ARM處理器除了過(guò)硬的單片機(jī)功底,還需要軟件開發(fā)的能力,ARM開發(fā)中有80%的工作都是在軟件層面上,如果你學(xué)過(guò)電腦軟件的開發(fā)(如VB、VC開發(fā)),也接觸過(guò)操作系統(tǒng)(如Windows、Linux),再學(xué)習(xí)ARM就會(huì)事半功倍了。雖然操作系統(tǒng)會(huì)讓開發(fā)變得更方便快速,可是花時(shí)間研究操作系統(tǒng)也是必須的。最后結(jié)束一句吧:ARM很流行,也要量力而行。
評(píng)論