《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 解決方案 > ARM Cortex-M處理器入門

ARM Cortex-M處理器入門

ARM Cortex-M 處理器家族介紹和比較
2017-04-19
作者:Joseph Yiu
關(guān)鍵詞: ARM Cortex-M 處理器 指令集

概要

ARM Cortex-M處理器家族現(xiàn)在有8款處理器成員。在本文中,我們會比較Cortex-M系列處理器之間的產(chǎn)品特性,重點講述如何根據(jù)產(chǎn)品應(yīng)用選擇正確的Cortex-M處理器。本文中會詳細的對照Cortex-M 系列處理器的指令集和高級中斷處理能力,以及 SoC系統(tǒng)級特性,調(diào)試和追蹤功能和性能的比較。

 1 簡介

       今天, ARM Cortex-M 處理器家族有8款處理器成員。除此之外,ARM的產(chǎn)品系列還有很多其他的處理器成員。對很多初學(xué)者,甚至某些芯片設(shè)計經(jīng)驗豐富但是不熟悉ARM系列處理器的設(shè)計者來說,也是很容易混淆這些產(chǎn)品的。不同的ARM 處理器有不同的指令集,系統(tǒng)功能和性能。本文會深入展現(xiàn)Cortex-M系列處理器之間的關(guān)鍵區(qū)別,以及它們和ARM其他系列處理器的不同。

1.1 ARM處理器家族

多年來, ARM已經(jīng)研發(fā)了相當多的不同的處理器產(chǎn)品。 如下圖中(圖1): ARM 處理器產(chǎn)品分為經(jīng)典ARM處理器系列和最新的Cortex處理器系列。并且根據(jù)應(yīng)用范圍的不同,ARM處理器可以分類成3個系列。

Application Processors(應(yīng)用處理器)–面向移動計算,智能手機,服務(wù)器等市場的的高端處理器。這類處理器運行在很高的時鐘頻率(超過1GHz),支持像Linux,Android,MS Windows和移動操作系統(tǒng)等完整操作系統(tǒng)需要的內(nèi)存管理單元(MMU)。 如果規(guī)劃開發(fā)的產(chǎn)品需要運行上述其中的一個操作系統(tǒng),你需要選擇ARM 應(yīng)用處理器.

Real-time Processors (實時處理器)–面向?qū)崟r應(yīng)用的高性能處理器系列,例如硬盤控制器,汽車傳動系統(tǒng)和無線通訊的基帶控制。多數(shù)實時處理器不支持MMU,不過通常具有MPU、Cache和其他針對工業(yè)應(yīng)用設(shè)計的存儲器功能。實時處理器運行在比較高的時鐘頻率(例如200MHz 到 >1GHz ),響應(yīng)延遲非常低。雖然實時處理器不能運行完整版本的Linux和Windows操作系統(tǒng), 但是支持大量的實時操作系統(tǒng)(RTOS)。

Microcontroller Processors(微控制器處理器)–微控制器處理器通常設(shè)計成面積很小和能效比很高。通常這些處理器的流水線很短,最高時鐘頻率很低(雖然市場上有此類的處理器可以運行在200Mhz之上)。 并且,新的Cortex-M處理器家族設(shè)計的非常容易使用。因此,ARM 微控制器處理器在單片機和深度嵌入式系統(tǒng)市場非常成功和受歡迎。

圖片1_conew1.png

表1總結(jié)了三個處理器系列的主要特征。

BUZOJU4O)EMYR])R}Y]95]V.png

表 1: 處理器特性總結(jié)

1.2 Cortex-M 處理器家族

       Cortex-M處理器家族更多的集中在低性能端,但是這些處理器相比于許多微控制器使用的傳統(tǒng)處理器性能仍然很強大。例如,Cortex-M4和Cortex-M7處理器應(yīng)用在許多高性能的微控制器產(chǎn)品中,最大的時鐘頻率可以達到400Mhz。

       當然,性能不是選擇處理器的唯一指標。在許多應(yīng)用中,低功耗和成本是關(guān)鍵的選擇指標。因此,Cortex-M處理器家族包含各種產(chǎn)品來滿足不同的需求:

K15~SZZU%B)]0$NBZ0AJQRL.png

不同于老的經(jīng)典ARM處理器(例如,ARM7TDMI, ARM9), Cortex-M處理器有一個非常不同的架構(gòu)。例如:

- 僅支持ARM Thumb?指令,已擴展到同時支持16位和32位指令Thumb-2版本

- 內(nèi)置的嵌套向量中斷控制負責中斷處理,自動處理中斷優(yōu)先級,中斷屏蔽,中斷嵌套和系統(tǒng)異常處理。

- 中斷處理函數(shù)可以使用標準的C語言編程,嵌套中斷處理機制避免了使用軟件判斷哪一個中斷需要響應(yīng)處理。同時,中斷響應(yīng)速度是確定性的,低延遲的

- 向量表從跳轉(zhuǎn)指令變?yōu)橹袛嗪拖到y(tǒng)異常處理函數(shù)的起始地址。

- 寄存器組和某些編程模式也做了改變。

這些變化意味著許多為經(jīng)典ARM處理器編寫的匯編代碼需要修改,老的項目需要修改和重新編譯才能遷移到Cortex-M的產(chǎn)品上。軟件移植具體的細節(jié)記錄在ARM文檔:

ARM Cortex-M3 Processor Software Development for ARM7TDMI Processor Programmers

http://www.arm.com/files/pdf/Cortex-M3_programming_for_ARM7_developers.pdf

1.3Cortex-M系列處理器的共同特性

Cortex-M0, M0+, M3, M4 and M7之間有很多的相似之處,例如:
        -基本編程模型  (章節(jié) 3.1)
       -嵌套向量中斷控制器(NVIC)的中斷響應(yīng)管理
       -架構(gòu)設(shè)計的休眠模式:睡眠模式和深度睡眠模式 (章節(jié) 4.1)
       -操作系統(tǒng)支持特性 (章節(jié) 3.3)
       -調(diào)試功能 (章節(jié) 6)
       -易用性
例如,嵌套向量中斷控制器是內(nèi)置的中斷控制器
圖片2.png

圖 2: Cortex-M處理器的嵌套向量中斷控制器

支持許多外圍設(shè)備的中斷輸入,一個不可屏蔽的中斷請求,一個來自內(nèi)置時鐘(SysTick)的中斷請求(見章節(jié) 3.3)和一定數(shù)量的系統(tǒng)異常請求。NVIC處理這些中斷和異常的優(yōu)先級和屏蔽管理。
       NVIC以及異常處理模型的更多的內(nèi)容在章節(jié)3.2描述。其他Cortex-M處理器間的異同點會在本文的其余部分講解。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。