ARM學(xué)習(xí)資料.Cortex-M3處理器體系結(jié)構(gòu)_第1頁(yè)
ARM學(xué)習(xí)資料.Cortex-M3處理器體系結(jié)構(gòu)_第2頁(yè)
ARM學(xué)習(xí)資料.Cortex-M3處理器體系結(jié)構(gòu)_第3頁(yè)
ARM學(xué)習(xí)資料.Cortex-M3處理器體系結(jié)構(gòu)_第4頁(yè)
ARM學(xué)習(xí)資料.Cortex-M3處理器體系結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Copyright Cortex-M3Cortex-M3處理器體系結(jié)構(gòu)處理器體系結(jié)構(gòu)Copyright 版本管理 修改記錄 審核記錄版本號(hào)版本號(hào).作者作者描述描述修改日期修改日期版本號(hào)版本號(hào).職務(wù)職務(wù)簽名簽名修改日期修改日期V01工程師張立為20120706Copyright 概覽Cortex-M3處理器內(nèi)核Cortex-M3處理器指令集Thumb-2Cortex-M3嵌套向量中斷控制器NVICCortex-M3存儲(chǔ)器管理存儲(chǔ)器保護(hù)單元MPU總線接口調(diào)試跟蹤接口開(kāi)發(fā)軟件和RTOSCopyright Cortex-M3定位從右邊的圖可以分析出Cortex-M3處理器架構(gòu):ARMv7-M指令集:T

2、humb-2ARM 架構(gòu)支持各種性能點(diǎn)上的實(shí)現(xiàn)。在許多細(xì)分市場(chǎng)中它都占有主要架構(gòu)的地位。而其中Cortex-M 處理器,通過(guò)配置文件,可快速進(jìn)行中斷處理,適用于需要高度確定的行為和最少門(mén)數(shù)的成本、功耗敏感型設(shè)備。而Cortex-M3處理器作為其中的佼佼者,就不得不引起我們的關(guān)注。Copyright Cortex-M3現(xiàn)狀 NXP:LPC17000 TI-Luminary Micro:LM3S ST:STM32 Atmel:SAM3U 此四大知名廠商采用Cortex-M3處理器的設(shè)計(jì)出來(lái)的芯片,主要在于片上存儲(chǔ)器容量、集成外設(shè)、功能模塊的區(qū)別。Copyright CortexM3內(nèi)核方框圖Cor

3、tex-M3處理器主要包括:1. 處理器內(nèi)核2. 與處理器內(nèi)核緊密結(jié)合的嵌套向量中斷控制器(NVIC)以實(shí)現(xiàn)低延遲的中斷處理3. 存儲(chǔ)器保護(hù)單元(MPU),可選部件MPU實(shí)現(xiàn)存儲(chǔ)器保護(hù)4. 總線接口5. 調(diào)試接口Copyright Cortex-M3性能參數(shù)Cortex-M3處理器規(guī)范 以下引用的數(shù)字是使用通用 TSMC 工藝技術(shù)和 ARM 物理 IP 標(biāo)準(zhǔn)單元庫(kù)和RAM 的合成核心的說(shuō)明。Dhrystone:整數(shù)運(yùn)算能力在1MHz頻率下,每秒執(zhí)行一百二十五萬(wàn)條指令的整數(shù)運(yùn)算能力。Copyright Cortex-M3處理器指令集Thumb-2 ARM Thumb-2技術(shù)的代碼密度和代碼性能

4、引自:ARM公司Richard Phelan撰寫(xiě)的如何使用Thumb-2改善代碼密度和性能Copyright Cortex-M3處理器指令集Thumb-2 Thumb-2技術(shù)可以帶來(lái)很多好處: 可以實(shí)現(xiàn)ARM指令的所有功能。 增加了12條新指令,可以改進(jìn)代碼性能和代碼密度之間的平衡。 代碼性能達(dá)到了純ARM代碼性能的98%。 相對(duì)ARM代碼,Thumb-2代碼的大小僅有其74% 代碼密度比現(xiàn)有的Thumb指令集更高。 代碼大小平均降低5%。 代碼速度平均提高2-3%。注:Cortex-M3不支持ARM指令集。Copyright Cortex-M 技術(shù)之技術(shù)之CMSIS ARM Cortex 微

