1. 程式人生 > >選擇ARM7還是cortex-M3?(轉載經典實用)

選擇ARM7還是cortex-M3?(轉載經典實用)

要使用低成本的 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成為處理器核心領域的主導者。眾多的製造商(據ARM宣稱,多達16家)出售基於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) and 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協議棧或面向特定應用的軟體。

9.配套工具
    ARM7應用已經非常普及,它已經有非常多第三方的開發和除錯工具支援。在ARM的網站上有超過130家工具公司名稱列表。
    大多數廠商提供了基本的開發板,並提供下載程式的介面、除錯工具以及外部裝置的驅動,包括 LED燈的顯示狀態或者螢幕上的單行顯示。通常,開發套件包括編譯器、一些除錯軟體以及開發板。更為高階的套件包括第三方的整合開發環境(IDE),IDE中包含編譯器、連結器、偵錯程式、編輯器和其他工具,也可能包括模擬硬體,比如說JTAG模擬器。
    內電路模擬器( ICE)是最早的也是最有用的除錯工具形式之一,很多廠商都在ARM7上提供了這一介面。
    軟體開發工具範圍很廣:從建模到視覺化設計,到編譯器。現在很多的產品也用到實時作業系統( RTOS)和中介軟體,以加速開發程序、降低開發難度。
    另外,還有一個非常重要的因素,很多的開發人員對 ARM7的開發經驗非常豐富。
    雖然現在已經有新興的 Cortex-M3 工具,但顯然還是有一定的差距。不過, Cortex-M3的整合除錯效能使除錯變得簡單且有效,且無需用到內電路模擬器ICE。

10.決策
    那麼,你應該如何做出何種選擇呢?如果成本是最主要考慮因素,您應該選擇 Cortex-M3;如果在低成本的情況下尋求更好的效能和改進功耗,您最好考慮選用Cortex-M3;特別是如果你的應用是汽車和無線領域,最好也採用Cortex-M3,這正是Coretex-M3的主要定位市場。
    由於 Cortex-M3核心中的多種整合元素以及採用Thumb-2指令集,其開發和除錯比ARM7TDMI要簡單快捷。
    然而,由於重定義 ARM7TDMI的應用不是一件困難的事,特別是在使用了RTOS的情況下。保守者可能會沿用ARM7TDMI核心的晶片,並避免使用那些會使重定義變得複雜的功能。

11.IAR YellowSuite for ARM
    IAR YellowSuite for ARM是一整套支援ARM的開發工具整體解決方案,包括:visualSTATE狀態機建模工具、IAR Embedded Workbench整合開發環境、PowerPac RTOS和中介軟體、模擬器等。
不管選用 ARM7還是Cortex-M3,IAR的開發工具都能支援。

visualSTATE狀態機建模工具
    visualSTATE是一套精緻、易用的開發工具, 包含圖形設計器、測試工具包,程式碼生成器和文件生成器,用於設計、測試和實現基於狀態圖設計的嵌入式應用。
  • 基於統一建模語言 (UML)狀態機理論的圖形化模型設計;
  • 對設計模型進行規範性驗證,檢查系統的邏輯一致性,鑑別出系統設計漏洞或錯誤;
  • 設計過程的早期階段,甚至在硬體設計尚未完成之前,就可以使用測試工具來確保應用能按照預想方式執行;
  • 自動程式碼生成功能可以生成極為緊湊的 C/C++程式碼,100%與設計保持一致;
  • 自動文件生成功能提供了詳盡的資訊;
  • 與 IAR Embedded Workbench 無縫整合,提供多種微控制器和評估板的現成示例程式碼;
  • 通過 CSPYLink或RealLink對目標器件進行綜合的圖形化狀態機除錯;
  • 支援多種硬體除錯介面,例如 J-Link、通用JTAG模擬器、NEXUS模擬器等
