嵌入式課件1概要_第1頁
嵌入式課件1概要_第2頁
嵌入式課件1概要_第3頁
嵌入式課件1概要_第4頁
嵌入式課件1概要_第5頁
已閱讀5頁,還剩90頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第1章 ARM體系結構 ARM7TDMI-S1.1 簡介1.1.1 ARM ARM即Advanced RISC Machines的縮寫。 ARM公司是知識產權(IP)供應商,成立于1990。 ARM公司本身不生產芯片,靠轉讓設計許可,由合作伙伴公司來生產各具特色的芯片。 1.1 簡介1.1.1 ARM 全球眾多合作伙伴保證供應。ARM作為32位嵌入式RISC微處理器業界的領先供應商,商業模式的強大之處在于它在世界范圍有超過100個合作伙伴包括半導體工業的著名公司,從而保證了大量的開發工具和豐富的第三方資源,它們共同保證了基于ARM處理器核的設計可以很快投入市場。1.1 簡介1.1.1 ARM

2、功耗低、成本低、功能強; 16/32位雙指令集; 全球眾多合作伙伴保證供應。1.1 簡介1.1.2 ARM的RISC結構特性 基于精簡指令集計算機(RISC)原理 傳統的CISC指令集計算機隨著計算機的發展引入了各種各樣的復雜指令,使得指令集和為實現這些指令的計算機體系結構越來越復雜,已經不堪重負。 經過大量的研究和分析,發現在CISC的指令集中,各種指令的使用頻度相差懸殊。1.1 簡介1.1.2 ARM的RISC結構特性 基于精簡指令集計算機(RISC)原理 大概有20%的指令被反復使用,使用量約占整個程序的80%; 而有80%左右的指令則很少使用,其使用量約占整個程序的20%。這就是所謂的

3、20%80%規律。1.1 簡介1.1.2 ARM的RISC結構特性RISC指令集和相關的譯碼機制比復雜指令集計算機(CISC)的設計更簡單。這種簡單性得到了: 高指令吞吐率; 出色的實時中斷響應; 體積小、性價比高的處理器宏單元。1.1 簡介1.1.2 ARM的RISC結構特性 中央控制器沒有采用微程序的方式。采用了硬接線PLA的方式。 減少復雜功能的指令,選用使用頻度最高的指令; 簡化處理器的結構,減少處理器的集成度; 采用32位定長指令。除了單機器周期執行1條指令外,每條指令具有多種操作功能,提高了指令使用效率。1.1 簡介1.1.2 ARM的RISC結構特性 采用流水線結構,使每一條指令

4、平均在一個機器周期內完成,以提高處理器的速度。 采用多寄存器的結構,使指令的操作盡可能在寄存器之間進行。 采用Load/Store結構,即只有Load/Store(加載存儲)指令可與存儲器打交道,減少訪問存儲器的頻度,節約指令執行時間。 為了進一步提高指令和數據的存取速度,有的還增加指令快存ICache和數據快存DCache。1.1 簡介1.1.2 ARM的RISC結構特性例:下列敘述中,不屬于RISC特點的是( )A. 采用多周期指令,從而實現一條指令的多種功能B. 采用大量寄存器,數據處理指令只對寄存器的內容進行操作C. 采用3級、5級或6級流水線,提高指令執行的并行程度D. 指令規整、對

5、稱、簡單,基本尋址方式少1.1 簡介1.1.3 ARM7TDMI T -支持16位壓縮指令集Thumb; D -支持片上Debug; M -內嵌硬件乘法器; I-嵌入式ICE,支持片上斷點和調試點。1.1 簡介1.1.3 ARM7TDMI T: 新型ARM體系結構在32位指令集的基礎上又定義了16位的Thumb指令集,可以使程序存儲器更小。Thumb指令集比通常的8位和16位CISC/RISC處理器具有更好的代碼密度,而芯片面積只增加6。1.1 簡介1.1.3 ARM7TDMI I: 由于ICERT邏輯的支持,便于通過JTAG來仿真調試ARM體系結構芯片,從而可以省去價格昂貴的在線仿真器。 在

