ARM構(gòu)架在32位微控制器領(lǐng)域的應(yīng)用
——
在標(biāo)準(zhǔn)微控制器的世界中,ARM體系結(jié)構(gòu)在32位嵌入式RISC領(lǐng)域有著極大的影響力。就像在8位世界中8051的廣泛應(yīng)用一樣,在32位微控制器領(lǐng)域里ARM得到了特別的青睞,并幾乎成為了事實上的標(biāo)準(zhǔn)。
關(guān)鍵字:ARM;32位微控制器
在標(biāo)準(zhǔn)微控制器的世界中,ARM體系結(jié)構(gòu)在32位嵌入式RISC領(lǐng)域有著極大的影響力。就像在8位世界中8051的廣泛應(yīng)用一樣,在32位微控制器領(lǐng)域里ARM得到了特別的青睞,并幾乎成為了事實上的標(biāo)準(zhǔn)。
對系統(tǒng)性能需求的提高和嵌入式功能的發(fā)展是促使設(shè)計者向32位處理器轉(zhuǎn)變的一個原因;但是這種轉(zhuǎn)變最大的驅(qū)動力還是來自于8位微控制器在其進化過程中自身面臨的諸多局限和挑戰(zhàn)。
雖然8位微控制器將繼續(xù)領(lǐng)導(dǎo)標(biāo)準(zhǔn)產(chǎn)品市場,但是很多公司為了延長8位體系結(jié)構(gòu)生命周期的做法,給設(shè)計工程師在開發(fā)產(chǎn)品時帶來了越來越多的困難。8/16位解決方案的供應(yīng)商近十年來以驚人的速度增加芯片上的外設(shè)、提高時鐘速度并擴展架構(gòu)。
這雖然提高了性能,但使設(shè)計者的工作更困難、更昂貴。設(shè)計者現(xiàn)在必須面對每個新的衍生芯片的開發(fā)工具,處理一系列不可預(yù)知的調(diào)試問題。而隨著芯片時鐘的提高,其速度超過了在線仿真器的能力,在線仿真很難再對它們進行調(diào)試。為了解決這一兩難境地,程序使用越來越多的存儲器,但是這種存儲器的增長是建立在一個十分低效的架構(gòu)上面的。
價格/性能比的變化
從整個系統(tǒng)角度出發(fā),8位微控制器的傳統(tǒng)優(yōu)勢棗價格,也在衰退。夏普微電子的單片機市場經(jīng)理 Terry Thomas說:“雖然一個8位的單片機能夠處理家電的傳統(tǒng)控制功能,運行電子游戲,用于一些PDA中,但如果你想使用一些新的市場要求的附加功能,如接入因特網(wǎng),大屏幕顯示等,就必須在PCB上增加額外的芯片?!比欢@些功能在32位構(gòu)架的芯片上可以方便、低成本地用軟件實現(xiàn)。
甚至在芯片與芯片的之間的單價直接對比上,競爭也開始如火如荼。在最近的嵌入式系統(tǒng)會議期間,幾家公司同時展示了各種各樣的基于ARM內(nèi)核的32位標(biāo)準(zhǔn)單片機。今天我們可以找到各種價格的ARM芯片。一個擁有ARM核的單片機平均價在4~5美元之間,這比先前平均8.50美元的價格有了很大的降幅。直逼傳統(tǒng)的51單片機。
各種市場力量匯聚在一起,是設(shè)計經(jīng)理們需要認(rèn)真考慮一下向32位構(gòu)架躍遷的時候了。通常有兩個問題是他們比較關(guān)心的:第一,是否能得到高質(zhì)量的調(diào)試與開發(fā)工具;第二,如何避免選用的體系結(jié)構(gòu)因為各種原因而失去強有力的工具支持。這些問題曾經(jīng)是所有面向32位體系結(jié)構(gòu)的開發(fā)人員面對的重要障礙。然而隨著基于ARM內(nèi)核單片機的引入,所有問題均迎刃而解。
我們現(xiàn)在可以很方便地找到很多用于ARM內(nèi)核標(biāo)準(zhǔn)單片機的開發(fā)工具,而更多的開發(fā)工具將在不久之后出現(xiàn)。另一個令人放心的理由是ARM在ASIC/SoC嵌入式市場上如此高的份額,這除了意味著ARM的體系結(jié)構(gòu)擁有龐大的開發(fā)人員團體外,還可以肯定第三方的開發(fā)工具商將積極跟進行業(yè)的領(lǐng)導(dǎo)者,并支持ARM。
向ARM 轉(zhuǎn)移
隨著工具的發(fā)展和對ARM構(gòu)架越來越多的支持,設(shè)計者需要理解8位與32位ARM開發(fā)環(huán)境的區(qū)別,以及調(diào)試和開發(fā)工具如何處理它們。擴展的指令集,存儲器構(gòu)架和片上調(diào)試環(huán)境是最先需要熟悉的。ARM 歐洲市場部經(jīng)理Bruce Beckloff說“許多構(gòu)架上的差異已經(jīng)被開發(fā)工具所掩蓋了,現(xiàn)在高效的C編譯器和強大的開發(fā)工具將使這一轉(zhuǎn)變變得十分容易?!?nbsp;
雖然容易,但并不是不費吹灰之力。學(xué)習(xí)新的指令集依然很重要,當(dāng)我們要編寫緊湊、具有嚴(yán)格時間要求的代碼時,我們?nèi)匀灰揽克鼈儭T谝浦泊a時我們需要理解寄存器組,程序跳轉(zhuǎn)方案和指令級的中斷處理概念。但是在向ARM的轉(zhuǎn)移過程中我們已經(jīng)可以看到很多新的手法了。
對于大多數(shù)的應(yīng)用而言,問題的本質(zhì)不是有沒有程序的移植工具或高效的交叉編譯器。相反,設(shè)計者想要知道的是32位工具是否能在和他們團隊正在使用的8位工具相同的環(huán)境下工作。
當(dāng)工程師們努力學(xué)習(xí)新的構(gòu)架時,熟悉的圖形界面和相似的運行環(huán)境對方便他們的學(xué)習(xí)是一個關(guān)鍵。大部分供應(yīng)商都注意到了這一特點的重要性。Ashling微系統(tǒng)總裁Michael Healy表示“我們的32位調(diào)試器與8位的調(diào)試器具有相似的外觀和使用感受”。然而在圖形界面之外兩者卻十分不同。與8位開發(fā)工具控制在線仿真器所不同,32位開發(fā)工具與片上調(diào)試端口通信。
存儲器管理
32位存儲器模型與8位有著本質(zhì)的不同。在8位世界中,8051的存儲器空間最多為64KB,這使我們幾乎不會去認(rèn)真考慮是否使用MMU。達到2MB空間的程序通常采用Bank切換方式的存儲器。
32位構(gòu)架歷來善于支持大型應(yīng)用程序和完整的操作系統(tǒng),它更傾向于將程序儲存于片外的RAM,在高速緩存中執(zhí)行程序并使用MMU來處理整個過程,而這對于許多老練的8位開發(fā)者是一個陌生的模型。編譯器確實有用,但處理高速緩存下如此多種分支和異常的復(fù)雜性,將給那些習(xí)慣于零等待內(nèi)存操作的開發(fā)者帶來一些麻煩。
芯片商開發(fā)出一個巧妙的方法用于解決這一問題。當(dāng)認(rèn)識到芯片制造工藝的進步使得片上的大容量閃存并不會花費太多的功耗時,飛利浦半導(dǎo)體推出了基于ARM7TDMI-S內(nèi)核的LPC2100系列芯片,其內(nèi)部擁有128位寬的零等待閃存。飛利浦使用128位的閃存接口以彌補閃存50ns的訪問延時。如果直接使用32位的數(shù)據(jù)總線傳輸數(shù)據(jù),它將比10ns延遲的RAM慢,然而擁有128位的帶寬則意味著每周期可以多傳輸3倍的數(shù)據(jù),從而提升有效帶寬。使用飛利浦低功耗的閃存單元和低功耗的0.18μm工藝,128位閃存數(shù)據(jù)通道使得存儲器訪問的瓶頸消失了。開發(fā)者可以就像為8位或16位單片機編程一樣編寫程序,代碼存儲并執(zhí)行于閃存中。編譯器和連接器無縫地拼接代碼,并將變量和數(shù)據(jù)存儲于RAM中。飛利浦單片機市場經(jīng)理Geoff Lees表示“這一配置對實時嵌入式應(yīng)用非常理想”。
調(diào)試技術(shù)
設(shè)計師轉(zhuǎn)移到32位架構(gòu)的最大區(qū)別在于代碼調(diào)試的工具和技術(shù)。8位單片機的特點是使用在線仿真器(ICE)調(diào)試,它隨著不同新產(chǎn)品的發(fā)布變得越來越復(fù)雜。為了滿足性能的需求和價格要求,8位單片機供應(yīng)商已經(jīng)衍生出許多不同的片上外設(shè),存儲器選項和引腳數(shù)量。
該策略衍生出大量不同的單片機,每一種均需要不同的ICE。調(diào)試工具提供商采用靈活的策略來降低復(fù)雜性,復(fù)用他們基本的ICE平臺。然而開發(fā)團隊依然難以決定使用何種衍生芯片,并購買相應(yīng)的調(diào)試工具。
然而當(dāng)他們進入32位設(shè)計領(lǐng)域時,設(shè)計者將有更豐富的片上調(diào)試工具以供選擇。學(xué)習(xí)的道路依然艱難,但如JTAG、ARM嵌入式ICE-RT和嵌入式Trace Macrocell(ETM)將最終指明走出8位衍生芯片泥沼道路的方向。
這些技術(shù)對于SoC和ASIC的ARM開發(fā)工程師非常好理解,但對于剛轉(zhuǎn)向32位的系統(tǒng)設(shè)計者來說需要一些解釋。以ARM7DTMI為例,該內(nèi)核包含 EmbeddedICE-RT技術(shù),這項技術(shù)允許在調(diào)試中產(chǎn)生中斷,從而使得中斷服務(wù)程序(ISR)得到執(zhí)行。這種實時能力是對EmbeddedICE技術(shù)的加強。EmbeddedICE是一種基于JTAG的ARM的內(nèi)核調(diào)試通道,它處理典型的ICE功能,例如條件斷點,單步運行。因為這些設(shè)備都在片上,EmbeddedICE-RT技術(shù)將避免使用笨重的、不可靠的探針接插設(shè)備。嵌入在芯片中的調(diào)試模塊與外部的系統(tǒng)時序獨立,它可以直接運行在芯片內(nèi)部的時鐘速度。
在8位世界中,背景調(diào)試模式(BDM)技術(shù)被廣泛地用于實時指令追蹤以控制寄存器、總線和存儲器。相對應(yīng)的ARM工具是ETM (Embedded Trace Macrocell)。觸發(fā)點和過濾功能由調(diào)試軟件配置并通過標(biāo)準(zhǔn)JTAG接口傳輸?shù)紼TM上。利用已有可編程的跟蹤器,追蹤端口可配置為4位、8位或16位數(shù)據(jù)總線寬度。就像8位仿真工具一樣,在仿真時外設(shè)和中斷程序依然能夠繼續(xù)運行。
ARM的中斷向量控制器(VIC)對很多人來說是一個不太熟悉的技術(shù)。實時嵌入式系統(tǒng)中往往有大量的中斷源,確定它們的優(yōu)先級并有效地加以處理是十分重要的。VIC對于管理中斷是一種非常理想的方案。從結(jié)構(gòu)(圖2)上來看,它將中斷控制器移到了AMBA AHB總線上;從功能上看,它支持最多32個標(biāo)準(zhǔn)中斷,16個IRQ向量中斷,硬件中斷優(yōu)先級控制和鏈?zhǔn)娇刂破鞯纫恍┢渌匦浴?
關(guān)于工具
毫無疑問,我們值得向ARM 32位構(gòu)架轉(zhuǎn)變。在轉(zhuǎn)變之前,我們可以預(yù)見到ARM注定會成為一個被廣泛采用的32位結(jié)構(gòu)體系解決方案。但與8位世界一樣,嵌入式應(yīng)用依舊對成本敏感。
評論