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