6、處理器核中還集成了嵌入式跟蹤宏單元(ETM), ETM可以用于監控內部總線,實時跟蹤指令和數據的執行。1.1 簡介1.1.4 ARM的流水線結構1條指令的執行可分為若干個階段: 取指,從存儲器中取出指令; 譯碼,指令譯碼; 取操作數,假定從寄存器組中取操作數;1.1 簡介1.1.4 ARM的流水線結構1條指令的執行可分為若干個階段: 執行運算; 存儲器訪問,操作數與存儲器有關; 結果寫回寄存器。各個階段的操作相對都是獨立的。因此,采用流水線的重疊技術可以大大提高系統性能。1.1 簡介1.1.4 ARM的流水線結構 ARM體系結構的單周期3級流水線取指譯碼執行取指譯碼執行取指譯碼執行時間1231

7、.1 簡介1.1.4 ARM的流水線結構 ARM體系結構的單周期3級流水線例:設指令由取指、分析、執行3個子部件完成,每個子部件的工作周期為t,采用常規標量單流水線處理機。若連續執行10條指令,則共需要多少時間?1.1 簡介1.1.5 ARM靈活和方便的接口 ARM體系結構具有協處理器接口,這樣既可以使基本的ARM處理器內核盡可能小,又可以方便地擴充各種功能。ARM允許接16個協處理器。 ARM處理器核具有片上總線AMBA(Advanced Micro controller Bus Architecture)。1.1 簡介1.1.5 ARM靈活和方便的接口 AMBA定義了3組總線: 先進高性能

8、總線AHB(Advanced High performance Bus); 先進系統總線ASB(Advanced System Bus); 先進外圍總線APB(Advanced Peripheral Bus)。1.1 簡介1.1.5 ARM靈活和方便的接口 通過AMBA可以方便地擴充各種處理器及I/O,這樣,可以把DSP、其他處理器和I/O接口(如UART、定時器和接口等)集成在一塊芯片中。1.1 簡介1.1.5 低電壓低功耗的設計低電壓低功耗的設計lCMOSCMOS電路的功耗關系:電路的功耗關系:Pc = (1/2)Pc = (1/2)f fV VDDDD2 2AgAgCLgCLg 式中,式

9、中,f f為時鐘頻率;為時鐘頻率;V VDDDD為工作電源電壓;為工作電源電壓;AgAg是邏輯門在是邏輯門在1 1個時鐘周期內翻轉的次數個時鐘周期內翻轉的次數( (通常通常為為2)2);CLgCLg為門的負載電容。為門的負載電容。1.1 簡介1.1.5 低電壓低功耗的設計低電壓低功耗的設計為降低功耗所采取的措施為降低功耗所采取的措施 降低電源電壓,可工作在降低電源電壓,可工作在3 30V0V以下。以下。 減少門的翻轉次數,當某個功能電路不減少門的翻轉次數,當某個功能電路不需要時,禁止門翻轉。需要時,禁止門翻轉。 減少門的數目,即降低芯片的集成度。減少門的數目,即降低芯片的集成度。 降低時鐘頻率

10、(但也會損失系統的性降低時鐘頻率(但也會損失系統的性能)能)。1.2 ARM7TDMI-S的模塊和內核框圖 見書1.3 體系結構直接支持的數據類型 Byte 字節,8位;(A31A0)32位地址均有效. Halfword 半字,16位(半字必須與2字節邊界對準)。(A31A1,0)偶數地址,A0為0 ; Word 字,32位(字必須與4字節邊界對準)。(A31A2,0,0)地址是4的倍數,A1,A0均為0. 1.4 處理器工作狀態 ARM:這種狀態下執行32位字對準的ARM指令;取指時程序計數器的PC.1和PC.0均為0 Thumb:這種狀態下執行半字對準的16位Thumb指令。取指時程序計數

