補(bǔ)充材料ARM m0架構(gòu)(課堂PPT)_第1頁
補(bǔ)充材料ARM m0架構(gòu)(課堂PPT)_第2頁
補(bǔ)充材料ARM m0架構(gòu)(課堂PPT)_第3頁
補(bǔ)充材料ARM m0架構(gòu)(課堂PPT)_第4頁
補(bǔ)充材料ARM m0架構(gòu)(課堂PPT)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M0 處理器體系結(jié)構(gòu)處理器體系結(jié)構(gòu)第一部分第一部分2ARM University ProgramCopyright ARM Ltd 2013單元大綱單元大綱ARM 體系和處理器什么是ARM架構(gòu)ARM處理器系列ARM Cortex-M 架構(gòu)系列Cortex-M0 處理器ARM 處理器 Vs. ARM 體系A(chǔ)RM Cortex-M0 處理器Cortex-M0 處理器概述Cortex-M0 框圖Cortex-M0 寄存器Cortex-M0 內(nèi)存映射Cortex-M0 異常處理3ARM Un

2、iversity ProgramCopyright ARM Ltd 2013ARM 體系和體系和 ARM 處理器處理器4ARM University ProgramCopyright ARM Ltd 2013什么是什么是ARM架構(gòu)架構(gòu)ARM 架構(gòu)是一種基于RISC技術(shù)的處理器架構(gòu)因其低功耗而出名;因此廣泛應(yīng)用在移動(dòng)設(shè)備中,諸如手機(jī)和平板中都有由ARM公司設(shè)計(jì)并授權(quán)一個(gè)很大的生態(tài)圈來生產(chǎn)ARM控股設(shè)計(jì)基于ARM的處理器的公司;并不生產(chǎn),但是授權(quán)其他半導(dǎo)體合作廠商使用其設(shè)計(jì)來制造和銷售產(chǎn)品給他們的客戶;同時(shí)還提供其他設(shè)計(jì),比如物理IP、圖形核和開發(fā)工具。5ARM University Progra

3、mCopyright ARM Ltd 2013ARM 處理器系列處理器系列Cortex-A 系列(應(yīng)用)用于開放操作系統(tǒng)的高性能處理器;應(yīng)用產(chǎn)品包括手機(jī)、數(shù)字電視、電子書和家庭網(wǎng)關(guān)等。Cortex-R 系列(實(shí)時(shí))對于實(shí)時(shí)應(yīng)用有杰出的性能;應(yīng)用產(chǎn)品包括汽車剎車系統(tǒng)、動(dòng)力傳動(dòng)系統(tǒng)等。Cortex-M 系列 (單片機(jī))用于特定的單片機(jī)應(yīng)用的顧忌成本的解決方案;應(yīng)用產(chǎn)品包括單片機(jī)、混合信號設(shè)備、智能傳感器、車體電路和氣囊等。SecurCore系列高安全性的應(yīng)用。早期的經(jīng)典處理器包括ARM7、ARM9、ARM11系列Cortex-ACortex-A57Cortex-A53Cortex-A15Corte

4、x-A9Cortex-A8Cortex-A7Cortex-A5Cortex-R7Cortex-R5Cortex-R4Cortex-M4Cortex-M3Cortex-M1Cortex-M0+Cortex-M0SC000SC100SC300ARM11ARM9ARM7Cortex-RCortex-MSecurCoreClassicAs of Sept 20136ARM University ProgramCopyright ARM Ltd 2013設(shè)計(jì)一個(gè)基于設(shè)計(jì)一個(gè)基于ARM的的SoC從ARM或其他第三方IP廠家獲得一組IP核;把這些IP核集成進(jìn)單個(gè)芯片的設(shè)計(jì)中;把設(shè)計(jì)交給半導(dǎo)體廠家來做芯片生產(chǎn)

5、?;诨贏RM的的MCU芯片芯片ROMARM處理器RAM系統(tǒng)總線外圍部件外部接口SoCSoC 設(shè)計(jì)設(shè)計(jì)芯片制造芯片制造可授權(quán)的可授權(quán)的IPIP 庫庫Cortex-A9Cortex-R5Cortex-M0ARM7ARM9ARM11AXI 總線AHB 總線APB 總線GPIOI/O 塊定時(shí)器DRAM 控制 FLASH 控制 SRAM 控制7ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M 架構(gòu)系列架構(gòu)系列Cortex-M 系列: Cortex-M0, M0+, M1, M3, M4.低功耗更低的能耗、更長的電池壽命更小的代碼更低的硅

