2 1-arm7體系結(jié)構(gòu)-內(nèi)部寄存器_第1頁
2 1-arm7體系結(jié)構(gòu)-內(nèi)部寄存器_第2頁
2 1-arm7體系結(jié)構(gòu)-內(nèi)部寄存器_第3頁
2 1-arm7體系結(jié)構(gòu)-內(nèi)部寄存器_第4頁
2 1-arm7體系結(jié)構(gòu)-內(nèi)部寄存器_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2.1 ARM7(ARM7TDMI)處理器內(nèi)核體系結(jié)構(gòu)1. ARM7內(nèi)核體系結(jié)構(gòu)2. 三級(jí)流水線3. 處理器工作模式4. 處理器狀態(tài)5. ARM7處理器工作模式6. ARM7內(nèi)部寄存器7. ARM7運(yùn)行狀態(tài)標(biāo)志寄存器CPSR1.ARM7內(nèi)核體系結(jié)構(gòu)ARM處理器為精簡(jiǎn)指令集(RISC)計(jì)算機(jī)中央處理器(CPU)。RISC: RISC CPU結(jié)構(gòu)簡(jiǎn)單,使得ARM內(nèi)核非常小, 功耗非常低,所以幾乎壟斷了類似手機(jī)的嵌入式應(yīng)用領(lǐng)域.CISC: PC兼容機(jī)中的x86系列CPU是復(fù)雜指令集(CISC)計(jì)算機(jī)CPU,指令復(fù)雜,硬件結(jié)構(gòu)復(fù)雜,功耗高.“ARM核”并不是芯片;ARM核與其它部件如RAM、ROM、片

2、內(nèi)外設(shè)組合在一起才能構(gòu)成現(xiàn)實(shí)的“片上計(jì)算機(jī)系統(tǒng)”(SOC)芯片。MemoryMemoryMicro- processorMixed Signal/AnalogStandard CellsMemoryI/O Cells高性能CPU/MCU(ARMMIPS/PowerPC/8051等) IP(知識(shí)庫)是SoC設(shè)計(jì)的一個(gè)元件ARM7SOC芯片片上計(jì)算機(jī)系統(tǒng)總線結(jié)構(gòu)ARM處理器內(nèi)核特點(diǎn):大的、統(tǒng)一的寄存器文件;只有裝載/保存指令可以對(duì)存儲(chǔ)器操作,其他指令能不直接對(duì)存儲(chǔ)器進(jìn)行操作; 簡(jiǎn)單的尋址方式;統(tǒng)一固定長度的指令域,簡(jiǎn)化了指令的譯碼。每條數(shù)據(jù)處理指令都可以對(duì)算術(shù)邏輯單元和移位器進(jìn)行控制;地址自動(dòng)增加

3、和減少尋址模式,優(yōu)化程序循環(huán);多寄存器裝載和存儲(chǔ)指令實(shí)現(xiàn)最大數(shù)據(jù)吞吐量;所有指令可帶條件執(zhí)行, 代碼執(zhí)行效率高。ARM7處理器是ARM通用32位微處理器的成員之一, 壟斷了早期數(shù)字移動(dòng)電話終端70%市場(chǎng)份額,其出色性能表現(xiàn)在: 高的指令吞吐量; 出色的實(shí)時(shí)中斷響應(yīng); 小的、高性價(jià)比的處理器宏單元。ARM7TDMInM4:0 nMREQ SEQ LOCKA31:0MCLKnWAIT時(shí)鐘ISYNC BUSENBIGENDD31:0存儲(chǔ)器接口配置DIN31:0 DOUT31:0nENOUTnRWnIRQnFIQ中斷MAS1:0nRESETnTRANS ABORTnOPC nCPI CPACPBAPE

4、存儲(chǔ)器管理總線控制DBE協(xié)處理器接口VDDVSS電源內(nèi)核信號(hào)ARM7TDMI內(nèi)核控制信號(hào) ARM7TDMI地址總線ARM7TDMI內(nèi)核數(shù)據(jù)總線TAP控制器JTAG 接口方框圖Embedded ICE邏輯BUSSplitterARM7TDMIABEA31:0IncremeP CBIGEND MCLK nWAITnRW MAS1:0ISYNC nIRQ nFIQ nRESET ABORT nTRANSnMREQ SEQ LOCK nM4:0nOPC nCPI CPA CPBP32 位 ALUDBE內(nèi)核D31:0寫數(shù)據(jù)寄存器讀數(shù)據(jù)寄存器解碼站指令解壓縮寄存器 BankABu sBBu s桶移位器乘法