11、器的PC.0為0,而使用PC.1位選擇另一個半字。1.4 處理器工作狀態 ARM處理器可以在兩種工作狀態之間切換。ARM和Thumb之間狀態的切換不影響處理器的模式或寄存器的內容。1.4 處理器工作狀態工作狀態切換 進入Thumb狀態。當操作數寄存器的狀態位(位0)為1時,執行BX指令進入Thumb狀態。如果處理器在Thumb狀態進入異常,則當異常處理(IRQ、FIQ、Undef、Abort和SWI)返回時,自動轉換到Thumb狀態。1.4 處理器工作狀態工作狀態切換 進入ARM狀態。當操作數寄存器的狀態位(位0)為0時,執行BX指令進入ARM狀態。處理器進行異常處理(IRQ、FIQ、Rese

12、t、Undef、Abort和SWI)時,把PC放入異常模式鏈接寄存器中,從異常向量地址開始執行也可以進入ARM狀態。1.4 處理器工作狀態工作狀態切換舉例;從ARM狀態轉變為Thumb狀態LDR R0, =Lable + 1BXR0;從Thumb狀態轉變為ARM狀態LDR R0, =LableBXR01.5 處理器模式處理器處理器 模模 式式說說 明明用戶用戶user 正常程序執行模式正常程序執行模式FIOFIOfiq 支持高速數據傳送或通道處理支持高速數據傳送或通道處理IRQIRQirq 用于通用中斷處理用于通用中斷處理管理管理svc 操作系統保護模式操作系統保護模式 系統復位后系統復位后

13、的缺省模式的缺省模式中止中止abt 實現虛擬存儲器和或實現虛擬存儲器和或 存儲器保護存儲器保護 未定義未定義und 支持硬件協處理器的軟件仿真支持硬件協處理器的軟件仿真系統系統sys 運行特權操作系統任務運行特權操作系統任務異異常常模模式式特特權權模模式式1.5 處理器模式 模式的改變 在軟件控制下可以改變模式; 外部中斷或異常處理也可以引起模式發生改變。1.5 處理器模式 大多數應用程序在用戶模式下執行。 當處理器工作在用戶模式時,正在執行的程序不能訪問某些被保護的系統資源; 用戶模式下不能改變模式,除非異常(Exception)發生。這允許操作系統來控制系統資源的使用。1.5 處理器模式

14、除用戶模式外的其他6種模式稱為特權模式。 特權模式服務于中斷或異常; 特權模式可以訪問被保護的資源; 特權模式下可以改變模式。1.5 處理器模式 系統模式。 不能由任何其他模式進入該模式; 它與用戶模式擁有完全相同的寄存器。然而它是特權模式,不受用戶模式的限制。 它供需要訪問系統資源的操作系統任務使用,但希望避免使用與異常模式有關的附加寄存器。避免使用附加寄存器保證了當任何異常出現時,都不會使任務的狀態不可靠。1.5 處理器模式 除用戶模式和系統模式之外的5種模式稱作異常模式。 當特定的異常出現時,進入相應的模式。 每種模式都有某些附加的寄存器,以避免異常出現時用戶模式的狀態不可靠。1.6 內

15、部寄存器 ARM7TDMI處理器總共有37個寄存器: 31個通用寄存器,包括程序計數器PC。這些寄存器是32位的。 6個狀態寄存器。這些寄存器也是32位的,但只使用了其中的12位。 37個寄存器不能被同時看到,處理器狀態和工作模式決定哪些寄存器編程者可見。SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_svcCPRSCPRSCPRSCPRSCPRSCPRSCPRSR15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R14_fiqR14_irqR14_undR14_abtR14_svcR14R14R13_fiqR13_irq

16、R13_undR13_abtR13_svcR13R13R12_fiqR12R12R12R12R12R12R11_fiqR11R11R11R11R11R11R10_fiqR10R10R10R10R10R10R9_fiqR9R9R9R9R9R9R8_fiqR8R8R8R8R8R8R7R7R7R7R7R7R7R6R6R6R6R6R6R6R5R5R5R5R5R5R5R4R4R4R4R4R4R4R3R3R3R3R3R3R3R2R2R2R2R2R2R2R1R1R1R1R1R1R1R0R0R0R0R0R0R0快中斷模式快中斷模式中斷模式中斷模式未定義模式未定義模式中止模式中止模式管理模式管理模式系統模式系統