6、片成本易于使用更快的軟件開發(fā)和重用嵌入式應(yīng)用智能儀表、人機(jī)接口設(shè)備、汽車和工業(yè)控制系統(tǒng)、白色商品、消費(fèi)產(chǎn)品和醫(yī)療儀器As of Sept 20138ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M 架構(gòu)系列架構(gòu)系列處理器處理器ARM架構(gòu)架構(gòu)核心架構(gòu)核心架構(gòu)ThumbThumb-2硬件乘法硬件乘法硬件除法硬件除法飽和運(yùn)算飽和運(yùn)算DSP擴(kuò)展擴(kuò)展浮點(diǎn)運(yùn)算浮點(diǎn)運(yùn)算Cortex-M0ARMv6-M馮馮 諾伊曼諾伊曼大多數(shù)大多數(shù)子集子集1 或或32個(gè)個(gè)周期周期無無無無無無無無Cortex-M0+ARMv6-M馮馮 諾伊曼諾伊曼大多數(shù)大多數(shù)子集

7、子集1 或或32個(gè)個(gè)周期周期無無無無無無無無Cortex-M1ARMv6-M馮馮 諾伊曼諾伊曼大多數(shù)大多數(shù)子集子集3 或或33 個(gè)個(gè)周期周期無無無無無無無無Cortex-M3ARMv7-M哈佛哈佛完整完整完整完整1 個(gè)周期個(gè)周期有有有有無無無無Cortex-M4ARMv7E-M哈佛哈佛完整完整完整完整1個(gè)周期個(gè)周期有有有有有有可選可選9ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 處理器處理器最小的ARM處理器極小的硅片面積極少的門數(shù)量(最低配置大約1.2萬個(gè)門)代碼密度高以16位Thumb指令為基礎(chǔ)加上一些強(qiáng)大的32位指令低功耗1

8、6W/MHz (90LP 工藝、最小配置)簡單性只有56條指令對C語言友好更確定的響應(yīng)時(shí)間使用ARMv6-M架構(gòu)10ARM University ProgramCopyright ARM Ltd 2013ARM 處理器處理器Vs. ARM 架構(gòu)架構(gòu)ARM 架構(gòu)定義了指令集的細(xì)節(jié)、程序的模型、異常模型和內(nèi)存映射;相關(guān)文檔在Architecture Reference Manual(架構(gòu)參考手冊)中;ARM 處理器是用一種ARM架構(gòu)開發(fā)出來的;更多的實(shí)現(xiàn)細(xì)節(jié),比如時(shí)序數(shù)據(jù)以及和實(shí)現(xiàn)相關(guān)的數(shù)據(jù);相關(guān)文檔在處理器的Technical Reference Manual(技術(shù)參考手冊)中。ARMv4/ V

9、4t 架構(gòu)ARMv5/ v4E 架構(gòu)ARMv6 架構(gòu)ARMv7架構(gòu)ARM v6-M如. Cortex-M0, M1如 ARM7TDMI如 ARM9926EJ-S如 ARM1136ARMv8 架構(gòu)ARMv7-A如 Cortex-A9ARMv7-R如 Cortex-R4ARMv7-M如 Cortex-M3ARMv8-A如 Cortex-A53Cortex-A57ARMv8-R2013年9月的數(shù)據(jù)11ARM University ProgramCopyright ARM Ltd 2013ARM 處理器處理器Vs. ARM 架構(gòu)架構(gòu)Cortex-M0: v6-MARMv6 架構(gòu)的Thumb指令集;AR

10、Mv7-M架構(gòu)的內(nèi)存映射,異常模型和Thumb-2系統(tǒng);低功耗優(yōu)化的設(shè)計(jì)。ARM v6-M架構(gòu)架構(gòu)ARM v6架構(gòu)架構(gòu)ARM v7-M架構(gòu)架構(gòu)ARMCortex-M0Thumb 指令集內(nèi)存映射異常模型Thumb-2系統(tǒng)低功耗優(yōu)化的設(shè)計(jì)12ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M0 處理器概述處理器概述13ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 概述概述32位精簡指令集計(jì)算(RISC)處理器馮諾伊曼架構(gòu)數(shù)據(jù)和指令共享單個(gè)總線接口;指令集56條指令,是Thum