5、器指令解碼及控制 邏輯A L UBu s地址寄存器地址自增器ntereC UpdatARM7TDMIJTAG 和非 AMBA 信號(hào)AMBA總線接口 帶Cache的ARM7TDMIARM720T同ARM710T,但支持WinCE ARM740T 8K 統(tǒng)一的 cache 內(nèi)存管理單元 寫緩沖ARM710T 8K 統(tǒng)一的 cache 完整的內(nèi)存管理單元(MMU),支持虛擬地址和存儲(chǔ)器保護(hù) 寫緩沖地址地址數(shù)據(jù)ARM7xxTCacheAMBA接口寫緩沖數(shù)據(jù)寫數(shù)據(jù)讀MMU控制邏輯CP15ARM7TDMI內(nèi)核ARM7 CPU核 內(nèi)部結(jié)構(gòu)A31:0控制總線DBG輸入/出nRESETnIRQ/nFIQ nRD

6、nWR時(shí)鐘CLK32位ALUDO31:0DI31:0D31:0寫數(shù)據(jù)寄存器指令管線讀數(shù)據(jù)寄存器Thumb指令譯碼器寄存器組31*32位寄存器(6個(gè)狀態(tài)寄存器)指令譯碼和控制邏輯掃描調(diào)試控制地址寄存器桶形移位器乘法器地址增加器主存儲(chǔ)器及片上IO外設(shè)2.三級(jí)流水線ARM7處理器使用流水線來增加處理器指令流的速度。這樣可使幾個(gè)操作同時(shí)進(jìn)行,并使處理和存儲(chǔ)器系統(tǒng)連續(xù)操作,ARM7TDMI的流水線分3級(jí):取指譯碼執(zhí)行ARM核能提供: 0.9MIPS/MHz的指令執(zhí)行速度,至少是復(fù)雜指令集CPU的3倍。正常操作過程中,任一時(shí)刻有下面三個(gè)工位在工作:(1) 執(zhí)行一條指令;(2) 對(duì)下一條指令進(jìn)行譯碼;(3)

7、 將第三條指令從存儲(chǔ)器中取出。三描述線工位設(shè)當(dāng)前時(shí)刻,程序計(jì)數(shù)器PC=8008(PC)= 8008C指令取指從存儲(chǔ)器中取出C指令(PC-4)= 8004B指令譯碼對(duì)B指令進(jìn)行譯碼(PC-8) = 8000A指令執(zhí)行執(zhí)行A指令 CLK-1 CLK CLK+1 CLK+2 CLK+3 8000 指令A(yù) 800 8008 指令C取指譯碼執(zhí)行 800c 指令D 8010 指令EARM 32位指令 三級(jí)流水線示意圖8014指令存儲(chǔ)器指令F取指譯碼取指執(zhí)行譯碼取指4 指令B取指譯碼執(zhí)行執(zhí)行譯碼執(zhí)行時(shí)鐘節(jié)拍ARM7TDMI指令流水線 為增加處理器指令流的速度,ARM7 系列使用3級(jí)流水線。允許多個(gè)操作同時(shí)處

8、理,而非順序執(zhí)行。PC指向正被取指的指令,而非正在執(zhí)行的指令。ARMThumb從存儲(chǔ)器中讀取指令PCPCPC - 42PC-解碼指令中用到的寄存器寄存器讀(從寄存器Bank)移位及ALU操作寄存器寫(到寄存器Bank )PC - 8PC - 4ExecuteDecodeFetch。ARM7TDMI指令流水線周期123456操作ADD SUB MOV AND ORR EOR CMPRSB 最佳流水線該例中用6個(gè)時(shí)鐘周期執(zhí)行了6條指令所有的操作都在寄存器中(單周期執(zhí)行) 指令周期數(shù) (CPI) = 1FetchDecodeExecuteFetchDecodeExecuteFetchDecodeEx

