




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
TEL:2、ARMCortex-M3體系結(jié)構(gòu)第2章Cortex-M3體系結(jié)構(gòu)2、ARMCortex-M3體系結(jié)構(gòu)2.1.CM3微處理器核結(jié)構(gòu)2.2處理器工作模式及狀態(tài)2.3.寄存器2.4總線接口2.5存儲器的組織與映射2.6.指令集2.7.流水線2.8.異常與中斷2.9存儲器保護單元MPU2.10STM32微控制器概述第2章Cortex-M3體系結(jié)構(gòu)2.1CM3微處理器核結(jié)構(gòu)集成了內(nèi)核和高級系統(tǒng)外設的分級處理器Cortex-M3內(nèi)核哈佛體系結(jié)構(gòu)擁有分支預測功能的三級流水線
Thumb?-2指令集和傳統(tǒng)的Thumb指令集帶有硬件除法和單周期乘法的ALUCortex-M3處理器Cortex-M3內(nèi)核可配置的中斷控制器總線矩陣先進的調(diào)試組件可選擇的MPU(存儲器保護單元)&ETM(嵌入式跟蹤宏單元)第2章Cortex-M3體系結(jié)構(gòu)2、ARMCortex-M3體系結(jié)構(gòu)2.1.CM3微處理器核結(jié)構(gòu)2.2處理器工作模式及狀態(tài)2.3.寄存器2.4總線接口2.5存儲器的組織與映射2.6.指令集2.7.流水線2.8.異常與中斷2.9存儲器保護單元MPU2.10STM32微控制器概述第2章Cortex-M3體系結(jié)構(gòu)工作模式和特權(quán)級別處理模式線程模式特權(quán)級用戶級始終特權(quán)級2.2處理器工作模式及狀態(tài)工作模式用于區(qū)別普通應用程序的代碼和異常服務例程的代碼(包括中斷服務例程的代碼)特權(quán)級別可以提供一種存儲器訪問的保護機制,使得普通的用戶程序代碼不能意外地,甚至是惡意地執(zhí)行涉及到要害的操作。第2章Cortex-M3體系結(jié)構(gòu)特權(quán)執(zhí)行可以訪問所有資源。非特權(quán)執(zhí)行時對有些資源的訪問受到限制或不允許訪問。特權(quán)訪問和用戶訪問(非特權(quán)訪問)的區(qū)別FAULTMASKPRIMASKSCS……用戶訪問特權(quán)訪問第2章Cortex-M3體系結(jié)構(gòu)2.2處理器工作模式及狀態(tài)線程模式Cortex-M3處理器支持兩種工作模式:線程模式和處理模式處理模式在復位時處理器進入線程模式異常返回時處理器進入線程模式特權(quán)和用戶(非特權(quán))代碼能夠在線程模式下運行出現(xiàn)異常時處理器進入處理模式在處理模式中,所有代碼都是特權(quán)訪問的第2章Cortex-M3體系結(jié)構(gòu)2.2處理器工作模式及狀態(tài)線程模式特權(quán)訪問復位處理模式特權(quán)訪問異常線程模式用戶訪問異常異常退出CONTROL[0]=1CONTROL[0]=0MSR指令置位CONTROL[0]第2章Cortex-M3體系結(jié)構(gòu)CONTROL[0]特權(quán)訪問用戶訪問10特權(quán)訪問和用戶訪問的切換控制寄存器的第0位在處理模式下,通過MSR指令清零CONTROL[0],退出處理模式進入線程模式時切換到特權(quán)訪問。
MOVR0#0X00MSRCONTROLR0在處理模式下,通過MSR指令置位CONTROL[0],退出處理模式進入線程模式時切換到用戶訪問。在線程模式特權(quán)訪問下,通過MSR指令置位CONTROL[0],即可由特權(quán)訪問進入用戶訪問。
MRSR0CONTROLORRR0,R0,#0x01MSRCONTROLR0
第2章Cortex-M3體系結(jié)構(gòu)2、ARMCortex-M3體系結(jié)構(gòu)2.1.CM3微處理器核結(jié)構(gòu)2.2處理器工作模式及狀態(tài)2.3.寄存器2.4總線接口2.5存儲器的組織與映射2.6.指令集2.7.流水線2.8.異常與中斷2.9存儲器保護單元MPU2.10STM32微控制器概述第2章Cortex-M3體系結(jié)構(gòu)32位CM3寄存器R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)r0~r12,為13個通用目的寄存器低組寄存器,r0-r7可以被指定通用寄存器的所有指令訪問高組寄存器,r8-r12可以被指定通用寄存器的所有32位指令訪問,16位Thumb指令不能訪問它們,32位的Thumb-2指令則不受限制。SP_processSP_main第2章Cortex-M3體系結(jié)構(gòu)分組的堆棧指針(SP)R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)XPSRSP_mainSP_process處理模式線程模式可用MSP始終使用主堆棧指針(MSP)也可用進程堆棧指針(PSP)特權(quán)級使用用戶級使用第2章Cortex-M3體系結(jié)構(gòu)主堆棧和進程堆棧Cortex-M3內(nèi)核有兩個堆棧指針:MSP和PSP結(jié)束復位后,所有代碼都使用主堆棧所有異常都使用主堆棧異常處理程序(例如SVC)可以通過改變其在退出時使用的EXC_RETURN值來改變線程模式使用的堆棧。在線程模式中,使用MSR指令對CONTROL[1]執(zhí)行寫操作也可以從主堆棧切換到進程堆棧。堆棧指針r13是分組寄存器,在SP_main和SP_process之間切換。在任何時候,進程堆棧和主堆棧中只有一個是可見的,由r13指示。第2章Cortex-M3體系結(jié)構(gòu)堆棧與微處理器模式的對應關系通過異常進行堆棧切換線程模式主堆棧復位處理模式主堆棧產(chǎn)生異常線程模式進程堆棧產(chǎn)生異常異常退出EXC_RETURN[3:0]=0b1101EXC_RETURN[3:0]=0b1001第2章Cortex-M3體系結(jié)構(gòu)堆棧與微處理器模式的對應關系通過MSR指令修改CONTROL[1]進行堆棧切換線程模式主堆棧線程模式進程堆棧CONTROL[1]主堆棧進程堆棧10控制寄存器的第1位一般通過中斷返回進行堆棧切換,MSR指令切換用的極少。第2章Cortex-M3體系結(jié)構(gòu)鏈接寄存器(LR)R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)鏈接寄存器(LR)在執(zhí)行分支(branch)和鏈接(BL)指令或帶有交換的分支和鏈接指令(BLX)時,LR用于保存PC的返回地址。
主要用于保存子程序的返回地址。
LR也用于異常返回。第2章Cortex-M3體系結(jié)構(gòu)鏈接寄存器(LR)R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)intmain(){......delay();SetLED1();}voiddelay(){......}BLdelay……delay:......BXLR
….0X20F00X20F4地址R14(LR)0X20F40X10F40X10F4執(zhí)行BL指令,LR的值同時更新第2章Cortex-M3體系結(jié)構(gòu)寄存器(PC)R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)XPSR程序計數(shù)器(PC)程序計數(shù)器總是指向正在取指的指令。該寄存器的位0始終為0,因此,指令始終與字或半字邊界對齊。程序狀態(tài)寄存器(XPSR)用于指示程序的運行狀態(tài)。第2章Cortex-M3體系結(jié)構(gòu)CM3的狀態(tài)寄存器
應用程序PSR(APSR)
中斷號PSR(IPSR)
執(zhí)行PSR(EPSR)第2章Cortex-M3體系結(jié)構(gòu)異常中斷寄存器名字
功能描述PRIMASK這是個只有1個位的寄存器。當它置1時,就關掉所有可屏蔽的異常,只剩下NMI和硬fault可以響應。它的缺省值是0,表示沒有關中斷。FAULTMASK這是個只有1個位的寄存器。當它置1時,只有NMI才能響應,所有其它的異常,包括中斷和fault,通通閉嘴。它的缺省值也是0,表示沒有關異常。BASEPRI這個寄存器最多有9位(由表達優(yōu)先級的位數(shù)決定)。它定義了被屏蔽優(yōu)先級的閾值。當它被設成某個值后,所有優(yōu)先級號大于等于此值的中斷都被關(優(yōu)先級號越大,優(yōu)先級越低)。但若被設成0,則不關閉任何中斷,0也是缺省值。第2章Cortex-M3體系結(jié)構(gòu)控制寄存器(CONTROL)位功能CONTROL[1]堆棧指針選擇0=選擇主堆棧指針MSP(復位后缺省值)1=選擇進程堆棧指針PSP在線程或基礎級(沒有在響應異常),可以使用PSP。在handler模式下,只允許使用MSP,所以此時不得往該位寫1。CONTROL[0]0=特權(quán)級的線程模式1=用戶級的線程模式Handler模式永遠都是特權(quán)級的第2章Cortex-M3體系結(jié)構(gòu)2、ARMCortex-M3體系結(jié)構(gòu)2.1.CM3微處理器核結(jié)構(gòu)2.2處理器工作模式及狀態(tài)2.3.寄存器2.4總線接口2.5存儲器的組織與映射2.6.指令集2.7.流水線2.8.異常與中斷2.9存儲器保護單元MPU2.10STM32微控制器概述第2章Cortex-M3體系結(jié)構(gòu)2.4總線接口總線定義總線是CPU與存儲器和設備通信的機制,是計算機各部件之間傳送數(shù)據(jù)、地址和控制信息的公共通道。片內(nèi)總線或內(nèi)部總線:連接CPU內(nèi)部各主要功能部件片外總線:CPU與存儲器(RAM和ROM)和I/O接口之間進行信息交換的通道數(shù)據(jù)總線Dbus地址總線Abus控制總線Cbus按相對于CPU位置劃分按功能和信號類型總線分類第2章Cortex-M3體系結(jié)構(gòu)原因:數(shù)據(jù)寬度:高速總線通常提供較寬的數(shù)據(jù)連接。成本:高速總線通常采用更昂貴的電路和連接器。橋允許總線獨立操作,這樣在I/O操作中可提供某些并行性。一個微處理器系統(tǒng)可能含有多條總線高速總線低速總線高速設備低速設備橋總線互聯(lián)的電路2.4總線接口總線定義總線是CPU與存儲器和設備通信的機制,是計算機各部件之間傳送數(shù)據(jù)、地址和控制信息的公共通道。第2章Cortex-M3體系結(jié)構(gòu)AMBA總線片上總線標準種類繁多,而由ARM公司推出的AMBA(AdvancedMicrocontrollerBusArchitecture)片上總線受到了廣大IP開發(fā)商和SoC系統(tǒng)集成者的青睞,已成為一種流行的工業(yè)標準片上結(jié)構(gòu)。AMBA規(guī)范主要包括了AHB(AdvancedHighperformanceBus)系統(tǒng)總線和APB(AdvancedPeripheralBus)外設總線。二者分別適用于高速與相對低速設備的連接。
第2章Cortex-M3體系結(jié)構(gòu)Cortex-M3模塊的內(nèi)部方框圖I-Code總線負責在0x0000_0000–0x1FFF_FFFF之間的取指操作D-Code總線負責在0x0000_0000–0x1FFF_FFFF之間的數(shù)據(jù)訪問操作系統(tǒng)總線負責在0x2000_0000–0xDFFF_FFFF和0xE010_0000–0xFFFF_FFFF之間的所有數(shù)據(jù)傳送(取指和數(shù)據(jù))外部專用外設總線負責0xE004_0000–0xE00F_FFFF之間的私有外設訪問內(nèi)部專用外設總線負責0xE000_0000–0xE003_FFFF之間的私有外設訪問第2章Cortex-M3體系結(jié)構(gòu)2、ARMCortex-M3體系結(jié)構(gòu)2.1.CM3微處理器核結(jié)構(gòu)2.2處理器工作模式及狀態(tài)2.3.寄存器2.4總線接口2.5存儲器的組織與映射2.6.指令集2.7.流水線2.8.異常與中斷2.9存儲器保護單元MPU2.10STM32微控制器概述第2章Cortex-M3體系結(jié)構(gòu)存儲器格式……字節(jié)字節(jié)字節(jié)字節(jié)……A+3A+2A+1A存儲器半字半字字存儲器層次結(jié)構(gòu)RAM靜態(tài)RAM和動態(tài)RAMROMPROM、EPORM、EEPROMFLASHNORFLASH、NANDFLASH第2章Cortex-M3體系結(jié)構(gòu)存儲器格式小端存儲器系統(tǒng):在小端格式中,數(shù)據(jù)的高字節(jié)存放在高地址中。大端存儲器系統(tǒng):在大端格式中,數(shù)據(jù)的高字節(jié)存放在低地址中。…………A+3A+2A+1A存儲器
小端存儲模式下,0x12345678在A地址開始的一個字空間的存儲;
1
大端存儲模式下,0x12345678在A地址開始的一個字空間的存儲;
20x120x340x560x78…………A+3A+2A+1A存儲器0x780x560x340x12第2章Cortex-M3體系結(jié)構(gòu)CM3存儲器映射第2章Cortex-M3體系結(jié)構(gòu)主系統(tǒng)由以下部分構(gòu)成:四個驅(qū)動單元:─Cortex-M3內(nèi)核ICode總線(I-bus),DCode總線(D-bus),和系統(tǒng)總線(S-bus)─GP-DMA(通用DMA)四個被動單元─內(nèi)部SRAM─內(nèi)部閃存存儲器─FSMC─AHB到APB的橋(AHB2APBx),它連接所有的APB設備1.STM32總線結(jié)構(gòu)2.5.4STM32存儲器映射第2章Cortex-M3體系結(jié)構(gòu)可訪問的存儲器空間被分成8
個主要塊,每個塊為512MB。其他所有沒有分配給片上存儲器和外設的存儲器空間都是保留的地址空間(右圖中的陰影部分)片外Flash的起始地址:0x08000000;片內(nèi)SRAM的起始地址:0x20000000.2STM32存儲器映射第2章Cortex-M3體系結(jié)構(gòu)KEIL-MDK中的配置512K128K按芯片實際容量填寫,通常MDK會自動配置完成第2章Cortex-M3體系結(jié)構(gòu)2.5.5位綁定操作Cortex-M3存儲器空間中包括兩個位段區(qū):SRAM區(qū)的最低1MB空間和外設存儲區(qū)的最低1MB空間。這兩個位段區(qū)分別與兩個32M的位段別名區(qū)對應,位段區(qū)中的每一位映射到位段別名區(qū)中的一個字。通過對別名區(qū)中某個字的讀寫操作可以實現(xiàn)對位段區(qū)中某一位的讀寫操作。第2章Cortex-M3體系結(jié)構(gòu)第2章Cortex-M3體系結(jié)構(gòu)位段別名區(qū)中的字與位段區(qū)的位映射公式bit_word_addr=bit_band_base+(byte_offsetx32)+bit_number×4例如:SRAM位段區(qū)中地址為0x20000300的字節(jié)中的位2被映射到別名區(qū)中的地址為:0x22006008(=0x22000000+(0x300*32)+(2*4))的字。第2章Cortex-M3體系結(jié)構(gòu)對別名區(qū)中某個字進行寫操作,該字的第0位將影響位段區(qū)中對應的位。對別名區(qū)中某個字進行讀操作,若位段區(qū)中對應的位為0則讀的結(jié)果為0x00,若位段區(qū)中對應的位為1則讀的結(jié)果為0x01。對別名區(qū)的讀寫可以實現(xiàn)對位段區(qū)中每一位的原子操作,而且僅只需要一條指令即可實現(xiàn)。第2章Cortex-M3體系結(jié)構(gòu)2、ARMCortex-M3體系結(jié)構(gòu)2.1.CM3微處理器核結(jié)構(gòu)2.2處理器工作模式及狀態(tài)2.3.寄存器2.4總線接口2.5存儲器的組織與映射2.6.指令集2.7.流水線2.8.異常與中斷2.9存儲器保護單元MPU2.10STM32微控制器概述第2章Cortex-M3體系結(jié)構(gòu)2.6指令集第2章Cortex-M3體系結(jié)構(gòu)2.6.1指令集在過去,做ARM開發(fā)必須處理好兩個狀態(tài)。這兩個狀態(tài)是井水不犯河水的,它們是:32位的ARM狀態(tài)和16位的Thumb狀態(tài)。當處理器在ARM狀態(tài)下時,所有的指令均是32位的(哪怕只是個”NOP”指令),此時性能相當高。而在Thumb狀態(tài)下,所有的指令均是16位的,代碼密度提高了一倍。不過,thumb狀態(tài)下的指令功能只是ARM下的一個子集,結(jié)果可能需要更多條的指令去完成相同的工作,導致處理性能下降。伴隨著Thumb-2指令集的橫空出世,終于可以在單一的操作模式下搞定所有處理了,再也沒有來回切換的事來煩你了。事實上,Cortex-M3內(nèi)核干脆都不支持ARM指令,中斷也在Thumb態(tài)下處理(以前的ARM總是在ARM狀態(tài)下處理所有的中斷和異常)。這可不是小便宜,它使CM3在好幾個方面都比傳統(tǒng)的ARM處理器更先進:消滅了狀態(tài)切換的額外開銷,節(jié)省了
執(zhí)行時間和指令空間。不再需要把源代碼文件分成按ARM編譯的和Thumb編譯的,軟件開發(fā)管理大大減負。無需再反復地求證和測試:究竟該在何時何地切換到何種狀態(tài)下,我的程序才最有效率。開發(fā)軟件容易多了。40第2章Cortex-M3體系結(jié)構(gòu)2、ARMCortex-M3體系結(jié)構(gòu)2.1.CM3微處理器核結(jié)構(gòu)2.2處理器工作模式及狀態(tài)2.3.寄存器2.4總線接口2.5存儲器的組織與映射2.6.指令集2.7.流水線2.8.異常與中斷2.9存儲器保護單元MPU2.10STM32微控制器概述第2章Cortex-M3體系結(jié)構(gòu)帶分支預測的3級流水線Cortex-M3的流水線分為3級,分別為:取指譯碼執(zhí)行取指譯碼執(zhí)行從存儲器裝載一條指令識別將要被執(zhí)行的指令處理指令并將結(jié)果寫回寄存器在譯碼時進行分支預測,遇跳轉(zhuǎn)指令也不會打斷流水線PC值總是指向正在取指的指令第2章Cortex-M3體系結(jié)構(gòu)三級流水線結(jié)構(gòu)的指令執(zhí)行順序指令1指令2指令3指令4…………程序存儲器周期1周期2周期3周期4周期5周期6取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行周期2周期1周期3周期4處理器執(zhí)行一條指令的三個階段
在第1個周期,PC指向指令1,此時指令1進入三級流水線的取指階段。1第2章Cortex-M3體系結(jié)構(gòu)三級流水線結(jié)構(gòu)的指令執(zhí)行順序指令1指令2指令3指令4…………程序存儲器周期1周期2周期3周期4周期5周期6取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行周期2周期1周期3周期4處理器執(zhí)行一條指令的三個階段
在第2個周期,PC指向指令2,此時指令1進入三級流水線的譯碼階段,同時取出指令2。2第2章Cortex-M3體系結(jié)構(gòu)三級流水線結(jié)構(gòu)的指令執(zhí)行順序指令1指令2指令3指令4…………程序存儲器周期1周期2周期3周期4周期5周期6取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行周期2周期1周期3周期4處理器執(zhí)行一條指令的三個階段
在第3個周期,PC指向指令3,此時指令1進入三級流水線的執(zhí)行階段,指令2進入譯碼階段,取出指令3。3第2章Cortex-M3體系結(jié)構(gòu)三級流水線結(jié)構(gòu)的指令執(zhí)行順序指令1指令2指令3指令4…………程序存儲器周期1周期2周期3周期4周期5周期6取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行周期2周期1周期3周期4處理器執(zhí)行一條指令的三個階段
在第4個周期,指令1執(zhí)行完成,指令2和指令3流水線推進一級,同時開始指令4的取指處理。4第2章Cortex-M3體系結(jié)構(gòu)2、ARMCortex-M3體系結(jié)構(gòu)2.1.CM3微處理器核結(jié)構(gòu)2.2處理器工作模式及狀態(tài)2.3.寄存器2.4總線接口2.5存儲器的組織與映射2.6.指令集2.7.流水線2.8.異常與中斷2.9存儲器保護單元MPU2.10STM32微控制器概述第2章Cortex-M3體系結(jié)構(gòu)2.8異常與中斷中斷:請求信號來自于CM3內(nèi)核外面,來自片上外設或外擴的外設;異常:是由于CM3內(nèi)核的活動而產(chǎn)生的
(P52)只要正常的程序被暫時中止,處理器就進入異常模式。異常包括復位、系統(tǒng)故障、外設中斷等事件。Cortex-M3處理器中存在多種異常類型,系統(tǒng)復位、NMI(不可屏蔽中斷)、硬件故障、存儲器管理、總線故障、使用故障、SVCall(軟件中斷)、調(diào)試監(jiān)控和IRQ中斷等。IRQ中斷也分為CortexM3內(nèi)自帶的PendSV(系統(tǒng)服務請求)、SysTick(系統(tǒng)節(jié)拍定時器),和與芯片外設相關的外部中斷。1異常與中斷概念第2章Cortex-M3體系結(jié)構(gòu)異常類型表異常類型位置優(yōu)先級[1]描述-0-復位時載入向量表的第一項作為棧頂?shù)刂?。復?-3(最高)在上電和熱復位時調(diào)用。在執(zhí)行第一條指令時,優(yōu)先級將降為最低(也就是所謂的激活(中斷)的基礎級別)。這是異步的。不可屏蔽中斷(NMI)2-2不可停止,也不會被復位之外的任何異常搶占。這是異步的。NMI僅可由軟件通過NVIC中斷控制狀態(tài)寄存器來產(chǎn)生。硬故障3-1當故障由于優(yōu)先級或者是可配置的故障處理程序被禁能的原因而無法激活時,所有類型的故障都會以硬故障的方式激活。這是同步的。存儲器管理4可調(diào)整MPU不匹配,包括訪問沖突(accessviolation)和不匹配。這是同步的。這種異常的優(yōu)先級可被改變。總線故障5可調(diào)整預取指故障、存儲器訪問故障和其它地址/存儲器相關的故障。當為精確的總線故障時是同步的,為不精確的總線故障時是異步的。你可以使能或禁能這種故障。第2章Cortex-M3體系結(jié)構(gòu)異常類型表異常類型位置優(yōu)先級[1]描述使用故障6可調(diào)整使用故障,例如執(zhí)行未定義的指令或試圖進行非法的狀態(tài)轉(zhuǎn)變。這是同步的。-7-10-保留。SVCall11可調(diào)整使用SVC指令的系統(tǒng)服務調(diào)用。這是同步的。調(diào)試監(jiān)控器12可調(diào)整調(diào)試監(jiān)控器(當沒有暫停(Halt)時)。這是同步的,但僅在使能時有效。如果它的優(yōu)先級比當前激活的處理程序的優(yōu)先級更低,那么調(diào)試監(jiān)控器不能激活。-13-保留。PendSV14可調(diào)整系統(tǒng)服務的可掛起(pendable)請求。這是異步的且僅通過軟件掛起。SysTick15可調(diào)整系統(tǒng)節(jié)拍定時器已啟動(fired)。這是異步的。外部中斷≥16可調(diào)整中斷在ARMCortex-M3內(nèi)核之外發(fā)出且通過NVIC返回(區(qū)分優(yōu)先級)。這些都是異步的。
上表其實也是一張完整向量表。當異常產(chǎn)生后,處理器根據(jù)中斷號從在向量表中取出異常處理函數(shù)入口(函數(shù)指針)。
第2章Cortex-M3體系結(jié)構(gòu)3中斷、異常過程從向量表中讀SP更新PC加載流水線更新LR讀向量表硬件壓棧從向量表中讀SP更新PC加載流水線更新LR讀向量表硬件壓棧利用向量表讀出的位置更新PC。直到第一條指令開始執(zhí)行時,才能處理遲來異常。從向量表指向的位置加載指令。它與寄存器壓棧操作同時執(zhí)行。LR設置為EXC_RETURN,以便從異常中退出。在復位時,將SP更新為向量表中第1個字的值。讀存儲器中的向量表,地址為向量表基址+(異常號*4)。中斷函數(shù)入口。在所選的堆棧上將xPSR、PC、LR、R12、R3、R2、R1、R0壓棧注意:LR的值并非進入異常程序的地址注:以上步驟由硬件自動完成,僅需12個時鐘周期第2章Cortex-M3體系結(jié)構(gòu)4占先用戶程序中斷1中斷2優(yōu)先級3
優(yōu)先級2
中斷1中斷2壓棧壓棧出棧出棧在異常處理程序中,一個新的異常比當前的異常優(yōu)先級更高,處理器打斷當前的流程,響應優(yōu)先級更高的異常,此時產(chǎn)生中斷嵌套。第2章Cortex-M3體系結(jié)構(gòu)5末尾連鎖用戶程序中斷1中斷2優(yōu)先級3
優(yōu)先級2
中斷1中斷2如果此時中斷1已經(jīng)完成,不出棧也不壓棧,直接跳至中斷2程序壓棧出棧中斷1結(jié)束末尾連鎖是處理器用來加速中斷響應的一種機制。在結(jié)束ISR時,如果存在一個掛起中斷,其優(yōu)先級高于正在返回的ISR或線程,那么就會跳過出棧操作,轉(zhuǎn)而將控制權(quán)讓給新的ISR。第2章Cortex-M3體系結(jié)構(gòu)不用未尾連鎖的情況用戶程序中斷1中斷2優(yōu)先級3
優(yōu)先級2
中斷1壓棧1出棧1壓棧2出棧2中斷2此時壓棧2與出棧1的內(nèi)容完全相同,所以末尾連鎖時可省去。在中斷1完成后,緊跟著發(fā)生中斷2第2章Cortex-M3體系結(jié)構(gòu)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 話題討論:誠信在生活中的作用8篇
- 農(nóng)業(yè)種植區(qū)土地管理使用合同書
- 農(nóng)業(yè)生產(chǎn)技術(shù)與安全知識考點
- 農(nóng)村農(nóng)業(yè)機械使用與安全責任協(xié)議
- 食品行業(yè)食品安全法規(guī)與實踐練習題
- 機械工程行業(yè)實習表現(xiàn)證明(6篇)
- 在課堂上的一次特殊經(jīng)歷記事作文13篇范文
- 英語閱讀理解的跨文化交際知識點集萃
- 2025年心理學考試試題及答案
- 2025年醫(yī)學影像學基礎知識考試試卷及答案
- 陜西省專業(yè)技術(shù)人員繼續(xù)教育2025公需課《黨的二十屆三中全會精神解讀與高質(zhì)量發(fā)展》20學時題庫及答案
- 重慶萬州區(qū)社區(qū)工作者招聘筆試真題2024
- 郴州市2025年中考第二次??細v史試卷
- 酒店項目規(guī)劃設計方案(模板)
- 2025名著導讀《鋼鐵是怎樣煉成的》閱讀習題(含答案)
- 2025-2030中國冷熱交換器行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 美容院和干洗店合同協(xié)議
- 前程無憂測評題庫
- ICU經(jīng)口氣管插管患者口腔黏膜壓力性損傷預防的最佳證據(jù)總結(jié) - 學習與臨床應用
- 2025急性心梗診療指南
- 【閔行區(qū)人民法院】上海市閔行區(qū)勞動人事爭議調(diào)解仲裁與審判白皮書(2023-2024年)
評論
0/150
提交評論