IAR Embedded Workbench for ARM整合開發環境
    IAR Embedded Workbench for ARM整合開發環境(簡稱EWARM) 是一套支援 ARM所有處理器的整合開發環境,包含專案管理器、編輯器、C/C++ 編譯器 、彙編器、聯結器和偵錯程式。
    IAR Embedded Workbench for ARM整合開發環境支援所有的ARM核心,並提供大多數晶片外設計的支援:
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允許對使用者選擇對程式碼大小或執行速度實行多級優化,同時還允許對專案中作不同的全域性和區域性優化配置,以達到速度和程式碼尺寸的平衡。EWARM還支援對優化級別的微調,以及對單個函式的特定優化配置。高階的全域性優化與針對特定晶片優化相結合,可以生成最為緊湊、有效的程式碼。
    EWARM中的C-SPY偵錯程式免費集成了μC/OS-II等的核心識別(Kernel Awareness)外掛,通過它可以在IAR偵錯程式中顯示μC/OS-II內部資料結構視窗,從而瞭解每一個專案應用中執行任務的資訊,每一個訊號燈、互斥量、郵箱、佇列、事件標誌資訊,以及等待上述核心物件的所有任務列表資訊。
    EWARM為絕大多數ARM晶片提供了Flash Loader。當偵錯程式啟動時,Flash Loader同時被呼叫,自動將程式下載到Flash。Flash Loader完全整合在EWARM中,燒寫過程中無需特殊的Flash程式設計工具和軟體。
    IAR J-Link模擬器可以直接與EWARM整合開發環境無縫連線,無需安裝任何驅動程式, 操作方便、連線方便、簡單易學,是學習開發ARM最實用的開發工具。下載速度高達800K/S,支援ARM7/9/11/Cortex-M3,並支援JTAG、SWD兩種除錯介面。

IAR PowerPac RTOS和中介軟體家族
    IAR PowerPac 家族包括 RTOS 、檔案系統、 USB 、 TCP/IP 等協議棧,支援所有 ARM 核心。它與 IAR Embedded Workbench 無縫整合 , 並有大量的程式碼例程和板級支援包 ( BSP) 。 其授權方式是 按座席收取 License 費, 沒有版稅 , 降低了終端使用者的風險。使用者可以自主選擇庫形式或原始碼形式的 IAR PowerPac。

相關推薦

選擇ARM7還是cortexM3轉載經典實用

要使用低成本的 32位處理器,開發人員面臨兩種選擇,基於Cortex-M3核心或者ARM7TDMI核心的處理器。如何做出選擇?選擇標準又是什麼?本文主要介紹了ARM Cortex-M3核心微控制器區別於ARM7的一些特點,幫助您快速選擇。1.ARM實現方法    ARM Co

如何選擇一款合適的密碼管理器轉載自ImportNew