9、ecuteFetchDecodeExecute FetchDecodeExecute FetchDecodeExecuteFetchDecodeFetch3.存儲(chǔ)器訪問1)ARM7TDMI處理器使用了馮諾依曼結(jié)構(gòu),指令和數(shù)據(jù)共用一條32位總線。計(jì)算機(jī)結(jié)構(gòu)說明:“馮諾依曼” 結(jié)構(gòu):把代碼作為一種特殊的數(shù)據(jù)來操作, 指令總線和數(shù)據(jù)總線及其存儲(chǔ)區(qū)域是統(tǒng)一的;“哈佛”結(jié)構(gòu):指令總線和數(shù)據(jù)總線及其存儲(chǔ)區(qū)是分開、獨(dú)立的。 地址 馮諾依曼結(jié)構(gòu)數(shù)據(jù)CPU PC主存儲(chǔ)器MOVr8,#8地址數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)CPU PC地址程序存儲(chǔ)器MOV指令r8,#8哈佛結(jié)構(gòu)2)只有“裝載LDR、存儲(chǔ)STR、交換SWAP”三種指令

10、可以對(duì)存儲(chǔ)器中的數(shù)據(jù)進(jìn)行訪問。3)支持3種數(shù)據(jù)存儲(chǔ)格式:0x8008*字節(jié)(半字(8位16位32位)字(word)intunigned int0x8004字(半字(half word)short intunsigned short int0x8002例:字節(jié)(byte)charunsigned char0x8000LDRSTRH SWAPBR0,R1;R2,R1;R0,R1;1121234WB3WB2WB1WB0HB1HB0BYTE(字節(jié))4.處理器狀態(tài)1) ARM7TDMI處理器結(jié)構(gòu)包含兩套指令集:一套32位ARM指令集一套16位Thumb指令集2) ARM7TDMI處理器有兩種操作狀態(tài):A

11、RM狀態(tài):32位,執(zhí)行字(32b)方式ARM指令Thumb狀態(tài):16位,執(zhí)行半字(16b)方式Thumb指令3) 兩種操作狀態(tài)可通過“BX” 指令相互切換。使用”BX”指令 切換 工作狀態(tài)的例程:注意:兩個(gè)狀態(tài)之間的切換不影響處理器的 工作模式和 寄存器內(nèi)容地址最低位為0,表示切換到ARM狀態(tài)地址最低位為1,表示切換到Thumb狀態(tài)跳轉(zhuǎn)地址標(biāo)號(hào);從Arm狀態(tài)切換到Thumb狀態(tài)CODE32L32 LDRR0,=L16+1 BXR0;從Thumb狀態(tài)切換到ARM狀態(tài)CODE16L16 LDRR0,=L32BXR0啟動(dòng)調(diào)試器演示狀態(tài)切換代碼程序5.ARM7處理器工作模式ARM體系結(jié)構(gòu)支持7種處理器

12、模式:系統(tǒng)模式,用戶模式管理模式、快中斷模式、中斷模式中止模式未定義模式7中工作模式可以更好的支持操作系統(tǒng),提高工作效率;ARM7TDMI完全支持這七種模式。處理器模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)與用戶模式類似,但具有可以直接切換到其它模式等快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)代碼系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存儲(chǔ)器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器的軟件仿

13、真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式用理(svc)操斷(irq)用中斷(fiq)通支統(tǒng)(sys)用模式處理器模式說明備注(usr)用戶正常程序工作模式不能直接切換到其它模式與用戶模式類似,但具有可于支持操作系統(tǒng)的系統(tǒng)(sys)系任務(wù)1.除等用戶模式外式;(fiq)快中斷持高速2.數(shù)AR據(jù)M傳內(nèi)輸部及寄存FI器Q異和常一響些應(yīng)時(shí)片進(jìn)內(nèi)入外此設(shè)模在式快(irq)中斷道硬處理件設(shè)計(jì)上(可選)只允許模式下訪(svc)管理IRQ異常響應(yīng)時(shí)進(jìn)入此模式中于問通用;中斷處理3.作系模式可以系自統(tǒng)由復(fù)的位和切軟換件到中其斷他響應(yīng)各時(shí)進(jìn)入此模式(abt)中止管種統(tǒng)處保理器代模碼式;護(hù)4.用戶模式不能直接切換到其他模式