5、控制器軟件接口標(biāo)準(zhǔn) (CMSIS) 是 Cortex-M 處理器系列的與供應(yīng)商無(wú)關(guān)的硬件抽象層。 使用 CMSIS,可以為接口外設(shè)、實(shí)時(shí)操作系統(tǒng)和中間件實(shí)現(xiàn)一致且簡(jiǎn)單的軟件接口,從而簡(jiǎn)化軟件的重用、縮短新微控制器開(kāi)發(fā)人員的學(xué)習(xí)過(guò)程,并縮短新產(chǎn)品的上市時(shí)間。注:此接口標(biāo)準(zhǔn)可以從各自芯片廠家那里得到。例如ST公司 把CMSIS放在其開(kāi)發(fā)的固件庫(kù)內(nèi)。CMSIS全稱(chēng):Cortex Microcontroller Software Interface Standard 以下是CMSIS結(jié)構(gòu)圖Copyright Cortex-M 技術(shù)之技術(shù)之CMSISCopyright Cortex-M 技術(shù)之技術(shù)之NV

6、IC NVIC 為處理器提供了卓越的中斷處理能力。 Cortex-M 處理器使用一個(gè)矢量表,其中包含要為特定中斷處理程序執(zhí)行的函數(shù)的地址。接受中斷時(shí),處理器會(huì)從該矢量表中提取地址。為了減少門(mén)數(shù)并增強(qiáng)系統(tǒng)靈活性,Cortex-M 處理器使用一個(gè)基于堆棧的異常模型。出現(xiàn)異常時(shí),系統(tǒng)會(huì)將關(guān)鍵通用寄存器推送到堆棧上。完成入棧和指令提取后,將執(zhí)行中斷服務(wù)例程或故障處理程序,然后自動(dòng)還原寄存器以使中斷的程序恢復(fù)正常執(zhí)行。使用此方法,便無(wú)需編寫(xiě)匯編器包裝器了(而這是對(duì)基于 C 語(yǔ)言的傳統(tǒng)中斷服務(wù)例程執(zhí)行堆棧操作所必需的),從而使得應(yīng)用程序的開(kāi)發(fā)變得非常容易。NVIC 支持中斷嵌套(入棧),從而允許通過(guò)運(yùn)用較

7、高的優(yōu)先級(jí)來(lái)較早地為某個(gè)中斷提供服務(wù)。Copyright Cortex-M 技術(shù)之技術(shù)之NVIC 在硬件中完成對(duì)中斷的響應(yīng) Cortex-M 系列處理器的中斷響應(yīng)是從發(fā)出中斷信號(hào)到執(zhí)行中斷服務(wù)例程的周期數(shù)。它包括: 檢測(cè)中斷 背對(duì)背或遲到中斷的最佳處理 提取矢量地址 將易損壞的寄存器入棧 跳轉(zhuǎn)到中斷處理程序 這些任務(wù)在硬件中執(zhí)行,并且包含在為 Cortex-M 處理器報(bào)出的中斷響應(yīng)周期時(shí)間中。在其他許多體系結(jié)構(gòu)中,這些任務(wù)必須在軟件的中斷處理程序中執(zhí)行,從而引起延遲并使得過(guò)程十分復(fù)雜。Copyright Cortex-M 技術(shù)之技術(shù)之NVIC NVIC 中的尾鏈 在背對(duì)背中斷的情況下,傳統(tǒng)系統(tǒng)

