找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4593|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

ARM小記(杜洋)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:127229 發(fā)表于 2016-6-19 22:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
ARM何物  
ARM(Advanced RISC Machines,進(jìn)階精簡(jiǎn)指令集機(jī) 器),如果你一直把這個(gè)單詞讀成“A”-“R”-“M”,那么將有一個(gè)好消息和一個(gè)壞消息要告訴你。好消息是:你 這是初次接觸到ARM技術(shù)相關(guān)的文章,而本文內(nèi)容正是專(zhuān) 為你量身打造的,無(wú)論你是嵌入式系統(tǒng)的門(mén)外漢還是單片 機(jī)技術(shù)的初學(xué)者,都可以通過(guò)本文輕松地了解ARM技術(shù)。 請(qǐng)相信我,這并不困難!壞消息是:我很抱歉的告訴你, 它的正確讀法應(yīng)該是“arm”,是手臂、胳膊的英文發(fā)音。 很出丑是不是?但除非你是在大聲朗讀,不然沒(méi)人會(huì)知道 的。你又多了一個(gè)知識(shí)和一個(gè)不可告人的秘密。調(diào)整一下心態(tài),我們的故事就從這里開(kāi)始吧!  

1990年,有一家高科技公司在美麗的英國(guó)安了家,公司是由一群先知先覺(jué)的工程師組成的,他們致力于一種 新的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)。所以, 他們夜以繼日的開(kāi)發(fā),努力實(shí)現(xiàn)這個(gè)偉大構(gòu)想。終于,他 們成功了!大家興高采烈地為這款新的處理器結(jié)構(gòu)取了一個(gè)響亮的名字——Advanced RISC Machines,簡(jiǎn)稱(chēng)ARM。 有趣的是這家公司的名字也是Advanced  RISC  Machines Ltd.,簡(jiǎn)稱(chēng)ARM,不得不說(shuō)他們當(dāng)初成立公司時(shí)的偉大目標(biāo) 現(xiàn)在實(shí)現(xiàn)了,可是這個(gè)巧合里面有什么精彩秘密呢?其實(shí) 早在我出生的前一年——1983年,一家名為Acorn的電腦公 司就已經(jīng)開(kāi)始著手開(kāi)發(fā)精簡(jiǎn)指令集的32位微處理器。在我1歲的時(shí)候——1985年,該公司已經(jīng)研發(fā)出了ARM1處理器,一年之后又推出了ARM2處理器并批量生產(chǎn),之后不久又推 出了ARM3處理器。這個(gè)時(shí)候已經(jīng)大名鼎鼎 的蘋(píng)果公司看 到了商機(jī),于是想和Acorn公司合作開(kāi)發(fā)。后來(lái)雙方研究決定另外開(kāi)設(shè)一家新公司,專(zhuān)門(mén)設(shè)計(jì)、研發(fā)精簡(jiǎn)指令集處理 器。于是才有了前面提到的ARM公司的成立。ARM公司成 立之后所研發(fā)的是ARM6型處理器結(jié)構(gòu),推出之后就被自己 的兩個(gè)東家(蘋(píng)果和Acorn公司)應(yīng)用在其新款的產(chǎn)品上。 現(xiàn)在好了 ,我們的ARM處理器結(jié)構(gòu)誕了。 一開(kāi)始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ū)才行。  
話分兩頭,單表買(mǎi)家。ARM處理器結(jié)構(gòu)被各大芯片廠商采用,制作出高性能 、低功耗的理器,然后推向市場(chǎng)(通常我們叫它“ARM處理器”,還有叫“ARM單片機(jī)的”)。這些廠家里包括三星電子(SAMSUNG)、飛思卡爾( Freescale, 摩托羅拉旗下公司 )、思睿邏輯(CirrusLogic)、愛(ài)特梅爾(ATMEL)、恩智浦(NXP,飛利浦旗下公司)、國(guó)際商業(yè)機(jī)器公司(IBM)、德州儀器(TI)、富士通(FUJITSU)和任天堂等,相信這些公司不 是腦門(mén)發(fā)熱的家伙,它們選擇ARM一定有更長(zhǎng)遠(yuǎn)的考慮。  
處理器行業(yè)方興未艾,每天都會(huì)有新的技術(shù)和方案來(lái)滿足我們的需求。在低端市場(chǎng)有51單片機(jī)等8位處理器來(lái) 滿足我們制作流水燈、電子鐘之類(lèi)的作品,更可以作為控制類(lèi)產(chǎn)品的開(kāi)發(fā)。它們結(jié)構(gòu)簡(jiǎn)單、價(jià)格便宜、易學(xué)易用,是目前電子愛(ài)好者熱衷的玩藝兒。在高端市場(chǎng),由x86結(jié)構(gòu) 的32位或64位的處理器來(lái)構(gòu)成我們PC機(jī)的核心部分。它們 性能極高、速度飛快,一邊看電影一邊聊QQ都不在話下。  
而一些需要電池供電的手持設(shè)備上,如智能手機(jī)、高級(jí)游戲機(jī)、數(shù)碼相機(jī)、掌上電腦等消費(fèi)類(lèi)電子產(chǎn)品卻需要一款 中端類(lèi)型的處理器。ARM不是唯一的選擇,但卻是最 好的 選擇。蘋(píng)果的iPod、諾基亞N93、索愛(ài)K系列手機(jī)、戴爾的 PDA電腦、任天堂的掌上游戲機(jī)、多普達(dá)的智能手機(jī)、還 有國(guó)內(nèi)的一些山寨版電子產(chǎn)品上無(wú)不用到ARM的處理器。 同時(shí)在世界范圍內(nèi)的嵌入式行業(yè)也刮起了一股ARM的流行 風(fēng),ARM的學(xué)習(xí)教程、開(kāi)發(fā)實(shí)驗(yàn)板、開(kāi)發(fā)工具、仿真軟件 日新月異、層出不窮。許多8051單片機(jī)的研發(fā)公司也開(kāi)始 向ARM轉(zhuǎn)型,而原本學(xué)習(xí)8051單片機(jī)的技術(shù)人員和愛(ài)好 者也開(kāi)始追趕流行,開(kāi)始學(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),還是專(zhuān)心一門(mén)技術(shù)?以我個(gè)人拙見(jiàn),根本沒(méi)有選擇的必要,下文中再與你細(xì)聊。  
ARM最好的選擇,但不是唯一的選擇,與之競(jìng)爭(zhēng)的對(duì)手也非等閑之輩。最有名的當(dāng)屬英特爾公司出品的XScale處理器(芯片是在2003 年前后推出的,2006年英 特爾退出嵌入式領(lǐng)域,將XScale處理器部門(mén)賣(mài)給了Marvell公司),XScale系列處理器從早期英特爾生產(chǎn)的PXA255、XA270到現(xiàn)在Marvell公司生產(chǎn)的PXA300、PXA310、PXA320,從性能上看都相當(dāng)優(yōu)秀。XScale處理器曾被應(yīng) 用在掌上電腦和智能手機(jī)上(如MOTO  E680)。有趣的 是,XScale處理器也是在ARMV5TE核心的基礎(chǔ)上改進(jìn)而成的。另外還有飛思卡爾公司的ColdFire(冷火)處理器架構(gòu) 、 AIM聯(lián)盟(蘋(píng)果、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í)候并沒(méi)有去想它們的處理器是什么,因?yàn)?這個(gè)問(wèn)題顯得相當(dāng)神秘,現(xiàn)在你知道了,原來(lái)那些看似復(fù) 雜的產(chǎn)品都有一顆ARM“心”。  
最近看到一條新聞,基于ARM處理器的上網(wǎng)本(見(jiàn)圖2)將在2010年6月份推出。但因?yàn)槲④浌镜腤indows操 作系統(tǒng)不支持ARM處理器,所以ARM處理器的上網(wǎng)本將會(huì) 使用Linux等操作系統(tǒng)。這條新聞?lì)A(yù)示著ARM開(kāi)始進(jìn)軍上網(wǎng)本市場(chǎng),以其特有的實(shí)力將筆記本電腦變得更輕巧,未來(lái)的智能產(chǎn)品將會(huì)超出現(xiàn)在的想象。ARM還可以創(chuàng)造多少奇 跡?讓我們拭目以待吧。