14、,未定義(und)于支持虛擬內(nèi)存和/中止(abt)進(jìn)在入A模DM式I沒。有大用處或存可儲(chǔ)器通保過護(hù)SWI指令支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式(und)未定義系統(tǒng)(sys)用戶(usr)用戶和系統(tǒng)模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式用于支1.持這操兩作系種統(tǒng)模的是任程序與用正戶常模式工類作似,模但式具有,可都以直不接切(sys)系統(tǒng)務(wù)能等 由異常進(jìn)入,使 用換完到全其它相模同式等存器組。2.系統(tǒng)模式是模式;支持高3速.用數(shù)據(jù)戶傳模輸及式通是道處受限模式;快中斷(fiq)FIQ異常響應(yīng)時(shí)進(jìn)入此模式理4.操作系統(tǒng)在系統(tǒng)模式下訪問用戶模式(

15、irq)用的于通寄用存中斷器處比理 較方便 ;IRQ異常響應(yīng)時(shí)進(jìn)入此模式中斷5.操作系統(tǒng)的系任統(tǒng)務(wù)復(fù)位可和以軟件使中用斷響系應(yīng)統(tǒng)時(shí)進(jìn)模入此模(svc)管理操作系統(tǒng)保護(hù)代碼式訪問一些受控的資式源;用于支持虛擬內(nèi)存和/或存儲(chǔ)器保護(hù)中止(abt)在ARM7TDMI沒有大用處支持硬件協(xié)處理器的軟件仿真未定義(und)未定義指令異常響應(yīng)時(shí)進(jìn)入此模式系統(tǒng)(sys)用戶(usr)用戶和系統(tǒng)模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)的任務(wù)等與用戶模式類似,但具有可以直接切換到其它模式等快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此

16、模式中斷(irq)用于通這用中五斷種處理工作模式稱I常響應(yīng)模時(shí)式進(jìn)入,此即模式管理(svc)正常程序流程斷后操作式系,統(tǒng)保所護(hù)有代碼異常模式的一種工作模都系是統(tǒng)軟模件式中斷。響應(yīng)時(shí)進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存儲(chǔ)器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式6. 內(nèi)部寄存器在ARM7TDMI處理器內(nèi)部有37個(gè)用戶可見的寄存器。在不同的工作模式和處理器狀態(tài)下,程序員可以訪問的寄存器也不盡相同。右圖是在調(diào)試軟件AXD1.2上打開的(Views)寄存器窗口。ARM狀態(tài)各模式下的寄存器寄存器類別寄存器在匯編中的名稱各模式下實(shí)

17、際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(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)寄存器CPSRCPSRS

18、PSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqSPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0ARM狀態(tài)各模式下的寄存器各模式下實(shí)際訪問的寄存器寄存器類別寄存器在匯編中的名稱用戶系統(tǒng)管理中止未定義中斷快中斷R0(a1)R0R1(a2)R

