選擇ARM處理器,ARM7還是Cortex M3

2021-04-24 19:45:45 字數 4092 閱讀 3582

選擇arm處理器,arm7還是cortex-m3

2009-02-13 19:02

要使用低成本的32位處理器,開發人員面臨兩種選擇,基於cortex-m3核心或者arm7tdmi核心的處理器。如何做出選擇?選擇標準又是什麼?本文主要介紹了arm cortex-m3核心微控制器區別於arm7的一些特點,幫助您快速選擇。

1.arm實現方法arm cortex-m3是一種基於arm7v架構的最新arm嵌入式核心,它採用哈佛結構,使用分離的指令和資料匯流排(馮諾伊曼結構下,資料和指令共用一條匯流排)。從本質上來說,哈佛結構在物理上更為複雜,但是處理速度明顯加快。根據摩爾定理,複雜性並不是一件非常重要的事,而吞吐量的增加卻極具價值。

arm公司對cortex-m3的定位是:向專業嵌入式市場提供低成本、低功耗的晶元。在成本和功耗方面,cortex-m3具有相當好的效能,arm公司認為它特別適用於汽車和無線通訊領域。和所有的arm核心一樣,arm公司將內該設計授權給各個製造商來開發具體的晶元。迄今為止,已經有多家晶元製造商開始生產基於cortex-m3核心的微控制器。

arm7tdmi(包括arm7tdmis)系列的arm核心也是面向同一類市場的。這類核心已經存在了十多年之久,並推動了arm成為處理器核心領域的主導者。眾多的製造商**基於arm7系列的處理器以及其他配套的系統軟體、開發和除錯工具。在許多方面,arm7tdmi都可以稱得上是嵌入式領域的實幹家。2.兩者差異除了使用哈佛結構,cortex-m3還具有其它顯著的優點:具有更小的基礎核心,**更低,速度更快。與核心整合在一起的是一些系統外設,如中斷控制器、匯流排矩陣、除錯功能模組,而這些外設通常都是由晶元製造商增加的。cortex-m3還整合了睡眠模式和可選的完整的八區域儲存器保護單元。它採用thumb-2指令集,最大限度降低了彙編器使用率。3.指令集arm7可以使用arm和thumb兩種指令集,而cortex-m3只支援最新的thumb-2指令集。這樣設計的優勢在於:

●免去thumb和arm**的互相切換,對於早期的處理器來說,這種狀態切換會降低效能。

●thumb-2指令集的設計是專門面向c語言的,且包括if/then結構(**接下來的四條語句的條件執行)、硬體除法以及本地位域操作。

●thumb-2指令集允許使用者在c**層面維護和修改應用程式,c**部分非常易於重用。

●thumb-2指令集也包含了呼叫彙編**的功能:luminary公司認為沒有必要使用任何組合語言。

●綜合以上這些優勢,新產品的開發將更易於實現,上市時間也大為縮短。4.中斷cortex-m3的另乙個創新在於巢狀向量中斷控制器nvic(nested vector interrupt controller)。相對於arm7使用的外部中斷控制器,cortex-m3核心中整合了中斷控制器,晶元製造廠商可以對其進行配置,提供基本的32個物理中斷,具有8層優先順序,最高可達到240個物理中斷和256個中斷優先順序。此類設計是確定的且具有低延遲性,特別適用於汽車應用。

nvic使用的是基於堆疊的異常模型。在處理中斷時,將程式計數器,程式狀態暫存器,鏈結暫存器和通用暫存器壓入堆疊,中斷處理完成後,在恢復這些暫存器。堆疊處理是由硬體完成的,無需用組合語言建立中斷服務程式的堆疊操作。

中斷巢狀是可以是實現的。中斷可以改為使用比之前服務程式更高的優先順序,而且可以在執行時改變優先順序狀態。使用末尾連鎖(tail-chaining)連續中斷技術只需消耗三個時鐘週期,相比於32個時鐘週期的連續壓、出堆疊,大大降低了延遲,提高了效能。

如果在更高優先順序的中斷到來之前,nvic已經壓堆疊了,那就只需要獲取乙個新的向量位址,就可以為更高優先順序的中斷服務了。同樣的,nvic不會用出堆疊的操作來服務新的中斷。這種做法是完全確定的且具有低延遲性。5.睡眠cortex-m3的電源管理方案通過nvic支援sleep now,sleep on exit,(退出最低優先順序的isr)和sleepdeep modes這三種睡眠模式。

