<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM處理器選型指南:選ARM7還是選Cortex-M3

          ARM處理器選型指南:選ARM7還是選Cortex-M3

          作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
          要使用低成本的 32位處理器,開(kāi)發(fā)人員面臨兩種選擇,基于Cortex-M3內(nèi)核或者ARM7TDMI內(nèi)核的處理器。如何做出選擇?選擇標(biāo)準(zhǔn)又是什么?本文主要介紹了ARM Cortex-M3內(nèi)核微控制器區(qū)別于ARM7的一些特點(diǎn),幫助您快速選擇。

          1.ARM實(shí)現(xiàn)方法

          本文引用地址:http://www.ex-cimer.com/article/201611/317245.htm

          ARM Cortex-M3是一種基于ARM V7架構(gòu)的最新ARM嵌入式內(nèi)核,它采用哈佛結(jié)構(gòu),使用分離的指令和數(shù)據(jù)總線( 馮諾伊曼結(jié)構(gòu)下,數(shù)據(jù)和指令共用一條總線 )。從本質(zhì)上來(lái)說(shuō),哈佛結(jié)構(gòu)在物理上更為復(fù)雜,但是處理速度明顯加快。根據(jù)摩爾定理,復(fù)雜性并不是一件非常重要的事,而吞吐量的增加卻極具價(jià)值。

          ARM公司對(duì)Cortex-M3的定位是:向?qū)I(yè)嵌入式市場(chǎng)提供低成本、低功耗的芯片。在成本和功耗方面,Cortex-M3具有相當(dāng)好的性能,ARM公司認(rèn)為它特別適用于汽車和無(wú)線通信領(lǐng)域。和所有的ARM內(nèi)核一樣,ARM公司將內(nèi)該設(shè)計(jì)授權(quán)給各個(gè)制造商來(lái)開(kāi)發(fā)具體的芯片。迄今為止,已經(jīng)有多家芯片制造商開(kāi)始生產(chǎn)基于Cortex-M3內(nèi)核的微控制器。

          ARM7TDMI(包括ARM7TDMIS)系列的ARM內(nèi)核也是面向同一類市場(chǎng)的。這類內(nèi)核已經(jīng)存在了十多年之久,并推動(dòng)了ARM成為處理器內(nèi)核領(lǐng)域的主導(dǎo)者。眾多的制造商(據(jù)ARM宣稱,多達(dá)16家)出售基于ARM7系列的處理器以及其他配套的系統(tǒng)軟件、開(kāi)發(fā)和調(diào)試工具。在許多方面,ARM7TDMI都可以稱得上是嵌入式領(lǐng)域的實(shí)干家。

          2.兩者差異

          除了使用哈佛結(jié)構(gòu), Cortex-M3 還具有其他顯著的優(yōu)點(diǎn):具有更小的基礎(chǔ)內(nèi)核,價(jià)格更低,速度更快。與內(nèi)核集成在一起的是一些系統(tǒng)外設(shè),如中斷控制器、總線矩陣、調(diào)試功能模塊,而這些外設(shè)通常都是由芯片制造商增加的。 Cortex-M3 還集成了睡眠模式和可選的完整的八區(qū)域存儲(chǔ)器保護(hù)單元。它采用 THUMB-2指令集,最大限度降低了匯編器使用率。

          3.指令集

          ARM7可以使用ARM和Thumb兩種指令集,而 Cortex-M3只支持最新的 Thumb-2指令集。這樣設(shè)計(jì)的優(yōu)勢(shì)在于:
          ? 免去 Thumb和ARM代碼的互相切換,對(duì)于早期的處理器來(lái)說(shuō),這種狀態(tài)切換會(huì)降低性能。
          ? Thumb-2指令集的設(shè)計(jì)是專門面向C語(yǔ)言的,且包括If/Then結(jié)構(gòu)(預(yù)測(cè)接下來(lái)的四條語(yǔ)句的條件執(zhí)行)、硬件除法以及本地位域操作。
          ? Thumb-2指令集允許用戶在C代碼層面維護(hù)和修改應(yīng)用程序,C代碼部分非常易于重用。
          ? Thumb-2指令集也包含了調(diào)用匯編代碼的功能:Luminary公司認(rèn)為沒(méi)有必要使用任何匯編語(yǔ)言。
          ? 綜合以上這些優(yōu)勢(shì),新產(chǎn)品的開(kāi)發(fā)將更易于實(shí)現(xiàn),上市時(shí)間也大為縮短。

          4.中斷

          Cortex-M3的另一個(gè)創(chuàng)新在于 嵌套向量中斷控制器 NVIC( Nested Vector Interrupt Controller)。相對(duì)于ARM7使用的外部中斷控制器,Cortex-M3內(nèi)核中集成了中斷控制器,芯片制造廠商可以對(duì)其進(jìn)行配置,提供基本的32個(gè)物理中斷,具有8層優(yōu)先級(jí),最高可達(dá)到240個(gè)物理中斷和256個(gè)中斷優(yōu)先級(jí)。此類設(shè)計(jì)是確定的且具有低延遲性,特別適用于汽車應(yīng)用。

          NVIC使用的是基于堆棧的異常模型。在處理中斷時(shí),將程序計(jì)數(shù)器,程序狀態(tài)寄存器,鏈接寄存器和通用寄存器壓入堆棧,中斷處理完成后,在恢復(fù)這些寄存器。堆棧處理是由硬件完成的,無(wú)需用匯編語(yǔ)言創(chuàng)建中斷服務(wù)程序的堆棧操作。

          中斷嵌套是可以是實(shí)現(xiàn)的。中斷可以改為使用比之前服務(wù)程序更高的優(yōu)先級(jí),而且可以在運(yùn)行時(shí)改變優(yōu)先級(jí)狀態(tài)。使用末尾連鎖( tail-chaining )連續(xù)中斷技術(shù)只需消耗三個(gè)時(shí)鐘周期,相比于 32個(gè)時(shí)鐘周期的連續(xù)壓、出堆棧,大大降低了延遲,提高了性能。

          如果在更高優(yōu)先級(jí)的中斷到來(lái)之前, NVIC已經(jīng)壓堆棧了,那就只需要獲取一個(gè)新的向量地址,就可以為更高優(yōu)先級(jí)的中斷服務(wù)了。同樣的,NVIC不會(huì)用出堆棧的操作來(lái)服務(wù)新的中斷。這種做法是完全確定的且具有低延遲性。

          5.睡眠

          Cortex-M3的電源管理方案通過(guò)NVIC支持Sleep Now, Sleep on Exit (退出最低優(yōu)先級(jí)的ISR) and SLEEPDEEP modes這三種睡眠模式。為了產(chǎn)生定期的中斷時(shí)間間隔, NVIC還集成了系統(tǒng)節(jié)拍計(jì)時(shí)器,這個(gè)計(jì)時(shí)器也可以作為RTOS和調(diào)度任務(wù)的心跳。這種做法與先前的ARM架構(gòu)的不同之處就在于不需要外部時(shí)鐘。

          6.存儲(chǔ)器保護(hù)單元

          存儲(chǔ)器保護(hù)單元是一個(gè)可選組建。選用了這個(gè)選項(xiàng),內(nèi)存區(qū)域就可以與應(yīng)用程序特定進(jìn)程按照其他進(jìn)程所定義的規(guī)則聯(lián)系在一起。例如,一些內(nèi)存可以完全被其他進(jìn)程阻止,而另外一部分內(nèi)存能對(duì)某些進(jìn)程表現(xiàn)為只讀。還可以禁止進(jìn)程進(jìn)入存儲(chǔ)器區(qū)域??煽啃裕貏e是實(shí)時(shí)性因此得到重大改進(jìn)。

          7.調(diào)試

          對(duì) Cortex-M3 處理器系統(tǒng)進(jìn)行調(diào)試和追蹤是通過(guò)調(diào)試訪問(wèn)端口( Debug Access Port )來(lái)實(shí)現(xiàn)的。調(diào)試訪問(wèn)端口可以是一個(gè) 2針的串行調(diào)試端口( Serial Wire Debug Port )或者串行 JTAG調(diào)試端口( Serial Wire JTAG Debug Port )。通過(guò) Flash片、斷點(diǎn)單元、數(shù)據(jù)觀察點(diǎn)、跟蹤單元,以及可選的嵌入式跟蹤宏單元( Embedded Trace Macrocell )和指令跟蹤宏單元( Instrumentation Trace Macrocell )等一系列功能相結(jié)合,在內(nèi)核部分就可以采用多種類型的調(diào)試方法及監(jiān)控函數(shù)。例如,可以設(shè)置斷點(diǎn)、觀察點(diǎn)、定義缺省條件或執(zhí)行調(diào)試請(qǐng)求、監(jiān)控停止操作或繼續(xù)操作。所有的這些功能在 ARM架構(gòu)的產(chǎn)品中已經(jīng)實(shí)現(xiàn),只是 Cortex-M3 將這些功能整合起來(lái),方便開(kāi)發(fā)人員使用。

          8.應(yīng)用范圍

          雖然 ARM7內(nèi)核并沒(méi)有像Cortex系列那樣集成很多外設(shè),但是大量的基于ARM7的器件,從通用MCU,到面向應(yīng)用的MCU、SOC甚至是Actel公司基于ARM7內(nèi)核的FPGA,都擁有更為眾多的外圍設(shè)備。大約有150種MCU是基于ARM7內(nèi)核的(根據(jù)不同的統(tǒng)計(jì)方法,這個(gè)數(shù)字可能會(huì)更高)。

          你會(huì)發(fā)現(xiàn) ARM7都可以實(shí)現(xiàn)幾乎所有的嵌入式應(yīng)用,或采用定制的方式來(lái)滿足需求。基于標(biāo)準(zhǔn)內(nèi)核,芯片廠商可以加入不同類型、大小的存儲(chǔ)器和其他外圍設(shè)備,比如串行接口、總線控制器、存儲(chǔ)器控制器和圖形單元,并針對(duì)工業(yè)、汽車或者其他要求苛刻的領(lǐng)域,使用不同的芯片封裝,提供不同溫度范圍的芯片版本。芯片廠商也可能綁定特定的軟件,比如TCP/IP協(xié)議?;蛎嫦蛱囟☉?yīng)用的軟件。

          例如, STMicroelectronics公司的STR7產(chǎn)品線有三個(gè)主要系列共45個(gè)成員,具有不同的封裝和存儲(chǔ)器。每一個(gè)系列都針對(duì)特定的應(yīng)用領(lǐng)域,具有不同外設(shè)集合。比如STR730家族是專為工業(yè)和汽車應(yīng)用設(shè)計(jì)的,因此具有可擴(kuò)展的溫度范圍,包括多個(gè)I/O口和3個(gè)CAN總線接口。STR710則是面向于消費(fèi)市場(chǎng)以及高端的工業(yè)應(yīng)用,它具有多個(gè)通信接口,比如USB, CAN, ISO7816以及4個(gè)UART,還有大容量的存儲(chǔ)器和一個(gè)外部存儲(chǔ)器接口。

          芯片廠商也可以選擇利于開(kāi)發(fā)人員開(kāi)發(fā)產(chǎn)品的措施,比如采用 ARM的 嵌入式跟蹤宏單元 ETM( Embedded Trace Macrocell ),并提供開(kāi)發(fā)和調(diào)試工具。

          截止至這篇文章寫作之時(shí), Luminary、STMicroelectronics這兩家公司已經(jīng)有基于Cortex-M3的芯片,其他公司如NXP、Atmel也宣布生產(chǎn)該類產(chǎn)品。

          9.配套工具

          ARM7應(yīng)用已經(jīng)非常普及,它已經(jīng)有非常多第三方的開(kāi)發(fā)和調(diào)試工具支持。在ARM的網(wǎng)站上有超過(guò)130家工具公司名稱列表。

          大多數(shù)廠商提供了基本的開(kāi)發(fā)板,并提供下載程序的接口、調(diào)試工具以及外部設(shè)備的驅(qū)動(dòng),包括 LED燈的顯示狀態(tài)或者屏幕上的單行顯示。通常,開(kāi)發(fā)套件包括編譯器、一些調(diào)試軟件以及開(kāi)發(fā)板。更為高級(jí)的套件包括第三方的集成開(kāi)發(fā)環(huán)境(IDE),IDE中包含編譯器、鏈接器、調(diào)試器、編輯器和其他工具,也可能包括仿真硬件,比如說(shuō)JTAG仿真器。

          內(nèi)電路仿真器( ICE)是最早的也是最有用的調(diào)試工具形式之一,很多廠商都在ARM7上提供了這一接口。

          軟件開(kāi)發(fā)工具范圍很廣:從建模到可視化設(shè)計(jì),到編譯器?,F(xiàn)在很多的產(chǎn)品也用到實(shí)時(shí)操作系統(tǒng)( RTOS)和中間件,以加速開(kāi)發(fā)進(jìn)程、降低開(kāi)發(fā)難度。另外,還有一個(gè)非常重要的因素,很多的開(kāi)發(fā)人員對(duì) ARM7的開(kāi)發(fā)經(jīng)驗(yàn)非常豐富。

          雖然現(xiàn)在已經(jīng)有新興的 Cortex-M3 工具,但顯然還是有一定的差距。不過(guò), Cortex-M3的集成調(diào)試性能使調(diào)試變得簡(jiǎn)單且有效,且無(wú)需用到內(nèi)電路仿真器ICE。

          10.決策

          那么,你應(yīng)該如何做出何種選擇呢?如果成本是最主要考慮因素,您應(yīng)該選擇 Cortex-M3;如果在低成本的情況下尋求更好的性能和改進(jìn)功耗,您最好考慮選用Cortex-M3;特別是如果你的應(yīng)用是汽車和無(wú)線領(lǐng)域,最好也采用Cortex-M3,這正是Coretex-M3的主要定位市場(chǎng)。由于 Cortex-M3內(nèi)核中的多種集成元素以及采用Thumb-2指令集,其開(kāi)發(fā)和調(diào)試比ARM7TDMI要簡(jiǎn)單快捷。

          然而,由于重定義 ARM7TDMI的應(yīng)用不是一件困難的事,特別是在使用了RTOS的情況下。保守者可能會(huì)沿用ARM7TDMI內(nèi)核的芯片,并避免使用那些會(huì)使重定義變得復(fù)雜的功能。

          11.IAR YellowSuite for ARM

          IAR YellowSuite for ARM是一整套支持ARM的開(kāi)發(fā)工具整體解決方案,包括:visualSTATE狀態(tài)機(jī)建模工具、IAR Embedded Workbench集成開(kāi)發(fā)環(huán)境、PowerPac RTOS和中間件、仿真器等。不管選用 ARM7還是Cortex-M3,IAR的開(kāi)發(fā)工具都能支持。

          visualSTATE狀態(tài)機(jī)建模工具

          visualSTATE是一套精致、易用的開(kāi)發(fā)工具, 包含圖形設(shè)計(jì)器、測(cè)試工具包,代碼生成器和文檔生成器, 用于設(shè)計(jì)、測(cè)試和實(shí)現(xiàn)基于狀態(tài)圖設(shè)計(jì)的嵌入式應(yīng)用。
          ? 基于統(tǒng)一建模語(yǔ)言 (UML)狀態(tài)機(jī)理論的圖形化模型設(shè)計(jì);
          ? 對(duì)設(shè)計(jì)模型進(jìn)行規(guī)范性驗(yàn)證,檢查系統(tǒng)的邏輯一致性,鑒別出系統(tǒng)設(shè)計(jì)漏洞或錯(cuò)誤;
          ? 設(shè)計(jì)過(guò)程的早期階段,甚至在硬件設(shè)計(jì)尚未完成之前,就可以使用測(cè)試工具來(lái)確保應(yīng)用能按照預(yù)想方式運(yùn)行;
          ? 自動(dòng)代碼生成功能可以生成極為緊湊的 C/C++代碼,100%與設(shè)計(jì)保持一致;
          ? 自動(dòng)文檔生成功能提供了詳盡的信息;
          ? 與 IAR Embedded Workbench 無(wú)縫集成,提供多種微控制器和評(píng)估板的現(xiàn)成示例代碼;
          ? 通過(guò) CSPYLink或RealLink對(duì)目標(biāo)器件進(jìn)行綜合的圖形化狀態(tài)機(jī)調(diào)試;
          ? 支持多種硬件調(diào)試接口,例如 J-Link、通用JTAG仿真器、NEXUS仿真器等

          IAR Embedded Workbench for ARM集成開(kāi)發(fā)環(huán)境

          IAR Embedded Workbench for ARM集成開(kāi)發(fā)環(huán)境(簡(jiǎn)稱EWARM) 是一套支持 ARM所有處理器的集成開(kāi)發(fā)環(huán)境,包含項(xiàng)目管理器、編輯器、C/C++ 編譯器 、匯編器、連接器和調(diào)試器。

          IAR Embedded Workbench for ARM集成開(kāi)發(fā)環(huán)境支持所有的ARM內(nèi)核,并提供大多數(shù)芯片外設(shè)計(jì)的支持:

          ARM7 (ARM7TDMI, ARM7TDMI-S, ARM720T) ARM9 (ARM9TDMI, ARM920T, ARM922T, ARM940T)
          ARM9E (ARM926EJ-S, ARM946E-S, ARM966E-S) ARM10E (ARM1020E, ARM1022E), ARM11
          SecurCore (SC100, SC110, SC200, SC210) CortexM3, Cortex-M1 XScale

          EWARM允許對(duì)用戶選擇對(duì)代碼大小或執(zhí)行速度實(shí)行多級(jí)優(yōu)化,同時(shí)還允許對(duì)項(xiàng)目中作不同的全局和局部?jī)?yōu)化配置,以達(dá)到速度和代碼尺寸的平衡。EWARM還支持對(duì)優(yōu)化級(jí)別的微調(diào),以及對(duì)單個(gè)函數(shù)的特定優(yōu)化配置。高級(jí)的全局優(yōu)化與針對(duì)特定芯片優(yōu)化相結(jié)合,可以生成最為緊湊、有效的代碼。

          EWARM中的C-SPY調(diào)試器免費(fèi)集成了μC/OS-II等的內(nèi)核識(shí)別(Kernel Awareness)插件,通過(guò)它可以在IAR調(diào)試器中顯示μC/OS-II內(nèi)部數(shù)據(jù)結(jié)構(gòu)窗口,從而了解每一個(gè)項(xiàng)目應(yīng)用中運(yùn)行任務(wù)的信息,每一個(gè)信號(hào)燈、互斥量、郵箱、隊(duì)列、事件標(biāo)志信息,以及等待上述內(nèi)核對(duì)象的所有任務(wù)列表信息。

          EWARM為絕大多數(shù)ARM芯片提供了Flash Loader。當(dāng)調(diào)試器啟動(dòng)時(shí),F(xiàn)lash Loader同時(shí)被調(diào)用,自動(dòng)將程序下載到Flash。Flash Loader完全集成在EWARM中,燒寫過(guò)程中無(wú)需特殊的Flash編程工具和軟件。

          IAR J-Link仿真器可以直接與EWARM集成開(kāi)發(fā)環(huán)境無(wú)縫連接,無(wú)需安裝任何驅(qū)動(dòng)程序, 操作方便、連接方便、簡(jiǎn)單易學(xué),是學(xué)習(xí)開(kāi)發(fā)ARM最實(shí)用的開(kāi)發(fā)工具。下載速度高達(dá)800K/S,支持ARM7/9/11/Cortex-M3,并支持JTAG、SWD兩種調(diào)試接口。

          IAR PowerPac RTOS和中間件家族

          IAR PowerPac 家族包括 RTOS 、文件系統(tǒng)、 USB 、 TCP/IP 等協(xié)議棧,支持所有 ARM 內(nèi)核。它與 IAR Embedded Workbench 無(wú)縫集成 , 并有大量的代碼例程和板級(jí)支持包 ( BSP) 。 其授權(quán)方式是 按座席收取 License 費(fèi), 沒(méi)有版稅 , 降低了最終用戶的風(fēng)險(xiǎn)。用戶可以自主選擇庫(kù)形式或源代碼形式的 IAR PowerPac。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();