19、1R2R2(a3)R3R3(a4)R4R4(v1)R5R5(v2)共37個(gè)R寄6(v3存)器,分為兩大類:R6通用寄R7存器3和1個(gè)R通7(v用4)32位寄存器;程序計(jì)R8R8_fiqR8(v5)數(shù)器R9R9_fiq6個(gè)R狀9(S態(tài)B,v寄6)存器。R10R10_fiqR10(SL,v7)R11R11_fiqR11(FP,v8)R12R12_fiqR12(IP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR13(SP)R14R14_svcR14_abtR14_undR14_irqR14_fiqR14(LR)R15R15(PC)CPSRCPSR狀態(tài)寄存器SPSR_

20、abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqSPSR無無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用戶無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系統(tǒng)SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4

21、R3R2R1R0未定義SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中斷SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中斷ARM狀態(tài)各模式下可以訪問的寄存器寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fi

22、qR9(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)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR1

23、0R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0一般的通用寄存器各模式下實(shí)際訪問的寄存器寄存器類別寄存器在匯編中的名稱用戶系統(tǒng)管理中止未定義中斷快中斷R0R0(a1)R1R1(a2)R2R2(a3)寄存器R3(Ra4)0R13:R31.是R保4(v1存)數(shù)據(jù)或地址值的R4R5完全通R5(用v2) 的寄存器;R6通用寄2.通R6用(v3的)寄存器,不會(huì)被R7R7(v4)存器和程序體計(jì)系結(jié)R8(構(gòu)v5) 作為特殊用途,R8R8_fiq數(shù)器3.可R9(以SB,v作6)為指令的源操作R9R9_fiq或目R1的0(S操L,v7作)數(shù)。R10R10_fiqR11R11_fiqR11(FP

24、,v8)R12R12_fiqR12(IP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR13(SP)R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15CPSRCPSR狀態(tài)寄存器SPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0一般的通用

25、寄存器寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷存器R0通用存寄器空存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R11R.2R(a03)R7:未分組的寄R2;R3(a4)R32R.4對(duì)(v1)于任何處理器模式,R4RR75使(v2)用同一32位物理寄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_fiq

26、R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8一般的通用寄存器各模式下實(shí)際訪問的寄存器寄存器類別寄存器在匯編中的名稱用戶系統(tǒng)管理中止未定義中斷快中斷R0(a1)R0R1(a2)

27、R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6通用寄存寄器和存器RR7(8v4)R14為分組寄R7程序計(jì)R8R8_fiqR8(v5)存器。不同處理器模式對(duì)應(yīng)數(shù)器R9R9_fiqR9(SB,v6)不同物理寄存器空間。R10R10_fiqR10(SL,v7)R11R11_fiqR11(FP,v8)R12R12_fiqR12(IP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR13(SP)R14R14_svcR14_abtR14_undR14_irqR14_fiqR14(LR)R15(PC)R15CPSRCPSR狀態(tài)寄存器SPSR

28、無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8一般的通用寄存器寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶寄存器系統(tǒng)R8管R理12有兩中止個(gè)分未組定的義物理中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)寄存器。R1R2(a3)一個(gè)用于除FIQ模式R2之外的所有寄R3(a4)存器模式,另一個(gè)用于R3 FIQ模式。R4(v1)發(fā)生FIQ中斷后,可R4以加速FIQ的R5(v2)處理速度。R5R6(v3)R6R7(v4)R7R8(v5)R8R8_f

29、iqR9(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)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abt

30、R13_svcR13一般的通用寄存器各模式下實(shí)際訪問的寄存器寄存器類別寄存器在匯編中的名稱用戶系統(tǒng)管理中止未定義中斷快中斷R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6通用寄存器和程序計(jì)數(shù)器R7(v4)寄存器R13、R1R47 分別有6個(gè)分組R8(v5)R8的物理寄存器R。9R8_fiqR9(SB,v6)R9_fiq一個(gè)用于用R戶10 和系統(tǒng)模式,其余R10(SL,v7)R10_fiq5個(gè)分別用于5R種11 異常模式。R11(FP,v8)R11_fiqR12(IP)R12R12_fiqR13R13_svcR13_abtR13_u

31、ndR13_irqR13_fiqR13(SP)R14R14_svcR14_abtR14_undR14_irqR14_fiqR14(LR)R15(PC)R15CPSRCPSR狀態(tài)寄存器SPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆棧指針寄存器R13(SP)慣上都這樣使用;寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)1.寄存器R13常作R5 為堆棧指針SP;R6(v3)2.在ARM指令集R6當(dāng)中,沒

32、有以特殊方R7(v4)式使用R13的指令R或7其它功能,只是習(xí)R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)3.在ThumbR指10 令集中存在使用R13的R10_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)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_

33、fiq鏈接寄存器R14(LR)各模式下實(shí)際訪問的寄存器寄存器類別寄存器在匯編中的名稱用戶系統(tǒng)管理中止未定義中斷快中斷R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R14為鏈接寄存器(R4LR),在結(jié)構(gòu)上有兩R5(v2)R5個(gè)特殊功能:R6(v3)R6在每種模式下,R1R47版本用于保存子程序通用寄存器和程序計(jì)數(shù)器R7(v4)返回地址;R8(v5)R8R8_fiq當(dāng)發(fā)生異常時(shí),R9將R14對(duì)應(yīng)的異常模式R版9_fiqR9(SB,v6)R10(SL,v7)常返回R1地0R10_fiq本設(shè)置址。R11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR

34、13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15CPSRCPSR狀態(tài)寄存器SPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR14R14寄存器與子程序調(diào)用操作流程1. 程序A執(zhí)行過程中調(diào)用程序B;2. 程序跳轉(zhuǎn)至標(biāo)號(hào)Lable,執(zhí)行程序B。同時(shí)硬件將“BL Lable”指令的下一條指令所在地址存入R14;3. 程序B執(zhí)行最后,將R14寄存器的內(nèi)容放入PC,返回程序A;程序A程序BLable地址AR14(地址

35、A)?MOVPC,LRBLLable?R14寄存器與異常發(fā)生異常發(fā)生時(shí),程序要跳轉(zhuǎn)至異常服務(wù)程序,對(duì)返回地址由硬件完成備份工作。不同中斷異常壓入地址偏移不盡相同, 地址要作適當(dāng)修改, 才能返回到中斷下一條指令。R14寄存器注意要點(diǎn)當(dāng)發(fā)生異常嵌套時(shí),這些異常之間可能會(huì)發(fā)生沖突。例:如果用戶在用戶模式下執(zhí)行程序時(shí)發(fā)生了IRQ中斷,用戶模式寄存器不會(huì)被破壞。但是如果允許在IRQ模式下的中斷處理程序重新使能IRQ中斷,并且發(fā)生了嵌套的IRQ中斷時(shí),外部中斷處理程序保存在R14_irq中的任何值都將被嵌套中斷的返回地址所覆蓋。R14_irqR14寄存器注意要點(diǎn)用戶模式下的程序IRQ模式下的程序A3. I

