處理器類型
-
Cortex-M為32位的RICS(精簡指令集)處理器:
- 32位寄存器
- 32位內(nèi)部數(shù)據(jù)通路
- 32位總線接口
Cortex-M3和M4處理器都具有三級流水線(取指擂涛、譯碼、執(zhí)行)結(jié)構(gòu)聊记,都是基于哈佛總線結(jié)構(gòu)撒妈,取指和數(shù)據(jù)訪問可以同時執(zhí)行。
Cortex-M處理器系統(tǒng)使用32位尋址排监,即4G尋址空間狰右,存儲器映射是一致的。存儲器空間包括程序代碼舆床、數(shù)據(jù)棋蚌、外設(shè)以及支持調(diào)試的組件。
-
基于加載-存儲架構(gòu)挨队,數(shù)據(jù)需要從存儲器中加載和處理后谷暮,使用多個單獨的指令寫回存儲器。例如盛垦,當(dāng)需要增加SRAM中存儲的數(shù)據(jù)值:
- 使用一條指令從SRAM中讀數(shù)據(jù)到處理器中的寄存器中
- 第二條指令增加寄存器中的值
- 最后第三條指令將數(shù)據(jù)值寫回到存儲器
處理器架構(gòu)
-
處理器只是微控制器芯片中的一部分湿弦,存儲器系統(tǒng)、外設(shè)和各種接口特性由微控制器供應(yīng)商開發(fā)腾夯。對于ARM處理器颊埃,架構(gòu)一般指兩個方面:
- 架構(gòu)。指令集架構(gòu)(ISA)蝶俱、編程模型以及調(diào)試方法
- 微架構(gòu)班利。接口信號、指令執(zhí)行時序以及流水線實現(xiàn)跷乐。
-
Cortex-M3和M4都基于ARMv7-M架構(gòu)肥败。M0、M0+和M1基于ARMv6-M愕提。 一個指令集架構(gòu)可以包含多個微架構(gòu)設(shè)計馒稍。Cortex-M系列主要是用來取代經(jīng)典處理器ARM7系列(比如基于ARMv4架構(gòu)的ARM7TDMI),Cortex-M比ARM7的架構(gòu)高了3代 浅侨。
發(fā)布順序:
ARM-v6纽谒。
ARM-v7-M。( Cortex-M3:2004年10月 )如输、( Cortex-M4:2010年02月 )
ARMv6-M鼓黔。( Cortex-M1:2007年03月 )央勒、( Cortex-M0:2009年02月 )、( Cortex-M0+:2012年03月 )
-
ARMv7-M架構(gòu)參考手冊主要包含
- 指令集細(xì)節(jié)
- 編程模型
- 異常模型
- 調(diào)試架構(gòu)
指令集
-
Cortex-M處理器使用的指令集名為Thumb(其中包含了16位Thumb指令和更新的32位Thumb指令)澳化,M3和M4處理器用到了Thumb-2技術(shù)崔步,允許16位和32位指令的混合使用。
隨著Thumb-2技術(shù)的引入缎谷,Cortex-M處理器更笨不支持ARM指令井濒,無需ARM指令集和Thumb指令集的狀態(tài)切換。
模塊框圖
- 處理器框圖
存儲系統(tǒng)
- M3和M4本身并不含有存儲器(沒有程序存儲器列林、SRAM或緩存)瑞你,但是具有相同的片上總線接口。一般來說希痴,微控制器供應(yīng)商會將一下部件添加到存儲器系統(tǒng)中:
- 程序存儲器者甲,一般來是Flash
- 數(shù)據(jù)存儲器,一般是SRAM
- 外設(shè)砌创。
- Cortex-M處理器總線接口為32位寬虏缸,基于高級微控制器總線架構(gòu)(AMBA)標(biāo)準(zhǔn),AMBA包含多個總線協(xié)議纺铭。
- M3和M4主要使用的總線接口協(xié)議為AHB Lite(高級高性能總線)寇钉,它用于程序存儲器和系統(tǒng)總線接口。AHB Lite協(xié)議為流水線結(jié)構(gòu)的總線協(xié)議舶赔。另外扫倡,APB(高級外設(shè)總線)接口為處理器使用的另外一種總線協(xié)議,通常用于基于ARM的微控制器的總線系統(tǒng)竟纳。APB在M3和M4中內(nèi)部用于調(diào)試支持撵溃。
中斷和異常支持
Cortex-M3和M4內(nèi)部集成了嵌套向量中斷控制器(Nested Vector Interrupt Unit,NVIC)锥累,該中毒那控制器能夠處理多達(dá)240個中斷源缘挑。一次中斷的延遲僅有12個時鐘周期。NVIC內(nèi)部包含了一個24位的可自動重載標(biāo)準(zhǔn)倒計時時鐘定時器——系統(tǒng)時鐘定時器(Systick Timer)桶略,用來提供定期中斷信號语淘,其典型的應(yīng)用為RTOS(Real-Time Operating System)提供系統(tǒng)時鐘節(jié)拍。
緊挨著NVIC的是喚醒中斷控制器(Wakeup Interrupt Controller际歼,WIC)惶翻,當(dāng)處理器工作在低功耗時它保持在激活狀態(tài),通過WIC鹅心,外部中斷信號可以把處理器喚醒吕粗。
CoreSight調(diào)試架構(gòu)
較早期的ARM7/9處理器是使用聯(lián)合測試工作組(Joint Test Action Group, JTAG)調(diào)試接口進(jìn)行調(diào)試的旭愧,其存在兩個嚴(yán)重問題:第一個是可設(shè)置的程序斷店數(shù)量有限颅筋,通常單步調(diào)試只能設(shè)置兩個斷點宙暇;第二個是當(dāng)CPU在運行時無法查看CPU、內(nèi)存以及外圍設(shè)備存儲器的狀態(tài)和內(nèi)容议泵。
-
CoreSight允許放置8個硬件斷點占贫,并提供3個獨立的追蹤單元進(jìn)行先進(jìn)的調(diào)試。
數(shù)據(jù)觀測點與追蹤(Date Watchpoint and Trace肢簿, DWT)
儀器追蹤宏單元(Instrumentation Trace Macrocell靶剑,ITM)
嵌入式追蹤宏單元(Embedded Trace Macrocell蜻拨,ETM)
參考文獻(xiàn):
- ARM Cortex-M3與Cortex-M4權(quán)威指南
- Cortex-M處理器設(shè)計指南