17、模式用戶模式用戶模式異常模式異常模式特權模式特權模式*白色白色表明用戶或系統模式使用的一般寄存器已被異常模式特定的另一寄存器所替代表明用戶或系統模式使用的一般寄存器已被異常模式特定的另一寄存器所替代 1.6 內部寄存器通用寄存器 通用寄存器(R0R15)可分成3類: 不分組寄存器R0R7 分組寄存器R8R14 程序計數器R151.6 內部寄存器不分組寄存器R0R7 R0R7是不分組寄存器,在所有的處理器模式下,它們每一個都訪問同樣的32位物理寄存器。它們是真正的通用寄存器,沒有體系結構所隱含的特殊用途。1.6 內部寄存器分組寄存器R8R14 R8R14是分組寄存器。它們每一個訪問的物理寄存器取

18、決于當前的處理器模式。每種處理器模式有專用的分組寄存器用于快速異常處理。 若要訪問特定的物理寄存器而不依賴于當前的處理器模式,則要使用規定的名字。1.6 內部寄存器 寄存器R8R12各有兩組物理寄存器。一組為FIQ模式,另一組為除FIQ以外的其他模式。獨立的FIQ模式允許快速中斷處理。 第1組訪問R8_fiqR12_fiq 第2組訪問R8_usrR12_usr。1.6 內部寄存器 寄存器R13、R14各有6個分組的物理寄存器。1個用于用戶模式和系統模式,而其他5個分別用于5種異常模式。訪問時需要指定其模式名。名字形式如下: R13_ R14_其中,可以從usr、svc、abt、und、irq和

19、fiq 6種模式中選取一個。 1.6 內部寄存器 寄存器R13通常用作堆棧指針,稱作SP。 每種異常模式都有自己的分組R13。 通常R13應當被初始化成指向異常模式分配的堆棧。 在異常處理程序的入口將用到的其他寄存器的值保存到堆棧中。返回時,重新將這些值加載到寄存器。這種異常處理方法保證了異常出現后不會導致執行程序的狀態不可靠。1.6 內部寄存器 寄存器R14用作子程序鏈接寄存器,也稱為鏈接寄存器LR(Link Register)。 當執行帶鏈接轉移(BL)指令時, R14得到R15的拷貝。 在其他情況下,將R14當做通用寄存器。 類似地,當中斷或異常出現時,或中斷或異常程序執行BL指令時,相

20、應的分組寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用來保存R15的返回值。 1.6 內部寄存器應用提示: FIQ模式有7個分組的寄存器R8R14映射為R8_fiq R14_fiq。在ARM狀態下,FIQ處理中使用R8R14沒必要保存。 User、IRQ、Supervisor、Abort和Undefined模式每一種都包含兩個分組的寄存器R13和R14的映射,允許每種模式都有自己的堆棧和鏈接寄存器。 1.6 內部寄存器程序計數器R15 寄存器R15用作程序計數器PC。在ARM狀態,位1:0為0,位31:2保存PC。在Thumb狀態下,位0為0,位31:1

21、保存PC。程序計數器用于特殊場合。1.6 內部寄存器程序計數器R15 讀程序計數器。指令讀出的R15的值是指令地址加上8個字節。由于ARM指令始終是字對準的,所以讀出結果值的位1:0總是0(在Thumb狀態下,情況有所變化)。讀PC主要用于快速地對臨近的指令和數據進行位置無關尋址,包括程序中的位置無關轉移。1.6 內部寄存器程序計數器R15 寫程序計數器。寫R15的通常結果是將寫到R15中的值作為指令地址,并以此地址發生轉移。由于ARM指令要求字對準,通常希望寫到R15中值的位1:0=0b00。1.6 內部寄存器 程序狀態寄存器CPSR Current Program Status Regis

22、ter 所有模式共享 程序狀態保存寄存器SPSR 每種異常模式都有一個程序狀態保存寄存器SPSR (Saved Program Status Register)。當異常出現時,SPSR用于保存CPSR的狀態。1.6 內部寄存器 ARM7TDMI的37個寄存器 R0R7 一組 R8R12 二組 R13R14 六組 R15 一組 CPSR R15 一組 SPSR 五組8 + 52 + 26 + 1 + 1 + 5 = 371.7 程序狀態寄存器M0M1M2M3M4TFIDNM(RAZ)VCZN31 30 29 28 8 7 6 5 4 3 2 1 0條件碼狀態標志位條件碼狀態標志位中斷禁止控制位中