36、RQ服務(wù)程2.發(fā)生IRQ中斷,序A執(zhí)行完畢,硬件將某個(gè)地將R14_irq寄存址存入IRQ模式1器.執(zhí)的行內(nèi)用容戶減模去式下的R14_irq寄下某的個(gè)程常序量;后存地址A存器,用戶模入PC,返回之式下的R14沒有前被中斷的程被破壞;序;未被破壞地址AR14areturnAB.XR14_irq地址AreturnR14寄存器注意要點(diǎn)用戶模式下的程序IRQ模式下的程序AIRQ模式下的程序B3. IRQ服務(wù)程256.發(fā)在硬生件程I序RQB返中返回?cái)嗷兀?序. A如執(zhí)果行在完IR 畢Q,到硬地址件解保序?qū)QA某存辦,個(gè)在法然地是后確保R14將處理R1程4_序irq中寄打存R址在對(duì)1返存4應(yīng)_回入版irqI

37、到本寄RQ用在存模戶發(fā)器式生中斷器開1.執(zhí)I的R行Q內(nèi)用中容戶斷減模,去式并中下模時(shí)式,的不原R下再1來被4保_保中存irq存斷任寄何有意某下且再的次程發(fā)序生后;I存RQ地址A地址B的存值器程返(,序回將用地R1戶,址4入模發(fā)將棧),或入中斷PC,或返者回調(diào)之被式生切錯(cuò)覆下?lián)Q誤蓋的到R,其1造將4它沒成不處有理器模式前用被子中程斷序的;程被錯(cuò)能正誤;確壞;返回;序;未被破壞被破壞地址BR14areturnaAB.Xreturn的A嵌套B義的.者X下。程序計(jì)數(shù)器R15(PC)寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R

38、0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)寄存器R15為程序計(jì)R數(shù)7 器(PC),它指向R8(v5)正在取指的地址。R可8以認(rèn)為它是一個(gè)通用R寄8_fiqR9(SB,v6)存器,但是對(duì)于它R的9使用有許多與指令相R關(guān)9_fiqR10(SL,v7)的限制或特殊情況R1。0如果R15使用的方式R超10_fiqR11(FP,v8)出了這些限制,那R1么1結(jié)果將是不可預(yù)測(cè)的R1。1_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R1

39、4_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq讀R15的限制正常讀取R15的值 = 處理器正在取指的地址即當(dāng)前正在執(zhí)行指令的地址加上8個(gè)字節(jié)(三級(jí)流水,超前兩條ARM指令)。ARM指令是以字為單位,R15寄存器的最低兩位總是為0。地址程序代碼流水線狀態(tài)8000LDRR0,PC正在執(zhí)行8004?正在譯碼8008?正在取指1程序狀態(tài)寄存器CPSR寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程

40、序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)寄存器CPSR為程序R狀7態(tài)寄存器,在異常R8(v5)模式中,另外一個(gè)R寄8存器“程序狀態(tài)保存R寄8_fiqR9(SB,v6)存器(SPSR)”可R9以被訪問。每種異常都R有9_fiqR10(SL,v7)R1R10_fiqR11(FP,v8)自己的SPSR,在因R常而進(jìn)入異常R1時(shí)1_fiqR12(IP)它保存CPSR的當(dāng)前R12值,異常退出時(shí)可通過R12_fiqR13(SP)它恢R1復(fù)3CPSR。R13詳_sv細(xì)c描R13述_ab參t看R133_u.n3d小R節(jié)13_。irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqThumb狀態(tài)寄存器Thumb狀態(tài)寄存器集是ARM狀態(tài)集的子集程序員可以直接訪問的寄存器為: 8個(gè)通用寄存器R0R7; 程序計(jì)數(shù)器(PC); 堆棧指針(SP); 鏈接寄存器(LR); 有條件訪問程序狀態(tài)寄存器( CPSR)。Thumb狀態(tài)各模式下的寄存器注意:括號(hào)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論