8、會(huì)重復(fù)完整的狀態(tài)保存和還原周期兩次,從而導(dǎo)致更高的延遲。Cortex-M 處理器通過(guò)在 NVIC 硬件中實(shí)現(xiàn)尾鏈技術(shù)簡(jiǎn)化了活動(dòng)中斷和掛起的中斷之間的轉(zhuǎn)換。處理器狀態(tài)會(huì)在比軟件實(shí)現(xiàn)時(shí)間更少的周期內(nèi)自動(dòng)保存在中斷條目上并在中斷退出時(shí)還原,從而顯著提升低 MHz 系統(tǒng)的性能。 Copyright Cortex-M 技術(shù)之技術(shù)之NVIC NVIC 對(duì)遲到的較高優(yōu)先級(jí)中斷的響應(yīng) 如果在為上一個(gè)中斷執(zhí)行堆棧推送期間較高優(yōu)先級(jí)的中斷遲到,NVIC 會(huì)立即提取新的矢量地址來(lái)為掛起的中斷提供服務(wù),如上所示。Cortex-M NVIC 對(duì)這些可能性提供具有確定性的響應(yīng)并支持遲到和搶占。 Copyright Cor

9、tex-M 技術(shù)之技術(shù)之NVIC NVIC 進(jìn)行的堆棧彈出搶占 同樣,如果異常到達(dá),NVIC 將放棄堆棧彈出并立即為新的中斷提供服務(wù),如上所示。通過(guò)搶占并切換到第二個(gè)中斷而不完成狀態(tài)還原和保存,NVIC 以具有確定性的方式實(shí)現(xiàn)了縮短延遲。Copyright Cortex-M3編程模式 工作模式: 線程模式在復(fù)位時(shí)處理器進(jìn)入線程模式, 異常返回時(shí)也會(huì)進(jìn)入該模式。 處理模式出現(xiàn)異常時(shí)處理器進(jìn)入處理模式。 工作狀態(tài): Thumb狀態(tài)是16位和32位半字對(duì)齊的thumb和thumb-2指令的正常執(zhí)行狀態(tài)。 調(diào)試狀態(tài)處理器停機(jī)調(diào)試時(shí)進(jìn)入該狀態(tài)。 特權(quán)與非特權(quán)訪問(wèn): 代碼可以是特權(quán)執(zhí)行或非特權(quán)執(zhí)行。 非特

10、權(quán)執(zhí)行時(shí)對(duì)有些資源的訪問(wèn)受到限制或不允許訪問(wèn)。特權(quán)執(zhí)行可以訪問(wèn)所有資源。 處理模式始終是特權(quán)訪問(wèn),線程模式可以是特權(quán)或非特權(quán)訪問(wèn)。 Copyright Cortex-M3編程模式 主堆棧和進(jìn)程堆棧 線程模式使用主堆棧還是進(jìn)程堆棧取決于 CONTROL 位1的值。該位可使用 MSR或 MRS 來(lái)訪問(wèn),也可以在退出 ISR 時(shí)使用適當(dāng)?shù)?EXC_RETURN的值來(lái)設(shè)置。 Cortex-M3 處理器17個(gè)寄存器 13 個(gè)通用寄存器,r0r12 分組的堆棧指針r13,SP_process和SP_main 鏈接寄存器,r14 ,用于異常返回和接受來(lái)自PC的返回地址。 程序計(jì)數(shù)器,r15 ,由于該寄存器的

11、位0始終為0,所以該指令始終與字或半字邊界對(duì)齊。 1 個(gè)程序狀態(tài)寄存器,xPSR ,訪問(wèn)通過(guò)MRS和MSR指令。Copyright Cortex-M3編程模式寄存器集Copyright Cortex-M3編程模式 支持?jǐn)?shù)據(jù)類(lèi)型:32位,16位,8位。 存儲(chǔ)器格式:Coretx-M3處理器能夠以小端格式和大端格式訪問(wèn)存儲(chǔ)器的數(shù)據(jù)字,而訪問(wèn)代碼始終使用小端模式。 小端格式中,一個(gè)字中最低地址的字節(jié)位為字節(jié)的最低有效字節(jié)。最高地址的字節(jié)為最高有效字節(jié)。 在大端格式中,一個(gè)字中最低地址的字節(jié)為該字的最高有效字節(jié),而最高地址的字節(jié)為最低有效字節(jié)。Copyright Cortex-M3存儲(chǔ)器映射 固定的存