11、b-1 (16位) 和Thumb-2 (16/32位)的子集;支持的中斷1個(gè)不可屏蔽中斷(NMI) + 1 到 32 個(gè)物理中斷支持睡眠模式14ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 框圖框圖內(nèi)部總線系統(tǒng)內(nèi)部總線系統(tǒng)AHB LITE總線接口總線接口喚醒中斷控制器喚醒中斷控制器 (WIC)處理器處理器核心核心嵌套向量化嵌套向量化中斷控制器中斷控制器 (NVIC)調(diào)試調(diào)試子系統(tǒng)子系統(tǒng)中斷請求和NMIARM Cortex-M0 微處理器微處理器內(nèi)存與外圍部件JTAG/串行線調(diào)試接口-Wire電源管理接口15ARM Universit

12、y ProgramCopyright ARM Ltd 2013Cortex-M0 框圖框圖處理器核心包括內(nèi)部寄存器、ALU、數(shù)據(jù)通路和一些控制邏輯;三級流水線:取指、譯碼和執(zhí)行;寄存器包括16個(gè)32位寄存器,都可以用做通用和特殊用途。嵌套向量化中斷控制器 (NVIC)最多32個(gè)中斷請求信號和一個(gè)不可屏蔽中斷(NMI);自動(dòng)處理嵌套的中斷,比如比較中斷請求和當(dāng)前正在處理的中斷的優(yōu)先級;取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行指令1指令2指令3取指譯碼執(zhí)行指令4Time 16ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 框圖框圖總線系統(tǒng)包括

13、內(nèi)部總線系統(tǒng),處理器核心中的數(shù)據(jù)通路和AHB LITE接口單元;全部都是32位寬度;AHB LITE是許多ARM處理器所采用的片上總線協(xié)議,在IC設(shè)計(jì)業(yè)內(nèi)得到廣泛使用。調(diào)試子系統(tǒng)處理調(diào)試控制、程序斷點(diǎn)和數(shù)據(jù)觀察點(diǎn)(watchpoint);當(dāng)調(diào)試事件發(fā)生的時(shí)候,它可以把處理器核心置于停止?fàn)顟B(tài),讓開發(fā)人員可以分析處理器此刻的狀態(tài),比如查看寄存器和標(biāo)志的值。喚醒中斷控制器(WIC)(可選)對于低功耗應(yīng)用,單片機(jī)可以關(guān)閉大多數(shù)部件進(jìn)入睡眠模式。當(dāng)檢測到一個(gè)中斷請求的時(shí)候,WIC可以通知電源管理單元來給系統(tǒng)供電。17ARM University ProgramCopyright ARM Ltd 2013

14、ARM Cortex-M0 處理器的寄存器處理器的寄存器18ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 寄存器寄存器處理器寄存器內(nèi)部的寄存器是用來存儲(chǔ)和處理處理器核心內(nèi)的臨時(shí)數(shù)據(jù)的;所有的寄存器都在處理器核心內(nèi),因此能更快地被讀寫;load-store架構(gòu)要處理內(nèi)存中的數(shù)據(jù),就必須把數(shù)據(jù)從內(nèi)存裝載到寄存器中,在處理器中處理,需要的話,再寫回到內(nèi)存中。Cortex-M0 寄存器寄存器組(bank)16個(gè)32位寄存器(13個(gè)是通用的); 特殊寄存器。19ARM University ProgramCopyright ARM Ltd 2

15、013Cortex-M0 寄存器寄存器R0R1R2R3R4R5R6R7R8R9R10R11R12R13(分組分組)R14R15x PSR堆棧指針 (SP)鏈接寄存器(LR)程序計(jì)數(shù)器 (PC)PRIMASKCONTROLProgram Status Registers (PSR)Interrupt mask registerStack definition特殊寄存器特殊寄存器寄存器組寄存器組MSPPSP主堆棧指針進(jìn)程堆棧指針APSREPSRIPSR應(yīng)用程序PSR執(zhí)行PSR終端PSR低段寄存器高段寄存器通用寄存器20ARM University ProgramCopyright ARM Ltd

