




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1.ARM簡介2.ARM7TDMI3.ARM的模塊、內(nèi)核和功能框圖4.ARM處理器狀態(tài)5.ARM處理器模式 6.ARM內(nèi)部寄存器 7.當前程序狀態(tài)寄存器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統(tǒng)ARM公司簡介 1991年ARM公司成立于英國劍橋,主要出售芯片設(shè)計技術(shù)的授權(quán)。ARM是Advanced RISC Machines的縮寫,它是一家微處理器行業(yè)的知名企業(yè),該企業(yè)設(shè)計了大量高性能、廉價、耗能低的RISC (精簡指令集處理器。 ARM公司的特點是只設(shè)計芯片,而不生產(chǎn)。它將技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和EM廠商,并提供服務(wù)。 ARM,既可以認為是一個公司的名字
2、,也可以認為是對一類微處理器的通稱,還可以認為是一種技術(shù)的名字。ARM公司簡介將技術(shù)授權(quán)給其它芯片廠商形成各具特色的ARM芯片. . . 嵌入式微處理器的體系結(jié)構(gòu)可以采用馮.諾依曼體系或哈佛體系結(jié)構(gòu);指令系統(tǒng)可以選用精簡指令系統(tǒng)Reduced Instruction Set Computer,RISC和復(fù)雜指令系統(tǒng)CISCComplex Instruction Set Computer,CISC)。RISC計算機在通道中只包含最有用的指令,確保數(shù)據(jù)通道快速執(zhí)行每一條指令,從而提高了執(zhí)行效率并使CPU硬件結(jié)構(gòu)設(shè)計變得更為簡單。RISC結(jié)構(gòu)特性 RISC是精簡指令集計算機的縮寫,其目標是設(shè)計出在高
3、時鐘頻率下單周期執(zhí)行,簡單而有效的指令集。ARM內(nèi)核采用RISC體系結(jié)構(gòu),因此具有RISC的結(jié)構(gòu)特點:具有大量的通用存儲器; 31個通用32位寄存器獨特的裝載/保管load-store構(gòu)造; 數(shù)據(jù)處理操作只針對寄存器的內(nèi)容,而不直接對存儲器進行操作;因為訪問存儲器指令所需要的時間比較長,在指令系統(tǒng)中要盡量減少這類指令,所以RISC指令中只保留不可再少的LOAD/STORE兩種存儲器訪問指令。簡單的尋址模式;種類少且簡單。8種 立即尋址、寄存器尋址、寄存器移位尋址、寄存器間接尋址、多寄存器尋址、基址尋址、堆棧尋址、相對尋址統(tǒng)一和固定長度的指令格式。簡化了指令的譯碼,譯碼簡化ARM體系結(jié)構(gòu) 為了使
4、ARM能夠更好地滿足嵌入式應(yīng)用的需要,ARM體系結(jié)構(gòu)還有以下特點:每條數(shù)據(jù)處理指令可同時包含算術(shù)邏輯單元ALU的運算和移位處理,實現(xiàn)ALU和移位器的最大利用;使用地址自增和自減的尋址方式優(yōu)化程序循環(huán);裝載/保存指令對數(shù)據(jù)的批量傳輸,實現(xiàn)最大數(shù)據(jù)吞吐量;16個寄存器,LDMIA R0!,R0-R9 R0地址數(shù)據(jù)-R0-R9大多數(shù)指令的條件執(zhí)行,實現(xiàn)最快速的代碼執(zhí)行。 可以減少指令的數(shù)目,改善程序的執(zhí)行效率和跳高代碼密度常用ARM處理器系列 ARM公司開發(fā)了很多系列的ARM處理器核,目前最新的系列是Cortex,而ARM6核以及更早的系列已經(jīng)很罕見了。當前應(yīng)用比較多的ARM處理器核系列有:ARM7
5、ARM9ARM10EXscaleARM11CortexARM9E1.ARM簡介2.ARM7TDMI3.ARM的模塊、內(nèi)核和功能框圖4.ARM處理器狀態(tài)5.ARM處理器模式 6.ARM內(nèi)部寄存器 7.當前程序狀態(tài)寄存器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統(tǒng)ARM7TDMI-S簡介 ARM7TDMI是基于ARM體系結(jié)構(gòu)V4版本的低端ARM核。 其彌補了ARM6很難在低于5V電壓下穩(wěn)定工作的不足,還增加了后綴所對應(yīng)的功能:支持高密度16位的Thumb指令集;支持片上調(diào)試;支持64位乘法;支持EmbededICE觀察硬件;ARM7TDMI 的可綜合synthesizable版
6、本軟核),對應(yīng)用工程師來說其編程模型與ARM7TDMI 一致; 留意:“ARM核并非芯片,ARM核與其它部件如RAM、ROM、片內(nèi)外設(shè)組合在一起才能構(gòu)成現(xiàn)實的芯片。 Thumb 指令可以看作是 ARM 指令壓縮形式的子集,是針對代碼密度的問題而提出的,它具有 16 位的代碼密度但是它不如ARM指令的效率高 .Thumb 不是一個完整的體系結(jié)構(gòu),不能指望處理只執(zhí)行Thumb 指令而不支持 ARM 指令集.因此,Thumb 指令只需要支持通用功能,必要時可以借助于完善的 ARM 指令集,比如,所有異常自動進入 ARM 形狀. 在一般的情況下,Thumb指令與ARM指令的時間效率和空間效率關(guān)系為:
7、Thumb代碼所需的存儲空間約為ARM代碼的60%70% Thumb代碼使用的指令數(shù)比ARM代碼多約30%40% 若使用32位的存儲器,ARM代碼比Thumb代碼快約40% 若使用16位的存儲器,Thumb代碼比ARM代碼快約40%50% 與ARM代碼相比較,使用Thumb代碼,存儲器的功耗會降低約30% 顯然,ARM指令集和Thumb指令集各有其優(yōu)點,若對系統(tǒng)的性能有較高要求,應(yīng)使用32位的存儲系統(tǒng)和ARM指令集,若對系統(tǒng)的成本及功耗有較高要求,則應(yīng)使用16位的存儲系統(tǒng)和Thumb指令集。當然,若兩者結(jié)合使用,充分發(fā)揮其各自的優(yōu)點,會取得更好的效果。存儲器的字與半字 從偶數(shù)地址開始的連續(xù)2個
8、字節(jié)構(gòu)成一個半字; 以能被4整除的地址開始的連續(xù)4個字節(jié)構(gòu)成一個字; ARM指令的長度剛好是一個字,Thumb指令的長度剛好是一個半字。存儲器的存儲方式方式半字對齊字對齊地址0 x40020 x40040 x40040 x4008特征Bit0=0其他位為任意值Bit1=0,Bit0=0其他位為任意值 如果一個數(shù)據(jù)是從偶地址開始的連續(xù)存儲,那么它就是半字對齊,否則就是非半字對齊; 如果一個數(shù)據(jù)是以能被4整除的地址開始的連續(xù)存儲,那么它就是字對齊,否則就是非字對齊。三級流水線 ARM處理器使用流水線來增加處理器指令流的速度,這樣可使幾個操作同時進行,并使處理和存儲器系統(tǒng)連續(xù)操作,能提供0.9MIP
9、S/MHz的指令執(zhí)行速度。 ARM7TDMI的流水線分3級,分別為:取指譯碼執(zhí)行取指譯碼執(zhí)行處理指令并將結(jié)果寫回寄存器識別將要被執(zhí)行的指令從寄存器裝載一條指令 正常操作過程中,在執(zhí)行一條指令的同時對下一條(第二條)指令進行譯碼,并將第三條指令從存儲器中取出。 在ARM狀態(tài)下,流水線上各指令的地址為: 在Thumb狀態(tài)下,流水線上各指令的地址為:PCPC-4PC-8PCPC-2PC-4三級流水線結(jié)構(gòu)的指令執(zhí)行順序PC指令1指令2指令3指令4程序存儲器PC-4PC-8PC+4周期1周期2周期3周期4周期5周期6取指 譯碼 執(zhí)行取指 譯碼 執(zhí)行取指 譯碼 執(zhí)行取指 譯碼 執(zhí)行周期周期2周期周期1周期
10、周期3周期周期4 在第1個周期,PC指向指令1,此時指令1進入三級流水線的取指階段。1 在第2個周期,PC指向指令2,此時指令1進入三級流水線的譯碼階段,同時取出指令2。2 在第3個周期,PC指向指令3,此時指令1進入三級流水線的執(zhí)行階段,指令2進入譯碼階段,取出指令3。3 在第4個周期,指令1執(zhí)行完成,指令2和指令3流水線推進一級,同時開始指令4的取指處理。4處理器執(zhí)行一條指令的三個階段 執(zhí)行ADD PC,PC,#4指令后,PC的值為多少?思考題ADD PC,PC,#40 x40000 x40040 x40080 x400C地址指令PC取指譯碼執(zhí)行PCPC-4PC-8ARM7的3級流水線AD
11、D 程序計數(shù)器R15(PC)總是指向“正在取指的指令,而不是指向“正在執(zhí)行的指令或“正在譯碼的指令。 一般來說,人們習慣性約定將“正在執(zhí)行的指令作為參考點,那么:PC值當前程序執(zhí)行位置8 注:ARM狀態(tài)時,每條指令為4字節(jié)長。 PC指向0 x4000地址,取指ADD指令。 PC指向0 x4004地址,譯碼ADD指令。 PC指向0 x4008地址,執(zhí)行ADD指令,所以指令執(zhí)行的結(jié)果為: PC=PC+40 x400840 x400C。1.ARM簡介2.ARM7TDMI3.ARM的模塊、內(nèi)核和功能框圖4.ARM處理器狀態(tài)5.ARM處理器模式 6.ARM內(nèi)部寄存器 7.當前程序狀態(tài)寄存器 8.ARM體
12、系的異常、中斷及其向量表 9.ARM體系的存儲系統(tǒng)CPU掃描鏈1掃描鏈1數(shù)據(jù)總線數(shù)據(jù)總線掃描鏈1掃描鏈2協(xié)處理器信號接口EmbeddedICE-RTTAP 控制器EmbeddedICE-RT宏單元DBGTCKENDBGTMSDBGnTRSTDBGTDIDBGTDORDATA31:0WDATA31:0ADDR31:0TRANS1:0PROT1:0SIZE1:0WRITELOCKDBGRNG(0)DBGRNG(1)DBGEXT(1)DBGEXT(0)CPU協(xié)處理接口信號EmbedICE硬件仿真功能模塊片上調(diào)試系統(tǒng)讀寫總線一種不同于主微處理器的處理器,它執(zhí)行附加的功能或協(xié)助主微處理器工作,因為主處理
13、器速度或者功能不夠衍生出的輔助處理器ARM7TDMI-S處理器LOCKCLKCLKENnIRQnFIQnRESETCFGBIGENDDBGRQDMOREDBGINSTRVAILDDBGBREAKDBGACKDBGnEXECDBGEXT1DBGEXT0DBGENDBGCOMMTXDBGCOMMRXDBGRNG0DBGRNG1DBGTCKENDBGTMSDBGTDIDBGnTRSTDBGTDODBGnTDOENADDR31:0WDATA31:0RDATA31:0ABORTWRITESIZE1:0PROT1:0TRANS1:0CPnTRANSCPnOPCCPnMREQCPSEQCPTBITCPnIC
14、PACPB同步的掃描調(diào)試訪問接口存儲器接口存儲器管理接口協(xié)處理器接口時鐘中斷總線控制仲裁調(diào)試1.ARM簡介2.ARM7TDMI3.ARM的模塊、內(nèi)核和功能框圖4.ARM處理器狀態(tài)5.ARM處理器模式 6.ARM內(nèi)部寄存器 7.當前程序狀態(tài)寄存器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統(tǒng)處理器狀態(tài) ARM7TDMI處理器內(nèi)核包含2套指令系統(tǒng),分別為ARM指令集和Thumb指令,并且各自對應(yīng)1種處理器狀態(tài)(CPSR中的控制位T反應(yīng)處理器正在操作的狀態(tài),即哪種指令正在執(zhí)行):ARM狀態(tài):32位,處理器執(zhí)行字方式的ARM指令,處理器默認為此狀態(tài);Thumb狀態(tài):16位,處理器執(zhí)行
15、半字方式的Thumb指令。留意:兩個狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容。狀態(tài)切換的一個例子地址最低位為0,表示切換到ARM狀態(tài) 使用BX指令將ARM內(nèi)核的操作狀態(tài)在ARM狀態(tài)和Thumb狀態(tài)之間進行切換。ARM指令集Thumb指令集CODE32LDRR0, =Lable+1BX R0CODE16Lable MOV R1, #12CODE16LDR R0, =LableBX R0CODE32LableMOV R1, #10地址最低位為1,表示切換到Thumb狀態(tài)跳轉(zhuǎn)地址標號執(zhí)行完BX指令,處理器切換到Thumb狀態(tài),開始執(zhí)行Thumb指令程序代碼指令集關(guān)系 從ARM狀態(tài)切換到Thumb
16、狀態(tài)的程序代碼如下: 從Thumb狀態(tài)切換到ARM狀態(tài)的程序代碼如下P72):執(zhí)行完BX指令,處理器切換到ARM狀態(tài),開始執(zhí)行ARM指令A(yù)RMThumbARMResetBXBXARM中斷服務(wù)程序正常程序事件ARMARMISR1ISR2ISRn狀態(tài)切換過程異常發(fā)生進入退出 系統(tǒng)復(fù)位,自動切換到ARM狀態(tài)。1 通過BX和BLX指令改變當前處理器模式,使之從ARM狀態(tài)切換到Thumb狀態(tài)。2 在Thumb狀態(tài)下,正常程序執(zhí)行時產(chǎn)生中斷異常。3 處理器進入中斷異常,自動的將模式切換到ARM狀態(tài)。4 異常處理完畢,返回正常程序,此時處理器自動的將模式切換到Thumb狀態(tài)。5 再次通過BX和BLX指令改變
17、當前處理器模式,使之從Thumb狀態(tài)切換到ARM狀態(tài)。6 程序在正常運行的過程中,復(fù)位事件產(chǎn)生,導(dǎo)致系統(tǒng)復(fù)位。1.ARM簡介2.ARM7TDMI3.ARM的模塊、內(nèi)核和功能框圖4.ARM處理器狀態(tài)5.ARM處理器模式 6.ARM內(nèi)部寄存器 7.當前程序狀態(tài)寄存器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統(tǒng)2.5 ARM處理器模式 簡介 ARM體系結(jié)構(gòu)支持7種處理器模式,分別為:用戶模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統(tǒng)模式。這樣的好處是可以更好的支持操作系統(tǒng)并提高工作效率。ARM7TDMI完全支持這七種模式。 除用戶模式外,其它模式均為特權(quán)模式。A
18、RM內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計上只允許或者可選為只允許特權(quán)模式下訪問。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。處理器模式處理器模式說明說明備注備注 用戶(usr)正常程序運行的工作模式不能直接從用戶模式切換到其它模式特權(quán)模式系統(tǒng)(sys)用于支持操作系統(tǒng)的特權(quán)任務(wù)等與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)異常模式快中斷(fiq)快速中斷請求處理只有在FIQ異常響應(yīng)時,才進入此模式中斷(irq)中斷請求處理只有在IRQ異常響應(yīng)時,才進入此模式管理(svc)供操作系統(tǒng)使用的一種保護模式只有在系統(tǒng)復(fù)位和軟件中斷響應(yīng)時,才進入此模式中止(abt)用于
19、虛擬內(nèi)存和/或存儲器保護在ARM7內(nèi)核中沒有多大用處未定義(und)支持軟件仿真的硬件協(xié)處理器只有在未定義指令異常響應(yīng)時,才進入此模式 處理器模式 這兩種模式都不能由異常進入,想要進入必須修改CPSR,而且它們使用完全相同的寄存器組。系統(tǒng)模式是特權(quán)模式,不受用戶模式的限制。操作系統(tǒng)在該模式下訪問用戶模式的寄存器就比較方便,而且操作系統(tǒng)的一些特權(quán)任務(wù)可以使用這個模式訪問一些受控的資源。 這五種模式稱為異常模式。它們除了可以通過程序切換進入外,也可以由特定的異常進入。當特定的異常出現(xiàn)時,處理器進入相應(yīng)的模式。每種異常模式都有一些獨立的寄存器,以避免異常退出時用戶模式的狀態(tài)不可靠。何時進入異常模式,
20、具體規(guī)定如下:處理器復(fù)位之后進入管理模式,操作系統(tǒng)內(nèi)核通常處于管理模式;當處理器訪問存儲器失敗時,進入數(shù)據(jù)訪問中止模式;當處理器遇到?jīng)]有定義或不支持的指令時,進入未定義模式;中斷模式與快速中斷模式分別對ARM處理器2種不同級別的中斷作出響應(yīng)。1.ARM簡介2.ARM7TDMI3.ARM的模塊、內(nèi)核和功能框圖4.ARM處理器狀態(tài)5.ARM處理器模式 6.ARM內(nèi)部寄存器 7.當前程序狀態(tài)寄存器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統(tǒng)簡介 在ARM處理器內(nèi)部共有37個用戶可訪問的寄存器,分別為31個通用32位寄存器和6個狀態(tài)寄存器。 ARM處理器共有7種不同的處理器模式,每
21、種模式都有一組相應(yīng)的寄存器組,最多可以18個活動的寄存器。ARM狀態(tài)各模式下的寄存器寄存器寄存器類別類別寄存器在匯寄存器在匯編中的名稱編中的名稱各模式下實際訪問的寄存器各模式下實際訪問的寄存器用戶用戶系統(tǒng)系統(tǒng)管理管理中止中止未定義未定義中斷中斷快中斷快中斷通通用用寄寄存存器器和和程程序序計計數(shù)數(shù)器器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_f
22、iqR13(SP)R13R13_scvR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR13_irqR14_fiqR15(PC)R15狀態(tài)狀態(tài)寄存器寄存器CPSRCPSRSPSRSPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq 所有的37個寄存器,分成兩大類:31個通用32位寄存器;6個狀態(tài)寄存器。ARM狀態(tài)各模式下可以訪問的寄存器寄存器寄存器類別類別寄存器在匯寄存器在匯編中的名稱編中的名稱各模式下實際訪問的寄存器各模式下實際訪問的寄存器用戶用戶系統(tǒng)系統(tǒng)管理管理中止中止未定義未定義中斷中斷快中
23、斷快中斷通通用用寄寄存存器器和和程程序序計計數(shù)數(shù)器器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)狀態(tài)寄存器寄存器CPSRCPSRSPSR
24、SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq未分組的通用寄存器寄存器寄存器類別類別寄存器在匯寄存器在匯編中的名稱編中的名稱各模式下實際訪問的寄存器各模式下實際訪問的寄存器用戶用戶系統(tǒng)系統(tǒng)管理管理中止中止未定義未定義中斷中斷快中斷快中斷通通用用寄寄存存器器和和程程序序計計數(shù)數(shù)器器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R
25、12R12_fiqR13(SP)R13R13_scvR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR13_irqR14_fiqR15(PC)R15狀態(tài)狀態(tài)寄存器寄存器CPSRCPSRSPSRSPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq寄存器R0R7為未分組的通用寄存器,它們在任何處理器模式都對應(yīng)于相同的32位物理寄存器。第一類分組的通用寄存器寄存器R8R12有兩個分組的物理寄存器。一個用于除FIQ模式之外的所有寄存器模式,另一個用于FIQ模式。在發(fā)生FIQ中斷后,處理器不必為保護寄存器而
26、浪費時間,從而加速了FIQ的處理速度。第二類分組的通用寄存器寄存器R13、R14分別有6個分組的物理寄存器。1個用于用戶和系統(tǒng)模式,其余5個分別用于5種異常模式。寄存器R13通常作為堆棧指針SP),用于保存待使用的寄存器的內(nèi)容。寄存器R14稱為鏈接寄存器LR),在結(jié)構(gòu)上有兩個特殊功能:當使用BL指令調(diào)用子程序時,返回地址將自動存入R14中;當發(fā)生異常時,將R14對應(yīng)的異常模式版本設(shè)置為異常返回地址有些異常有一個小的固定偏移量)。程序計數(shù)器寄存器R15稱為程序計數(shù)器PC),它指向正在“取指的指令。狀態(tài)寄存器寄存器CPSR為當前程序狀態(tài)寄存器,在異常模式中,另外一個寄存器“程序狀態(tài)保存寄存器SPS
27、R)”可以被訪問。每種異常都有自己的SPSR,在進入異常時它保存CPSR的當前值,異常退出時可通過它恢復(fù)CPSR。1.ARM簡介2.ARM7TDMI3.ARM的模塊、內(nèi)核和功能框圖4.ARM處理器狀態(tài)5.ARM處理器模式 6.ARM內(nèi)部寄存器 7.當前程序狀態(tài)寄存器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統(tǒng) 簡介 ARM內(nèi)核包含1個CPSR和5個僅供異常處理程序使用的SPSR。CPSR反映當前處理器的狀態(tài),其包含:4個條件代碼標志(負標志N、零標志Z、進位標志C和溢出標志V );2個中斷禁止位(IRQ禁止與FIQ禁止);5個對當前處理器模式進行編碼的位(M4:0);1個用
28、于指示當前執(zhí)行指令的位(ARM指令還是Thumb指令)。 程序狀態(tài)寄存器的格式NZCV IM0M1M2M3M4TF. . .31 30 29 28 27 26 8 7 6 5 4 3 2 1 0條件代碼標志保管控制位溢出標志進位或借位擴展零負或小于IRQ禁止FIQ禁止狀態(tài)位模式位NZCVIM0M1M2M3M4TF 條件代碼標志各標志位的含義如下:負標志N:運算結(jié)果的第31位值,記錄標志設(shè)置操作的結(jié)果;零標志Z:如果標志設(shè)置的操作為0,則置位;進位標志C:記錄無符號加法溢出,減法無借位,循環(huán)移位;溢出標志V:記錄標志設(shè)置操作的有符號溢出。 警告:絕對不要強制改變CPSR寄存器中的控制位T。如果這
29、樣做,處理器將進入一個無法預(yù)測的狀態(tài)。M4:0模式模式可見的可見的Thumb狀態(tài)寄存器狀態(tài)寄存器可見的可見的ARM狀態(tài)寄存器狀態(tài)寄存器10000用戶R0R7, SP, LR, PC, CPSRR0R14, PC, CPSR 10001快速中斷R0R7, SP_fiq, LR_fiq, PC,CPSR, SPSR_fiq R0R7, R8_fiqR14_fiq, PC,CPSR, SPSR_fiq 10010中斷R0R7, SP_irq, LR_irq, PC,CPSR, SPSR_fiq R0R12, R13_irq, R14_irq, PC,CPSR, SPSR_irq 10011管理R0R
30、7, SP_svc, LR_svc, PC,CPSR, SPSR_svc R0R12, R13_svc, R14_svc, PC,CPSR, SPSR_svc 10111中止R0R7, SP_abt, LR_abt, PC,CPSR, SPSR_abt R0R12, R13_abt, R14_abt, PC,CPSR, SPSR_abt 11011未定義R0R7, SP_und, LR_und, PC,CPSR, SPSR_und R0R12, R13_und, R14_und, PC,CPSR, SPSR_und11111系統(tǒng)R0R7, SP, LR, PC,CPSR R0R14, PC,
31、CPSR 控制位1、中斷禁止控制位I和F;2、處理器狀態(tài)位T;3、處理器模式位M0M4。當控制位I置位時,IRQ中斷被禁止;當控制位F置位時,F(xiàn)IQ中斷被禁止。當控制位T置位時,處理器正在Thumb狀態(tài)下運行;當控制位T清零時,處理器正在ARM狀態(tài)下運行。 留意:不是所有模式位的組合都定義了有效的處理器模式,如果將非法值寫入M4:0中,處理器將進入一個無法恢復(fù)的模式。 保留位 CPSR中的保留位被保留將來使用。當改變CPSR標志和控制位時,請確認沒有改變這些保留位。 另外,請確保您的程序不依賴于包含特定值的保留位,因為將來的處理器可能會將這些位設(shè)置為1或者0。1.ARM簡介2.ARM7TDMI
32、3.ARM的模塊、內(nèi)核和功能框圖4.ARM處理器狀態(tài)5.ARM處理器模式 6.ARM內(nèi)部寄存器 7.當前程序狀態(tài)寄存器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統(tǒng) 異常簡介 只要正常的程序流被暫時中止,處理器就進入異常模式。例如在用戶模式下執(zhí)行程序時,當外設(shè)向處理器內(nèi)核發(fā)出中斷請求導(dǎo)致內(nèi)核從用戶模式切換到異常中斷模式。 如果同時發(fā)生兩個或更多異常,那么將按照固定的順序來處理異常。 異常入口/出口匯總 下表所示為異常返回地址值以及退出異常處理程序所推薦使用的指令。 異?;蛉肟诋惓;蛉肟诜祷刂噶罘祷刂噶罘祷氐刂贩祷氐刂稴WIMOVS PC,R14_svcR14未定義的指令MOV
33、S PC,R14_undR14預(yù)取中止SUBS PC,R14_abt,#4R144快速中斷SUBS PC,R14_fiq,#4R144中斷SUBS PC,R14_irq,#4R144數(shù)據(jù)中止SUBS PC,R14_abt,#8R148復(fù)位無 留意:“MOVS PC,R14_svc是指在管理模式執(zhí)行MOVS PC,R14 指令,同樣類似的指令還有“MOVS PC,R14_und”、“SUBS PC,R14_abt,#4等。地址地址異常異常進入時的模式進入時的模式進入時進入時I的狀態(tài)的狀態(tài)進入時進入時F的狀態(tài)的狀態(tài)0 x00000000復(fù)位管理禁止禁止0 x00000004未定義指令未定義IF0
34、x00000008軟件中斷異常管理禁止F0 x0000000C中止(預(yù)?。┲兄笽F0 x00000010中止(數(shù)據(jù))中止IF0 x00000014保留保留0 x00000018IRQ中斷禁止F0 x0000001CFIQ快速中斷禁止禁止 異常向量表注:表中的I和F表示不對該位有影響,保留原來的值。 優(yōu)先級優(yōu)先級異常異常1復(fù)位2數(shù)據(jù)中止3FIQ4IRQ5預(yù)取指中止6未定義指令中止6軟件中斷異常 異常優(yōu)先級 當多個異常同時發(fā)生時,一個固定的優(yōu)先級決定系統(tǒng)處理它們的順序。 優(yōu)先級由高到低 異常的進入當一個異常導(dǎo)致模式切換時,內(nèi)核自動的做如下處理: 將異常處理程序的返回地址加固定的偏移量保存到相應(yīng)異常
35、模式下的LR; 將CPSR的當前值保存到相應(yīng)異常模式下的SPSR; 設(shè)置CPSR為相應(yīng)的異常模式; 設(shè)置PC為相應(yīng)異常處理程序的中斷入口向量地址,跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序執(zhí)行;用戶模式SPSR異常模式CPSRR15(PC)R14(LR)R0R13BackAddrJumpAddrUserModeExceptionMode程序代碼正常運行在用戶模式下。 異常的進入當一個異常導(dǎo)致模式切換時,內(nèi)核自動的做如下處理: 將異常處理程序的返回地址加固定的偏移量保存到相應(yīng)異常模式下的LR; 將CPSR的當前值保存到相應(yīng)異常模式下的SPSR; 設(shè)置CPSR為相應(yīng)的異常模式; 設(shè)置PC為相應(yīng)異常處理程序的中斷入口向量地址,跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序執(zhí)行; 異常的退出 當異常處理程序結(jié)束時,異常處理程序必須: 返回到發(fā)生異常中斷的指令的下一條指令處執(zhí)行,即就是說將LR中的值減去偏移量后移入PC; 將SPSR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度私人房產(chǎn)全款買賣合同(帶家具家電)
- 二零二五年度兒童樂園加盟經(jīng)營協(xié)議
- 2025年度門面房租賃與物業(yè)管理責任合同
- 2025年度跨境貿(mào)易合同終止的多種國際法律適用情形
- 人才獵頭服務(wù)與委托協(xié)議書
- 股權(quán)轉(zhuǎn)讓協(xié)議承債
- 智慧城市基礎(chǔ)設(shè)施升級改造合同
- 網(wǎng)絡(luò)教育培訓(xùn)平臺開發(fā)協(xié)議
- 個人生活用品買賣合同
- 數(shù)學課本中的幾何之旅教案設(shè)計
- 【9語一?!?024年蚌埠市懷遠縣中考一模語文試題
- 《智能制造技術(shù)基礎(chǔ)》課件-第1章 智能制造技術(shù)概述
- 國網(wǎng)基建安全管理課件
- 10.1.2事件的關(guān)系和運算(教學課件)高一數(shù)學(人教A版2019必修第二冊)
- 傳統(tǒng)與現(xiàn)代滋補品的營銷變革
- DB37T 5123-2018 預(yù)拌混凝土及砂漿企業(yè)試驗室管理規(guī)范
- 陳元方年十一時課件
- 2024解析:第九章固體壓強-講核心(解析版)
- 《公路養(yǎng)護安全培訓(xùn)》課件
- 宏觀經(jīng)濟管理學
- 高校實訓(xùn)室安全管理培訓(xùn)課件
評論
0/150
提交評論