12、儲(chǔ)器映射,下圖為其映射結(jié)構(gòu)。Copyright Cortex-M3存儲(chǔ)器映射 存儲(chǔ)器接口存儲(chǔ)器映射存儲(chǔ)器映射接口接口Code取指令在ICode,數(shù)據(jù)訪問(wèn)在Dcode。SRAM取指令和數(shù)據(jù)訪問(wèn)都在System bus。Peripheral 同上External RAM同上External Device同上Periph_bitband數(shù)據(jù)訪問(wèn)別名,指令訪問(wèn)非別名。SRAM_bitband同上Private Peripheral Bus該存儲(chǔ)區(qū)域從不執(zhí)行。不能通過(guò)MPU修改System廠商系統(tǒng)外設(shè)的系統(tǒng)部分,同樣為不能執(zhí)行。Copyright Cortex-M3存儲(chǔ)器映射Bit-banding機(jī)制

13、別名區(qū)的一個(gè)字映射為Bit-banding的一個(gè)位。即更改別名區(qū)里的某個(gè)字節(jié) 內(nèi)容,相當(dāng)于更改了Bit-banding區(qū)的某一位內(nèi)容。 處理器的存儲(chǔ)器映射包括來(lái)兩個(gè)Bit-banding區(qū)域,分別位于SRAM和 外設(shè)存儲(chǔ)區(qū)域中的最低1MB。 別名區(qū)的字對(duì)應(yīng)Bit-banding區(qū)的對(duì)應(yīng)為公式如下:bit_word_offset=(byte_offset*32)+(bit_number*4)bit_word_addr=bit_band_base+bit_word_offset例如:地址0 x23FFFFE0的別名字映射為0 x200FFFFF的Bit-banding字節(jié)的位0;0 x23FFFF

14、E0=0 x22000000+(0 xFFFFF*32)+0*4 下圖為Bit-banding映射圖 Copyright Cortex-M3存儲(chǔ)器映射Copyright Cortex-M3異常處理 Cortex-M3 處理器和嵌套向量中斷控制器(NVIC)對(duì)所有異常按優(yōu)先級(jí)進(jìn)行排序并處理。所有異常都在處理模式中操作。出現(xiàn)異常時(shí),自動(dòng)將處理器狀態(tài)保存到堆棧中,并在中斷服務(wù)程序(ISR)結(jié)束時(shí)自動(dòng)從堆棧中恢復(fù)。在狀態(tài)保存的同時(shí)取出向量快速地進(jìn)入中斷。處理器支持末尾連鎖(tail-chaining)中斷技術(shù),它能夠在沒(méi)有多余的狀態(tài)保存和恢復(fù)指令的情況下執(zhí)行背對(duì)背中斷(back-to-back int

15、errupt) 。以下特性可使能高效的低延遲異常處理。 特性: 自動(dòng)的狀態(tài)保存和恢復(fù)。處理器在進(jìn)入 ISR 之前將狀態(tài)寄存器壓棧,退出 ISR 之后將它們出棧,實(shí)現(xiàn)上述操作時(shí)不需要多余的指令。 優(yōu)先級(jí)屏蔽支持臨界區(qū) Copyright Cortex-M3異常處理 自動(dòng)讀取代碼存儲(chǔ)器或 SRAM 中包含 ISR 地址的向量表入口。該操作與狀態(tài)保存同時(shí)執(zhí)行。 支持末尾連鎖(tail-chaining) ,在末尾連鎖(tail-chaining)中,處理器在兩個(gè) ISR之間沒(méi)有對(duì)寄存器進(jìn)行出棧和壓棧操作的情況下處理背對(duì)背中斷。 中斷優(yōu)先級(jí)可動(dòng)態(tài)重新設(shè)置。 Cortex-M3與 NVIC 之間采用緊耦