16、2013Cortex-M0 寄存器寄存器R0 R12: 通用寄存器低段寄存器 (R0 R7)可以由任何指令讀寫;高段寄存器 (R8 R12) 有時(shí)候不能被某些Thumb指令讀寫。R13: 堆棧指針 (SP)記錄堆棧當(dāng)前的地址;在任務(wù)之間切換的時(shí)候,用來保存程序的上下文;Cortex-M0有兩個(gè) SP:一個(gè)是主SP(MSP),用在需要特權(quán)訪問的程序中,比如OS內(nèi)核及異常處理程序; 另一個(gè)是進(jìn)程SP(PSP),用在普通的應(yīng)用程序中(不跑異常處理程序的時(shí)候)。程序計(jì)數(shù)器 (PC)記錄當(dāng)前指令代碼的地址;每個(gè)取值操作自動(dòng)遞增4(對于32位指令碼而言),除非是遇到了跳轉(zhuǎn)指令;像函數(shù)調(diào)用這樣的跳轉(zhuǎn)指令,會(huì)

17、把PC變到一個(gè)特定的地址,同時(shí)把當(dāng)前的PC保存在鏈接寄存器(LR)中。數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)PCSP地址低高壓棧退棧堆棧代碼堆21ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 寄存器寄存器R14: 鏈接寄存器 (LR)LR用來保存子程序或函數(shù)調(diào)用時(shí)的返回地址;函數(shù)結(jié)束的時(shí)候,程序計(jì)數(shù)器 (PC) 裝入LR中的值。PCLR主程序代碼子程序當(dāng)前PC把LR里的地址裝入PC,從而返回到主程序中當(dāng)前LR從子程序返回主程序從子程序返回主程序PCLR主程序代碼子程序當(dāng)前PC1. 把當(dāng)前的PC保存到LR中2. 把子程序的起始地址裝入PC調(diào)用子程序調(diào)用子程序代

18、碼區(qū)代碼區(qū)22ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 寄存器寄存器xPSR, 混合的程序狀態(tài)寄存器提供程序運(yùn)行的信息及ALU標(biāo)志:應(yīng)用PSR (APSR)中斷PSR (IPSR)執(zhí)行PSR (EPSR) N Z C VISR 編號保留保留保留T保留TN Z C VISR 編號APSRIPSREPSRxPSR第0位第8位第16位第24位第31位23ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 寄存器寄存器APSRN: 負(fù)標(biāo)志如果ALU的結(jié)果是負(fù)數(shù)就置為1; Z: 零標(biāo)

19、志如果ALU的結(jié)果是0就置為1;C: 進(jìn)位標(biāo)志如果無符號數(shù)發(fā)生了溢出就置為1;V: 溢出標(biāo)志如果有符號數(shù)發(fā)生了溢出就置為1。IPSRISR 編號當(dāng)前正在執(zhí)行的中斷服務(wù)程序的編號EPSRT: Thumb 狀態(tài)因?yàn)镃ortex-M0只支持Thumb狀態(tài),所以始終為124ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 RegistersPRIMASK: 中斷屏蔽特殊寄存器1位的PRIMASK置該位為1就阻塞了不可屏蔽中斷(NMI)和硬失效異常以外的所有中斷。CONTROL: 特殊寄存器1位的堆棧定義置為1:使用進(jìn)程堆棧指針(PSP);清為0

20、:使用主堆棧指針(MSP)。保留保留PRIMASKPRIMASKCONTROLbit8bit16bit24bit31堆棧定義25ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M0 處理器內(nèi)存映射處理器內(nèi)存映射26ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 內(nèi)存映射內(nèi)存映射Cortex-M0處理器有4GB的內(nèi)存地址空間這4GB的內(nèi)存空間從架構(gòu)上被定義成了幾塊區(qū)域每塊區(qū)域有建議的用途;這樣便于軟件程序員在不同的芯片之間移植軟件不過,盡管有默認(rèn)的內(nèi)存映射,內(nèi)存的實(shí)際使用是可