學(xué)習(xí)指南  
許多朋友想學(xué)習(xí) ARM,可是又不知道該從何入手。想聽(tīng)聽(tīng)我的傳奇經(jīng)歷嗎?那是大學(xué)三年級(jí)離畢業(yè)之前,我在哈爾濱的電子市場(chǎng)看到了一款 LPC2200 處理器(飛利浦公司的 ARM 處理器產(chǎn)品)的開(kāi)發(fā)板(見(jiàn)圖 3),這是飛利浦旗下的 一款 ARM 處理器,帶一個(gè)真彩液晶屏,開(kāi)機(jī)時(shí)很炫酷,隨 板又贈(zèng)送一本 ARM 基礎(chǔ)教程。當(dāng)時(shí)很開(kāi)心,在還沒(méi)把 8051 學(xué)出什么名堂的時(shí)候,就開(kāi)始想轉(zhuǎn)戰(zhàn) ARM 技術(shù)。當(dāng)時(shí)這款 產(chǎn)品要價(jià) 2000 元,我反復(fù)掙扎了很久,最后還是壓不住沖動(dòng)的性子,把它買(mǎi)了下來(lái)。當(dāng)時(shí)向債主爸爸許諾,一定在短期之內(nèi)把 ARM 學(xué)好。我還真是下了狠心,在各位同學(xué)紛紛 準(zhǔn)備畢業(yè)設(shè)計(jì)論文的時(shí)候,我正抱著一本 ARM 基礎(chǔ)教程的 書(shū)反復(fù)研究。當(dāng)時(shí)還沒(méi)有什么好的 ARM 技術(shù)論壇,21IC 論壇上水太深,也不敢隨便冒泡。就這樣,短暫又美好的大學(xué)時(shí)光過(guò)去了,那時(shí)我已經(jīng)自認(rèn)為對(duì) ARM 技術(shù)有了一定的了解。

