ARM7與Cortex-M3的區(qū)別
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
中斷嵌套是可以是實(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
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ū)域。可靠性,特別是實(shí)時(shí)性因此得到重大改進(jìn)。
7.調(diào)試對(duì)Cortex-M3處理器系統(tǒng)進(jìn)行調(diào)試和追蹤是通過(guò)調(diào)試訪問(wèn)端口(Debug
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
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ù)雜的功能。
IAR
Cortex-M3和ARM7的比較
比較項(xiàng)目 | ARM7 | Cortex-M3 |
架構(gòu) | ARMv4T(馮諾依曼) 指令和數(shù)據(jù)總線共用,會(huì)出現(xiàn)瓶頸 | ARMv7-M(哈佛) 指令和數(shù)據(jù)總線分開(kāi),無(wú)瓶頸 |
指令集 | 32位ARM指令+16位Thumb指令 兩套指令之間需要進(jìn)行狀態(tài)切換 | Thumb/Thumb-2指令集 指令可直接混寫,無(wú)需狀態(tài)切換 |
流水線 | 3級(jí)流水線 | 3級(jí)流水線+分支預(yù)測(cè) |
性能 | 0.95DMIPS/MHz(ARM模式) | 1.25DMIPS/MHz |
功耗 | 0.28mW/MHz | 0.19mW/MHz |
低功耗模式 | 無(wú) | 內(nèi)置睡眠模式 |
面積 | 0.62mm2(僅內(nèi)核) | 0.86mm2(內(nèi)核+外設(shè)) |
中斷 | 普通中斷IRQ和快速中斷FIQ太少,大量外設(shè)不得不復(fù)用中斷 | 不可屏蔽中斷NMI+1-240個(gè)物理中斷 每個(gè)外設(shè)都可以獨(dú)占一個(gè)中斷,效率高 |
中斷延遲 | 24-42個(gè)時(shí)鐘周期,緩慢 | 12個(gè)時(shí)鐘周期,最快只需6個(gè) |
中斷壓棧 | 軟件手工壓棧,代碼長(zhǎng)且效率低 | 硬件自動(dòng)壓棧,無(wú)需代碼且效率高 |
存儲(chǔ)器保護(hù) | 無(wú) | 8段存儲(chǔ)器保護(hù)單元(MPU) |
內(nèi)核寄存器 | 寄存器分為多組、結(jié)構(gòu)復(fù)雜、占核面積多 | 寄存器不分組(SP除外),結(jié)構(gòu)簡(jiǎn)單 |
工作模式 | 7種工作模式,比較復(fù)雜 | 只有線程模式和處理模式兩種,簡(jiǎn)單 |
乘除法指令 | 多周期乘法指令,無(wú)除法指令 | 單周期乘法指令,2-12周期除法指令 |
位操作 | 無(wú) | 先進(jìn)的Bit-band位操作技術(shù),可直接訪問(wèn)外設(shè)寄存器的某個(gè)值 |
系統(tǒng)節(jié)拍定時(shí) | 無(wú) | 內(nèi)置系統(tǒng)節(jié)拍定時(shí)器,有利于操作系統(tǒng)移植 |
評(píng)論