為了產生定期的中斷時間間隔,nvic還整合了系統節拍計時器,這個計時器也可以作為rtos和排程任務的心跳。這種做法與先前的arm架構的不同之處就在於不需要外部時鐘。6.儲存器保護單元儲存器保護單元是乙個可選組建。選用了這個選項,記憶體區域就可以與應用程式特定程序按照其他程序所定義的規則聯絡在一起。例如,一些記憶體可以完全被其他程序阻止,而另外一部分記憶體能對某些程序表現為唯讀。還可以禁止程序進入儲存器區域。可靠性,特別是實時性因此得到重大改進。7.除錯對cortex-m3處理器系統進行除錯和追蹤是通過除錯訪問埠(debug access port)來實現的。除錯訪問埠可以是乙個2針的序列除錯埠(serial wire debug port)或者序列jtag除錯埠(serial wire jtag debug port)。通過flash片、斷點單元、資料觀察點、跟蹤單元,以及可選的嵌入式跟蹤巨集單元(embedded trace macrocell)和指令跟蹤巨集單元(instrumentation trace macrocell)等一系列功能相結合,在核心部分就可以採用多種型別的除錯方法及監控函式。例如,可以設定斷點、觀察點、定義預設條件或執行除錯請求、監控停止操作或繼續操作。所有的這些功能在arm架構的產品中已經實現,只是cortex-m3將這些功能整合起來,方便開發人員使用。8.應用範圍雖然arm7核心並沒有像cortex系列那樣整合很多外設,但是大量的基於arm7的器件,從通用mcu,到面向應用的mcu、soc甚至是actel公司基於arm7核心的fpga,都擁有更為眾多的外圍裝置。大約有150種mcu是基於arm7核心的(根據不同的統計方法,這個數字可能會更高)。

你會發現arm7都可以實現幾乎所有的嵌入式應用,或採用定製的方式來滿足需求。基於標準核心,晶元廠商可以加入不同型別、大小的儲存器和其他外圍裝置,比如序列介面、匯流排控制器、儲存器控制器和圖形單元,並針對工業、汽車或者其他要求苛刻的領域,使用不同的晶元封裝,提供不同溫度範圍的晶元版本。晶元廠商也可能繫結特定的軟體,比如tcp/ip協議棧或面向特定應用的軟體。

例如,stmicroelectronics公司的str7產品線有三個主要系列共45個成員,具有不同的封裝和儲存器。每乙個系列都針對特定的應用領域,具有不同外設集合。比如str730家族是專為工業和汽車應用設計的,因此具有可擴充套件的溫度範圍,包括多個i/o口和3個can匯流排介面。str710則是面向於消費市場以及高階的工業應用,它具有多個通訊介面,比如usb、can、iso7816以及4個uart,還有大容量的儲存器和乙個外部儲存器介面。

晶元廠商也可以選擇利於開發人員開發產品的措施,比如採用arm的嵌入式跟蹤巨集單元etm(embedded trace macrocell),並提供開發和除錯工具。

luminary、stmicroelectronics這兩家公司已經有基於cortex-m3的晶元,其他公司如nxp、atmel也宣布生產該類產品。9.配套工具arm7應用已經非常普及,它已經有非常多第三方的開發和除錯工具支援。在arm的**上有超過130家工具公司名稱列表。

軟體開發工具範圍很廣:從建模到視覺化設計,到編譯器。現在很多的產品也用到實時作業系統(rtos)和中介軟體,以加速開發程序、降低開發難度。另外,還有乙個非常重要的因素,很多的開發人員對arm7的開發經驗非常豐富。

雖然現在已經有新興的cortex-m3工具,但顯然還是有一定的差距。不過,cortex-m3的整合除錯效能使除錯變得簡單且有效,且無需用到內電路**器ice。10.決策那麼,你應該如何做出何種選擇呢?如果成本是最主要考慮因素,您應該選擇cortex-m3;如果在低成本的情況下尋求更好的效能和改進功耗,您最好考慮選用cortex-m3;特別是如果你的應用是汽車和無線領域,最好也採用cortex-m3,這正是coretex-m3的主要定位市場。

由於cortex-m3核心中的多種整合元素以及採用thumb-2指令集,其開發和除錯比arm7tdmi要簡單快捷。然而,由於重定義arm7tdmi的應用不是一件困難的事,特別是在使用了rtos的情況下。保守者可能會沿用arm7tdmi核心的晶元,並避免使用那些會使重定義變得複雜的功能。

iar systems公司是最早做c編譯器的廠商,提供一系列arm開發工具,包括iar visualstate 建模工具、iar embedded workbench for arm整合開發環境、iar powerpac實時作業系統和中介軟體、j-link硬體**工具以及開發套件。不管使用者的選擇是arm7還是cortex-m3,iar都會讓開發變得簡單而有趣。

ARM處理器模式

cpsr暫存器 arm v4的cpsr暫存器 和儲存它的spsr暫存器 中的位分配如下圖所示。處理器模式決定了哪些暫存器是活動的以及對cpsr訪問權。處理器模式要麼是特權模式,要麼是非特權模式。特權模式允許對cpsr的完全讀 寫訪問 與些相反,非特權模式只允許對cpsr的控制域進行讀訪問,但允許對條...

ARM處理器型號

arm公司擁有眾多cpu指令集,cpu架構,cpu系列.本文旨在介紹arm公司的cpu產品線.下圖展示了arm公司cpu的產品線 首先有必要了解一下arm公司的命名規則 arm的命名規則,大致分成三類 1.基於arm architecture版本的 指令集架構 命名規則 2.基於arm archit...

嵌入式定製開發選ARM7還是ARM9

arm公司設計了許多處理器,它們可以根據使用的不同核心劃分到各個系列中。系列劃分是基於arm7 arm9 arm10 arm11和cortex核心。字尾數字7 9 10和11表示不同的核心設計。數字的公升序說明效能和複雜度的提高。嵌入式定製 arm7系列處理器是英國arm公司設計的主流嵌入式處理器a...