23、斷禁止控制位Thumb控制位控制位模式控制位模式控制位保留位,用保留位,用做擴展做擴展 1.7 程序狀態寄存器條件碼標志 N、Z、C、V(Negative、Zero、Carry、overflow)位稱作條件碼標志(Condition Code Flag),經常以標志(Flag)引用。CPSR中的條件碼標志可由大多數指令檢測以決定指令是否執行。1.7 程序狀態寄存器條件碼標志 通常條件碼標志通過執行下述指令進行修改 比較指令(CMN、CMP、TEQ、TST) 一些算術運算、邏輯運算和傳送指令,它們的目的寄存器不是R15。這些指令中大多數同時有標志保留變量和標志設置變量,后者通過在指令助記符后加上

24、字符“S”來選定。加“S”表示進行標志設置。1.7 程序狀態寄存器控制位 程序狀態寄存器CPSR()的最低8位I、F、T和M4:0用作控制位。 當異常出現時改變控制位。 處理器在特權模式下時也可由軟件改變。1.7 程序狀態寄存器控制位 中斷禁止位:I置1,則禁止IRQ中斷;F置1,則禁止FIQ中斷。 T位:T0,指示執行ARM指令;T 1,指示執行Thumb指令。 模式位:M0、M1、M2、M3和M4(M4:0)是模式位,這些位決定處理器的工作模式,如下表所列。M4:0 模模 式式 可訪問的寄存器可訪問的寄存器l0000用戶用戶 PC、R14R0、CPSR10001FIQ PC、R14_fiq

25、R8_ fiq、R7R0、CPSR、SPSR_ fiq 10010IRQ PC、R14_irq、R13_irq、R12R0、CPSR、SPSR_irq10011管理管理 PC、R14_svc、R13_svc、R12R0、CPSR、 SPSR_svc10111中止中止 PC、R14_abt、R13_abt、R12R0、CPSR、 SPSR_abt11011未定義未定義 PC、R14_und、R13_und、R12R0、CPSR、 SPSR_und11111系統系統 PC、R14R0、CPSR表表1.7 1.7 模式位模式位1.8 異常 正常的程序流被暫時中止,處理器進入異常模式。 異常由內部或外

26、部源產生并引起處理器處理一個事件(正常的程序流程被暫時中止),例如外部中斷或試圖執行未定義指令都會引起異常。 在處理異常之前,處理器狀態必須保留,以便在異常處理程序完成后,原來的程序能夠重新執行。1.8 異常 ARM支持7種類型的異常。異常出現后,強制從異常類型對應的固定存儲器地址開始執行程序。這些固定的地址稱為異常向量(Exception Vectors)。1.8 異常異常類型模 式正常地址復位管理0 x00000000未定義指令未定義0 x00000004軟件中斷管理0 x00000008預取值中止中止0 x0000000C數據中止中止0 x00000010IRQIRQ0 x0000001

27、8FIQFIQ0 x000000lC表1.8 異常向量1.8 異常 同一時刻可能出現多個異常,則將按固定的順序(異常優先級)來處理異常。優先級異 常1(最高)復位2數據中止3FIQ4IRQ5指令預取中止6最低未定義指令、SWI1.8 異常異常入口 當異常出現時,異常模式分組的R14和SPSR用于保存狀態。 R14保存程序計數器PC(R15); SPSR保存當前狀態寄存器CPSR;1.8 異常異常入口 在ARM狀態,ARM7TDMI內核將下一條指令的地址復制到LR中。 將CPSR復制到相應的SPSR。 根據異常將CPSR模式強制設為某一值。 強制PC從相關的異常向量處取值。1.8 異常異常返回