conf form 擁有 今天 不能 到你 html 轉載 審計 本文由 ImportNew - 範琦琦 翻譯自 frankel。歡迎加入翻譯小組。轉載請見文末要求。 如何擁有更安全的密碼管理器已經困擾了我多年。起初,我唯一的擔心是不同電腦之間共享書簽和歷史記錄(那時手機還

極客編程日歷2018桌面壁紙轉載及完善

base tps 官方文檔 site 軟件 報錯 編寫 left .exe 轉載聲明 本文轉載自簡書文章【極客編程日歷2018桌面壁紙】,並進行了補充。 圖靈社區出版了一本極客編程日歷“Happy Hacking 2018” ,實體已經售罄,但是提供了PDF電子版下載

Java死鎖範例以及如何分析死鎖轉載自ImportNew

ofo index 對象 str wait 就會 moni ask 進入 本文由 ImportNew - 範琦琦 翻譯自 journaldev。歡迎加入翻譯小組。轉載請見文末要求。 死鎖是兩個甚至多個線程被永久阻塞時的一種運行局面,這種局面的生成伴隨著至少兩個線程和兩個或者

什麽是內存泄漏轉載自ImportNew

ext .com ole map feedback widget 以及 引用 lib 本文由 ImportNew - 範琦琦 翻譯自 Programcreek。歡迎加入翻譯小組。轉載請見文末要求。 Java最顯著的優勢之一就是它的內存管理機制。你只需簡單創建對象,然後Jav

為什麽在密碼問題上char[]優先於String?轉載自ImportNew

參考 java ecc 使用 .html lang ash net 收集 本文由 ImportNew - 範琦琦 翻譯自 stackoverflow。歡迎加入翻譯小組。轉載請見文末要求。 問題 在Swing中,密碼域(JPasswordField)用getPassword(

如何估算內存消耗轉載自ImportNew

nal 邏輯 cap 內存 我不 例如 lar 現在 zone 本文由 ImportNew - 範琦琦 翻譯自 dzone。歡迎加入翻譯小組。轉載請見文末要求。 這個故事至少可以追溯到十年前,當我第一次接觸到 PHB,遇到了這樣一個問題——“為了產品部署我們應該購買多大的服

Linux安裝mysqlRedhat6.5+MySQL5.7轉載+原創補漏

controls 新版 file grep gin leg 下載 set CP 這裏我創建了一目錄software用於存放我們待會要下載的mysql包,先去到該目錄 命令:cd /software命令:wget http://mirrors.sohu.com/mysql/M

索引原理和SQL優化轉載待整理

索引的本質 MySQL官方對索引的定義為:索引(Index)是幫助MySQL高效獲取資料的資料結構。提取句子主幹,就可以得到索引的本質:索引是資料結構。 我們知道,資料庫查詢是資料庫的最主要功能之一。我們都希望查詢資料的速度能儘可能的快,因此資料庫系統的設計者會從查詢演算法的角度進行優化。最

移動端判斷在微信瀏覽器中是否可以開啟該頁面轉載0記錄

在實際的專案中,有時候需要判斷當前頁面是否在微信瀏覽器中開啟 ,以下提示了三種方法,每一種都可以, 方法一,   var ua = navigator.userAgent.toLowerCase(); var isWeixin = ua.indexOf('micromes

C# 選擇檔案、選擇資料夾、開啟檔案或者資料夾

1、選擇檔案用OpenDialog OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;//該值確定是否可以選擇多個檔案 dialog.Title = "請選擇資料夾"; dialog.Filter = "

C# 選擇檔案、選擇資料夾、開啟檔案或者資料夾 路徑中獲取檔案全路徑、目錄、副檔名、檔名稱 追加、拷貝、刪除、移動檔案、建立目錄 修改檔名、資料夾名!!

https://www.cnblogs.com/zhlziliaoku/p/5241097.html 1、選擇檔案用OpenDialog OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;/

HDU 1052 Tian Ji -- The Horse Racing 貪心轉載有修改

Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11

流形學習概述轉載自CSDN

流形學習 (manifold learning) zz from prfans ...............................  dodo:流形學習 (manifold learning) dodo 流形學習是個很廣泛的概念。這裡我主要談

SVM和感知機的區別轉載+自己筆記

感知機和SVM的區別: 1、相同點 都是屬於監督學習的一種分類器(決策函式)。 2、不同點 感知機追求最大程度正確劃分,最小化錯誤,效果類似紫線,很容易造成過擬合。支援向量機追求大致正確分類的同時,一定程度上避免過擬合,效果類似下圖中的黑線。 感知機使用的學習策

轉載於Zebe CorelDRAW-VBA

---------------------  作者:Zebe  來源:CSDN  轉載原文連結:https://blog.csdn.net/zebe1989/article/details/79029015  目的 本文介紹CorelDRAW建立文件後對文件進行屬性設定。

LR的引數化轉載蟲師

距離上次使用loadrunner 已經有一年多的時間了。初做測試時在專案中用過,後面專案中用不到,自己把重點放在了工具之外的東西上,認為效能測試不僅僅是會用工具,最近又想有一把好的利器畢竟可以幫助自己更好的完成效能測試工作。這算是一個認知的過程吧!   在次安裝開啟load

如何選擇適合你的興趣愛好二十四,京劇

圍城網的搖搖今天給大家帶來了“如何選擇適合你的興趣愛好”系列專輯的第二十四講——京劇。京劇曾稱平劇,中國五大戲曲劇種之一,已有200年曆史。京劇被稱為東方歌劇,它是地地道道的中國國粹,因形成於北京而得名。腔調以西皮、二黃為主,用胡琴和鑼鼓等伴奏,被視為中國戲曲三鼎甲榜首。京劇

拉鉤、網易、淘寶移動端rem佈局分析轉載非原創

從網易與淘寶的font-size思考前端設計稿與工作流 本文結合自己對網易與淘寶移動端首頁html元素上的font-size這個屬性的思考與學習,討論html5設計稿尺寸以及前端與設計之間協作流程的問題,內容較多,但對你的技術和工作一定有價值,歡迎閱讀和點評:)。 這

淘寶無限適配手機端rem佈局詳解轉載非原創

從網易與淘寶的font-size思考前端設計稿與工作流 本文結合自己對網易與淘寶移動端首頁html元素上的font-size這個屬性的思考與學習,討論html5設計稿尺寸以及前端與設計之間協作流程的問題,內容較多,但對你的技術和工作一定有價值,歡迎閱讀和點評:)。 這是淘