16、合接口,通過(guò)該接口可以及早地對(duì)中斷和高優(yōu)先級(jí)的遲來(lái)中斷進(jìn)行處理。 中斷數(shù)目可配置為 1240。 中斷優(yōu)先級(jí)的數(shù)目可配置為 18 位(1256 級(jí)) 。 處理模式和線程模式具有獨(dú)立的堆棧和特權(quán)等級(jí)。 使用 C/C+標(biāo)準(zhǔn)的調(diào)用規(guī)范:ARM 架構(gòu)的過(guò)程調(diào)用標(biāo)準(zhǔn)(PCSAA)執(zhí)行 ISR 控制傳輸。Copyright Cortex-M3電源管理 ARMv7-M 架構(gòu)支持為減少功耗而讓 Cortex-M3 和系統(tǒng)時(shí)鐘停止運(yùn)行的系統(tǒng)睡眠模式。睡眠機(jī)制睡眠機(jī)制 描述描述立即睡眠等待中斷(WFI)或等待事件(WFE)指令請(qǐng)求立即睡眠模式。這些指令使得 NVIC 讓處理器進(jìn)入掛起其他異常事件的低功耗狀態(tài)。 退出

17、時(shí)睡眠當(dāng)系統(tǒng)控制寄存器的 SLEEPONEXIT 位置位時(shí),一旦處理器退出最低優(yōu)先級(jí)的 ISR,它就進(jìn)入低功耗狀態(tài)。處理器無(wú)需將寄存器出棧,就可進(jìn)入低功耗狀態(tài),并且無(wú)需讓寄存器壓棧就可以產(chǎn)生下一個(gè)異常事件。內(nèi)核一直處于睡眠狀態(tài)直至別的異常被掛起。這是一個(gè)自動(dòng)的WFI模式。 深度睡眠 深度睡眠與立即睡眠和“退出時(shí)睡眠”機(jī)制共用。當(dāng)系統(tǒng)控制寄存器的 SLEEPDEEP 位置位時(shí),處理器指示系統(tǒng)可以進(jìn)入深度睡眠。 Copyright 存儲(chǔ)器保護(hù)單元MPU MPU是保護(hù)內(nèi)存的一個(gè)組件。 支持標(biāo)準(zhǔn)的 ARMv7(PMSA) “Protected Memory System Architecture ”

18、模型。 MPU為以下操作提供完整的支持: 保護(hù)區(qū)域 重疊保護(hù)區(qū)區(qū)域 訪問(wèn)權(quán)限 將存儲(chǔ)器屬性輸出到系統(tǒng) MPU可以用于: 強(qiáng)制執(zhí)行特權(quán)原則 分離程序 強(qiáng)制執(zhí)行訪問(wèn)原則Copyright 總線接口 ICode 存儲(chǔ)器接口。從 Code 存儲(chǔ)器空間(0 x0000000 0 x1FFFFFFF)的取指都在這條 32 位 AHBLite 總線上執(zhí)行。 DCode存儲(chǔ)器接口。對(duì) Code 存儲(chǔ)器空間(0 x0000000 0 x1FFFFFFF)進(jìn)行數(shù)據(jù)和調(diào)試訪問(wèn)都在這條 32 位AHBLite 總線上執(zhí)行。 系統(tǒng)接口。對(duì)系統(tǒng)空間(0 x20000000 0 xDFFFFFFF)進(jìn)行取指、數(shù)據(jù)和調(diào)試訪問(wèn)都在這條 32位 AHBLite總線上執(zhí)行。 外部專(zhuān)用外設(shè)總線(PPB) 。對(duì)外部 PPB 空間(oxE0040000 0 xE00FFFFF)進(jìn)行數(shù)據(jù)和調(diào)試訪問(wèn)都在這條 32 位 APB 總線(AMBA v2.0)上執(zhí)行。跟蹤端口接口單元(TPIU)和廠商特定的外圍器件都在這條總線上。Copyright 調(diào)試跟蹤端口 內(nèi)核調(diào)試端口:通過(guò)內(nèi)核調(diào)試寄存器進(jìn)行訪問(wèn),而調(diào)試訪問(wèn)這些寄存器時(shí)需通過(guò) AHB-AP 端口。 系統(tǒng)調(diào)試端口:其調(diào)試控制和數(shù)據(jù)訪問(wèn)也是通過(guò) AHB-AP 端口實(shí)現(xiàn)。 跟蹤端口:跟蹤端口的接口單元充當(dāng)嵌入式跟蹤宏單元(ETM)和儀表跟蹤宏單元(ITM)與跟蹤端口分析儀(TPA)之

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論