書(shū)中主要講述 ARM7TDMI 的系統(tǒng)結(jié)構(gòu)及原理,枯燥且難理解。 如果是現(xiàn)在,我都懶得翻這種書(shū),可當(dāng)時(shí)卻是朝圣般地研讀。 當(dāng)時(shí)感覺(jué) 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)容已沒(mé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。我覺(jué)得后來(lái)在工作 經(jīng)驗(yàn)中學(xué)到的ARM更成熟、更鮮活。  
實(shí)踐中的ARM和書(shū)中的ARM完全不同。我要學(xué)習(xí)的內(nèi)容從內(nèi)核結(jié)構(gòu)變成了操作系統(tǒng),ARM的最大特點(diǎn)就是可以 安裝嵌入式操作系統(tǒng),包括在ARM7上安裝μC/OS-II,在 ARM9上安裝的Windows CE、VxWorks和Linux。安裝了操作 系統(tǒng)的ARM其實(shí)是更簡(jiǎn)單。以應(yīng)用較廣泛的Windows CE來(lái) 說(shuō),我們要開(kāi)發(fā)的USB接口、以太網(wǎng)之類(lèi)的功能早就已經(jīng) 模塊化了,可以直接加載使用。我們需要做的只是在用EVC 編譯器制作一個(gè)主程序和用戶(hù)界面。  
所以ARM已經(jīng)將強(qiáng)大的操作系統(tǒng)和底層硬件分隔開(kāi)來(lái),學(xué)習(xí)ARM其實(shí)是在學(xué)習(xí)操作系統(tǒng)。這就好像我們今天 學(xué)習(xí)PC機(jī)的使用,其實(shí)主要是在學(xué)習(xí)W indows操作系統(tǒng) 的使用一樣。學(xué)習(xí)ARM時(shí)如果從電腦軟件一端入手便會(huì)很容易,如果從單片機(jī)一端的硬件結(jié)構(gòu)開(kāi)始,那么學(xué)習(xí)會(huì)困難一些——主要是思維方式不同,學(xué)習(xí)的難度就有不同。 但并不是說(shuō)不可以這樣學(xué)習(xí),把ARM處理器當(dāng)成沒(méi)有操作 系統(tǒng)的超級(jí)單片機(jī)使用也是很好的選擇。市場(chǎng)上許多介紹 ARM入門(mén)的書(shū)多是電子行業(yè)的資深人士,他們熟悉8051, 當(dāng)ARM出現(xiàn)時(shí)習(xí)慣上將ARM處理器當(dāng)作高級(jí)版的單片機(jī)來(lái) 看待,自然也就習(xí)慣性地從硬件入手教學(xué)。另一方面,現(xiàn) 在已經(jīng)非常成熟的電腦軟件開(kāi)發(fā)的專(zhuān)家,多是用VC來(lái)編寫(xiě)電腦軟件,如果讓他們使用EVC(嵌入式VC)來(lái)開(kāi)發(fā)嵌入式系統(tǒng)自然不在話下,可惜他們并沒(méi)有及時(shí)地進(jìn)入這個(gè)領(lǐng) 域。所以由電腦軟件專(zhuān)家編寫(xiě)的嵌入式系統(tǒng)開(kāi)發(fā)教程更是 鳳毛麟角。嵌入式系統(tǒng)要想快速發(fā)展,就需要由懂得單片 機(jī)開(kāi)發(fā)的硬件工程師和通曉電腦軟件開(kāi)發(fā)的專(zhuān)家通力配合 才能實(shí)現(xiàn)。目前業(yè)內(nèi)也都意識(shí)到了這一點(diǎn),嵌入式系統(tǒng)的 未來(lái)值得期待。  
作為個(gè)人來(lái)講,無(wú)論你是單片機(jī)愛(ài)好者,還是電子技術(shù)應(yīng)用專(zhuān)業(yè)的在校大學(xué)生,在掌握8051應(yīng)用之后都應(yīng)該盡 量學(xué)習(xí)一下ARM方面的知識(shí)。我個(gè)人推薦你學(xué)習(xí)三星電子 公司出品的S3C2410或S3C2440處理器。它們是ARM9核心 的,可以安裝Windows CE和Linux操作系統(tǒng)。市場(chǎng)上的學(xué)習(xí)板價(jià)格也便宜,圖書(shū)和資料也相當(dāng)豐富。相信你會(huì)愛(ài)上圖型界面的開(kāi)發(fā)的,那確實(shí)是很讓一個(gè)電子愛(ài)好者著迷的事 情。現(xiàn)在行業(yè)內(nèi)嵌入式系統(tǒng)的開(kāi)發(fā)人才短缺 ,學(xué)好ARM也 會(huì)對(duì)找工作大有好處。  

小結(jié)  
文章寫(xiě)到這里,也許有的朋友已經(jīng)開(kāi)始計(jì)劃學(xué)習(xí)ARM 了。我的文章煽動(dòng)性確實(shí)很強(qiáng),可是面對(duì)自己的未來(lái)計(jì)劃 應(yīng)該更理性、更冷靜的思考。首先ARM對(duì)于單純的電子愛(ài) 好者而言并沒(méi)有單片機(jī)那么好玩。因?yàn)锳RM處理器的價(jià)格 較高,周邊的元器件也并不便宜。雖然用ARM可以開(kāi)發(fā)一 些智能化更高的產(chǎn)品(例如帶有彩色顯示屏的設(shè)備、以太 網(wǎng)接口的設(shè)備等),但是做一個(gè)硬件制作下來(lái)需要幾百到 幾千元,作為電子愛(ài)好者的DIY娛樂(lè),確實(shí)是太奢侈了。 所以多數(shù)學(xué)習(xí)ARM的人都是為了找到福利更好的工作,或 者承接一些基于ARM的項(xiàng)目開(kāi)發(fā)。如果你不是出于這兩種 目的,對(duì)于ARM只了解就可以了。還有,ARM軟、硬件開(kāi) 發(fā)的復(fù)雜程度要比8位單片機(jī)高,如果8位單片機(jī)還沒(méi)有熟 悉開(kāi)發(fā)的時(shí)候就轉(zhuǎn)到ARM的學(xué)習(xí),其實(shí)是不理智的行為。 玩轉(zhuǎn)ARM處理器除了過(guò)硬的單片機(jī)功底,還需要軟件開(kāi)發(fā) 的能力,ARM開(kāi)發(fā)中有80%的工作都是在軟件層面上,如 果你學(xué)過(guò)電腦軟件的開(kāi)發(fā)(如VB、VC開(kāi)發(fā)),也接觸過(guò) 操作系統(tǒng)(如Windows、Linux),再學(xué)習(xí)ARM就會(huì)事半功 倍了。雖然操作系統(tǒng)會(huì)讓開(kāi)發(fā)變得更方便快速,可是花時(shí) 間研究操作系統(tǒng)也是必須的。最后結(jié)束一句吧:ARM很流 行,也要量力而行。  


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:60379 發(fā)表于 2016-8-13 21:04 | 只看該作者
樓主總結(jié)得很好,支持!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表