28、當處理異常返回時,把SPSR傳送到CPSR,R14傳送到PC。這可用兩種方法自動完成: 使用帶“S”的數據處理指令,將PC作為目的寄存器; 使用帶恢復CPSR的多加載指令。 清零在入口置位的中斷禁止標志。1.8 異常未定義指令異常 當ARM處理器執行協處理器指令時,它必須等待任一外部協處理器應答后,才能真正執行這條指令。若協處理器沒有響應,就會出現未定義指令異常。若試圖執行未定義的指令,也會出現未定義指令異常。未定義指令異??捎糜谠跊]有物理協處理器(硬件)的系統上,對協處理器進行軟件仿真,或在軟件仿真時進行指令擴展。1.8 異常未定義指令異常 在防止失敗的指令(未定義指令)后,捕獲執行下面的指

29、令:MOVS PC,R14_und;在未定義模式執行 這個動作恢復了PC和CPSR,并返回到未定義指令之后的指令。1.8 異常軟件中斷異常 軟件中斷異常指令SWI(SoftWare Interrupt)進入管理模式,以請求特定的管理(操作系統)函數。 通常在管理模式下執行以下指令返回:MOVS PC,R14_svc 恢復PC和CPSR,并返回到SWI之后的指令,SWI處理程序讀取操作碼以提取SWI函數編號。1.8 異常中止異常 中止表示當前對處理器的訪問不能被完成。 中止是通過外部ABORT輸入指示的,在具體的芯片中,ABORT信號由片內存儲器管理部件控制。ABORT是內核的一個信號,對用戶可

30、不見。1.8 異常中止異常 有兩類中止異常: 預取指中止 發生在指令預取指過程中。 數據中止 發生在對數據訪問時。1.8 異常中止異常 中止表示當前對處理器的訪問不能被完成。 中止是通過外部ABORT輸入指示的,在具體的芯片中,ABORT信號由片內存儲器管理部件控制。ABORT是內核的一個信號,對用戶可不見。1.8 異常預取指中止異常 存儲器系統發出存儲器中止(Abort)信號。響應取指激活的中止,標記所取的指令無效。若處理器試圖執行無效指令,則產生預取中止異常。若指令未執行(例如指令在流水線中發生了轉移),則不發生預取中止,在指令到達流水線的執行階段才會進入異常。1.8 異常預取指中止異常

31、在處理中止的原因后,不管處于哪種處理器狀態,處理程序都會在中止模式下執行以下指令: SUBSPC,R14_abt,#4恢復PC和CPSR并重試被中止的指令1.8 異常數據中止異常 存儲器系統發出存儲器中止信號。響應數據訪問(加載或存儲)激活中止,標記數據為無效。在后面的任何指令或異常改變CPU狀態之前,數據中止異常發生。1.8 異常數據中止異常 使得指令分頁的虛擬存儲器系統能夠被實現。 數據中止返回執行:SUBS PC,R14_abt,#8R14_abt 8的原因:被中止指令已經被執行,但是需要重新執行。1.8 異常中斷請求(IRQ)異常 中斷請求異常是一個由nIRQ輸入端的低電平所產生的正常

32、中斷。在具體的芯片中,nIRQ由片內外設拉底,nIRQ是內核的一個信號,對用戶不可見。 IRQ 異常的優先級比FIQ異常的低。當進入FIQ處理時,會屏蔽掉IRQ異常。1.8 異常中斷請求(IRQ)異常執行過程:R14_irq = address of the aborted instruction + 4SPSR_irq = CPSRCPSR4:0 = 0b10010 /進入IRQ模式CPSR5 = 0/在ARM狀態執行CPSR7 = 1if high vectors configured thenPC = 0 xFFFF0018elsePC = 0 x000000181.8 異常中斷請求(I

33、RQ)異常 IRQ處理程序通過執行下面的指令從中斷返回:SUBS PC, R14_irq, #41.8 異常中斷處理代碼的開始部分和退出部分STMFD SP!,R0-R7,LR;現場保護LDMFD SP!,R0-R7,LR;帶恢復CPSR的多加載指令SUBS PC,LR,#4這里的SP和LR是屬于異常模式的寄存器。1.8 異??焖僦袛嗾埱螅‵IQ)異常 通過處理器上的FIQ輸入引腳,由外部產生FIQ異常。FIQ被設計成支持數據傳送和通道處理,并有足夠的私有寄存器(8個),用來滿足寄存器保護的需要,減少了上下文切換的總開銷。1.8 異常快中斷請求(FIQ)異常 快中斷請求異常由nFIQ輸入端的低