21、以由用戶靈活定義的,例外的是一些固定的內(nèi)存地址,如內(nèi)部私有外設(shè)總線。27ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 內(nèi)存映射內(nèi)存映射私有外設(shè),如NVIC、SCS主要用作外部外設(shè),如SD card主要用做外部存儲(chǔ)器,如外部DDR、FLASH、LCD主要用做片上外設(shè),如AHB、 APB外圍部件主要用做數(shù)據(jù)存儲(chǔ)器,如片上的SRAM、SDRAM主要用做程序代碼,如片上FLASH保留外部器件外部RAM外圍部件SRAM代碼0 xFFFFFFFF0 xE0000000私有外設(shè)總線0 xDFFFFFFF0 xA00000000 x9FFFFFFF

22、0 x600000000 x5FFFFFFF0 x400000000 x3FFFFFFF0 x1FFFFFFF0 x200000000 x00000000512MB512MB512MB1GB1GB512MB0 xE00FFFFF0 xE0100000保留做其他用途ROM 表保留保留系統(tǒng)控制區(qū)(SCS)保留保留斷點(diǎn)單元數(shù)據(jù)觀察指針單元保留調(diào)試控制嵌套的向量中斷控制器 (NVIC)保留SysTick 定時(shí)器保留系統(tǒng)控制塊(SCB)28ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 內(nèi)存映射內(nèi)存映射代碼區(qū)主要用于存儲(chǔ)程序代碼;也可以用來做數(shù)

23、據(jù)存儲(chǔ);片上的存儲(chǔ)器,比如片上的FLASH。SRAM區(qū)主要用來存儲(chǔ)數(shù)據(jù),比如堆和堆棧;也可以用來存儲(chǔ)程序代碼;片上存儲(chǔ)器,盡管名字可能叫做“SRAM”,實(shí)際的器件可能是SRAM、SDRAM或其他類型的存儲(chǔ)器。外設(shè)區(qū)主要用做外設(shè),比如先進(jìn)高性能總線 (AHB) 或先進(jìn)外設(shè)總線 (APB) 上的外圍部件;片上外設(shè)。29ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 內(nèi)存映射內(nèi)存映射外部RAM 區(qū)主要用于保存大的數(shù)據(jù)塊,或用作內(nèi)存cache;片外存儲(chǔ)器,比片上SRAM區(qū)慢。外部器件區(qū)主要用來映射外部器件;片外器件,如SD卡。內(nèi)部私有外設(shè)總線

24、(PPB)在處理器中用于處理器的內(nèi)部控制;在PPB中,有一塊特殊的內(nèi)存空間是定義做系統(tǒng)控制空間(System Control Space、SCS)的;嵌套的向量化中斷控制器(NVIC)是SCS的一部分。30ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 內(nèi)存映射的例子內(nèi)存映射的例子AHB bus外部SRAM,FLASH外部LCDSD 卡Cortex-M0PPBSCSNVICDebug Ctrl片上FLASH(代碼區(qū))片上SRAM(SRAM區(qū))外設(shè)區(qū)外部存儲(chǔ)器接口(外部RAM 區(qū))外部器件接口(外部器件區(qū))定時(shí)器UARTGPIO芯片硅片

25、31ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 程序映像程序映像Cortex-M0里的程序映像包括向量表包括異常的起始地址(向量)和主堆棧指針(MSP)的值;C的啟動(dòng)代碼;程序代碼應(yīng)用程序代碼和數(shù)據(jù);C的庫代碼C庫函數(shù)的程序代碼。0 x00000000初始的MSP值代碼區(qū)啟動(dòng)代碼和程序代碼和C庫代碼向量表程序映像Reset(啟動(dòng))向量NMI向量硬失效硬失效向量保留保留SVC向量保留保留PendSV向量SysTick向量中斷向量0 x000000000 x000000040 x000000080 x0000000C0 x000000

26、2C0 x000000380 x000000400 x0000003C32ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 程序映像程序映像在啟動(dòng)后:首先讀入初始MSP值;然后讀入第一個(gè)啟動(dòng)向量;跳轉(zhuǎn)到程序執(zhí)行的初始地址(啟動(dòng)處理程序);依次執(zhí)行程序指令。啟動(dòng)(重啟)獲取MSP的初值(讀地址0 x00000000)獲取啟動(dòng)向量(讀地址0 x00000004)獲取第一條指令(讀啟動(dòng)向量所指出的地址)獲取第二條指令(讀接下去的地址)33ARM University ProgramCopyright ARM Ltd 2013Cortex-M0