34、電平所產生。在具體的芯片中,nFIQ由片內外設拉底,nFIQ是內核的一個信號,對用戶不可見。1.9 中斷延時 最壞情況下FIQ的延遲時間 Tsyncmax:請求通過同步器的最長時間,2個處理器周期。 Tldm:最長的指令執行需要的時間(LDM指令),在零等待狀態為20個周期。 Texc:數據中止入口時間,3個周期。 Tfiq:FIQ入口時間,2個周期總的延遲時間是27個周期。1.9 中斷延時 最大IRQ延遲時間 與FIQ相似 當FIQ和IRQ同時申請時,要延時到FIQ處理程序允許IRQ中斷。1.9 中斷延時 最小中斷延遲 Tsyncmax Tfiq共4個周期1.10 復位 nRESET信號被拉

35、底時復位 當nRESET信號再次變為高電平時,執行: 強制M4 : 0變為b10011(管理模式); 置位CPSR中的I和F位; 清零CPSR中的T位; 強制PC從地址0 x00開始對下一條指令進行取指; 返回到ARM狀態并恢復執行。1.10 復位 處理器上一旦有復位輸入,ARM處理器立刻停止執行當前指令。復位后,ARM處理器在禁止中斷的管理模式下,從地址0 x00000000或0 xFFFF0000開始執行指令。1.11 存儲器及存儲器映射I/O1.11.1地址空間 ARM體系結構使用232個8位字節的單一、線性地址空間。將字節地址作為無符號數看待,范圍為0 232 - 1。 將地址空間看作

36、由230 個32位的字組成。每個字的地址是字對準的,故地址可被4整除。字對準地址是A的字由地址為A、A+1、A+2和A+3的4個字節組成。1.11 存儲器及存儲器映射I/O1.11.1地址空間 地址空間也看作由231個16位的半字組成,每個半字的地址是半字對準的,故地址可被2整除。半字對準地址是A的半字由地址為A和A+1的2個字節組成。 地址計算通常由普通的整數指令完成。這意味著若計算的地址在地址空間中上溢或下溢,通常就會環繞,計算結果縮減模232 。然而,為了減少以后地址空間擴展的不兼容,程序應該編寫成使地址的計算結果位于0232-1的范圍內。1.11 存儲器及存儲器映射I/O1.11.1地

37、址空間 大多數轉移指令通過把指令指定的偏移量加到PC的值上來計算目的地址,然后把結果寫回到PC。計算公式如下:目的地址當前指令的地址+8+偏移量如果計算結果在地址空間中上溢或下溢,則指令因地址環繞從而是不可預知的。因此,向前轉移不應當超出地址0 xFFFFFFFF,向后轉移不應當超出地址Ox00000000。1.11 存儲器及存儲器映射I/O1.11.1地址空間 每條指令執行之后,根椐指令正常的順序執行,則:目的地址當前指令的地址+4若計算從地址空間的頂部溢出,那么從技術上講,結果是不可預知的。換句話說,程序在執行完地址OxFFFFFFFC的指令后,不應當依據順序執行來執行地址Ox00000000的指令。1.11 存儲器及存儲器映射I/O1.11.2 存儲器格式對于字對準的地址A,地址空間規則要求: 地址位于A的字由地址為A、A+1、A+2和A+3的字節組成; 地址位于A的半字由地址為A和A+1的字節組成;地址位于A+2的半字由地址為A+2和A+3的字節組成; 地址位于A的字由地址為A和A+2的半字組成。 1.11 存儲器及存儲器映射I/O1.11.2 存儲器格式小端對齊方式存儲系統: 字對準地址中的字節或半字是該地址中字的最低有效字節或半字; 半字對準地址中的字節是該地址中的半字的最低有效字節。地址地址A+1A+1的字節的字節地址地址A+

溫馨提示

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

評論

0/150

提交評論