27、 大小端大小端大小端指的是內(nèi)存中字節(jié)存儲(chǔ)的順序小端(低位在前):一個(gè)字的數(shù)據(jù)中最低的字節(jié)保存在位0到位7大端(高位在前):一個(gè)字的數(shù)據(jù)中最低的字節(jié)保存在位24到31Cortex-M0既支持小端也支持大端不過,大小端只是硬件層面上的事情字節(jié)0字節(jié)1字節(jié)2字節(jié)3字節(jié)0字節(jié)1字節(jié)2字節(jié)3字節(jié)0字節(jié)1字節(jié)2字節(jié)30 x000000000 x000000040 x00000008地址7:015:823:1631:24字節(jié)0字節(jié)1字節(jié)2字節(jié)3字節(jié)0字節(jié)1字節(jié)2字節(jié)3字節(jié)0字節(jié)1字節(jié)2字節(jié)37:015:823:1631:24第1個(gè)字第2個(gè)字第3個(gè)字Word 1Word 2Word 3小端的小端的32位內(nèi)存位

28、內(nèi)存大端的大端的32位內(nèi)存位內(nèi)存34ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M0 處理器異常處理器異常35ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 異常處理異常處理異常是一種事件,它導(dǎo)致程序流退出當(dāng)前的程序線程,轉(zhuǎn)而執(zhí)行與這個(gè)事件相關(guān)的一段代碼事件可以是內(nèi)部的也可以是外部的外部的事件也叫做中斷 (IRQ).線程線程模式模式異常異常模式模式內(nèi)部或外部事件執(zhí)行異常處理程序執(zhí)行正常代碼序列完成處理現(xiàn)場保護(hù)現(xiàn)場恢復(fù)36ARM University ProgramCop

29、yright ARM Ltd 2013Cortex-M0 異常處理異常處理異常處理程序一小段執(zhí)行在異常模式的軟件代碼;如果一個(gè)中斷請求(IRQ)導(dǎo)致了這個(gè)異常,那么也可以被叫做中斷處理程序,或中斷服務(wù)程序(ISR)。上下文切換上下文保存(現(xiàn)場保護(hù)):在進(jìn)入異常模式之前,當(dāng)前程序的上下文,比如寄存器當(dāng)前的值要推入堆棧;上下文恢復(fù)(現(xiàn)場恢復(fù)):在處理程序完成后,之前保存的上下文要從堆棧中彈出到寄存器里去線程線程模式模式異常異常模式模式內(nèi)部或外部事件執(zhí)行異常處理程序執(zhí)行正常代碼序列完成處理現(xiàn)場保護(hù)現(xiàn)場恢復(fù)37ARM University ProgramCopyright ARM Ltd 2013Co

30、rtex-M0 異常處理異常處理異常優(yōu)先級異常(或中斷)一般要?jiǎng)澐殖蓭讉€(gè)層次或優(yōu)先級;更高優(yōu)先級的異??梢栽谳^低優(yōu)先級異常處理期間觸發(fā)并得到服務(wù);常被稱作是嵌套的異常;異常可以由軟件開啟或禁止。 Cortex-M0 中斷控制器支持多達(dá)32個(gè)IRQ輸入,和一個(gè)不可屏蔽中斷(NMI)輸入;NMI和IRQ類似,但是不能被禁止,而且具有最高的優(yōu)先級,在諸如工業(yè)控制或汽車這樣的安全性很關(guān)鍵的系統(tǒng)中很有用。38ARM University ProgramCopyright ARM Ltd 2013ARMv7-M的向量表的向量表第一項(xiàng)是初始主SP其他所有的都是異常處理程序的地址最低位必須=1(因?yàn)槭荰humb)這個(gè)表最多可以有496個(gè)外部中斷有具體實(shí)現(xiàn)來決定表的大小最大可以2048個(gè)字節(jié)這個(gè)表可以被重定位使用Vector Table Offset(向量表偏移)寄存器

溫馨提示

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

評論

0/150

提交評論