版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、ARM微處理器編程模型 ARM是Advanced RISC Machines的縮寫,該公司設計了大量高性能、廉價、耗能低的RISC (精簡指令集)處理器;ARM公司的特點是只設計而不生產(chǎn)。它將技術授權給世界上許多著名的半導體、軟件和OEM廠商,并提供服務。將技術授權給其它芯片廠商形成各具特色的ARM芯片2/95ARM的應用領域工業(yè)控制領域 過程控制、電力控制、數(shù)控機床、ABS無線通訊領域 基站、帶藍牙/定位等的手機/PDA、GPS網(wǎng)絡應用 ADSL、路由器、交換機、VoIP消費類電子產(chǎn)品 DVD、機頂盒、游戲機成像產(chǎn)品 數(shù)碼相機、打印機、錄像機安全產(chǎn)品 ATM機、POS機、考勤系統(tǒng)、SIM卡到
2、目前為止,基于ARM技術的微處理器應用約占據(jù)了32位嵌入式微處理器75以上的市場份額;全球80%的GSM/3G手機、99%的CDMA手機以及絕大多數(shù)PDA產(chǎn)品均采用ARM體系的嵌入式處理器,“掌上計算”相關的所有領域皆為其所主宰;3/95ARM體系結構的特點RISC簡單的結構使ARM內核非常小、功耗低、成本低統(tǒng)一和固定長度的指令域,簡化了指令的譯碼,便于指令流水線設計采用裝載/保存結構,數(shù)據(jù)處理操作只針對寄存器的內容,而不直接對存儲器進行操作支持Thumb(16 位)/ARM(32 位)雙指令集,能很好的兼容8 位/16 位器件每條數(shù)據(jù)處理指令都對算術邏輯單元和移位器控制,實現(xiàn)了ALU和移位器
3、的最大利用尋址方式靈活簡單,執(zhí)行效率高地址自動增加,減少尋址模式,優(yōu)化程序循環(huán)多寄存器裝載和存儲指令實現(xiàn)最大數(shù)據(jù)吞吐量所有指令的條件執(zhí)行實現(xiàn)最快速的代碼執(zhí)行4/95ARM體系結構的版本ARM架構自誕生至今已發(fā)展并定義了V1到V7七種不同的版本V1版架構 只在原型機ARM1中出現(xiàn)過支持基本的數(shù)據(jù)處理指令(無乘法)支持字節(jié)、半字和字的LOAD/STORE指令支持轉移指令,包括子程序調用及鏈接指令支持軟件中斷指令SWI尋址空間位64MB(26位)*5/95V2版架構 已廢棄不再使用支持乘法和乘加指令支持協(xié)處理器操作指令支持基本的存儲器與寄存器交換指令SWP/SWPB支持快速中斷模式V3版架構 已廢棄
4、不再使用尋址范圍擴展到4GB(32位)快速中斷模式具有兩個以上的分組寄存器增加狀態(tài)寄存器CPSR/SPSR,及從異常處理返回的MSR/MRS指令,便于異常的處理增加了中止和未定義兩種處理器模式*6/95V4版架構 目前應用最廣的ARM體系結構,ARM7、ARM8、ARM9和StrongARM都采用該版架構增加了有/無符號的半字和有符號字節(jié)的Load/Store指令增加了16位Thumb指令集完善了軟件中斷SWI指令的功能增加了處理器的特權模式V5版架構 ARM10和XScale都采用該版架構改進了ARM/Thumb狀態(tài)之間的切換效率;E-增強DSP指令集,包括全部算法操作和16位乘法操作;J-
5、支持新的JAVA,提供字節(jié)代碼執(zhí)行的加速功能增加了帶有鏈接和交換指令BLX增加了計數(shù)前導零指令CLZ增加了軟件斷點指令為協(xié)處理器增加更多可選擇的指令7/95V6版架構 ARM11處理器采用該版架構增加了多媒體功能擴展SIMD,提高了嵌入式應用系統(tǒng)的音、視頻處理能力改進了內存管理改進了混合端與不對齊數(shù)據(jù)支持,使得小端系統(tǒng)支持大端數(shù)據(jù)V7版架構 Cortex-A/M/R系列處理器采用該版架構2005年發(fā)布,采用Thumb-2技術。M系列傳統(tǒng)單片機市場A系列高端應用處理器市場R系列實時性控制*8/95ARM芯片、內核和CPU的關系ARM CPU數(shù)據(jù)通路ARM CPU控制邏輯ARM 內核ARM CPU
6、ARM 芯片ARM 內核ARM處理器核與體系結構的對應關系核體 系 結 構ARM1ARMv1ARM2ARMv2ARM2aS,ARM3ARMv2aARM6,ARM600,ARM610,ARM7,ARM700,ARM710ARMv3Strong ARM,ARM8,ARM810ARMv4ARM7TDMI,ARM710T,ARM720T,ARM740T,ARM9TDMI,ARM920T,ARM940TARMv4TARM9E-S,ARM10TDMI,ARM1020EARMv5TEARM1136J(F)-S,ARM1176JZ(F)-S,ARM11MPCorARMv6ARM1156T2(F)-SARMv6
7、T2ARM Cortex-M,ARM Cortex-R,ARM Cortex-AARMv7ARM處理器(核)命名規(guī)則ARMxyzTDMIEJF-Sx系列號 y存儲管理/保護單元zCacheTThumb指令集DJTAG調試器M快速乘法器I嵌入式跟蹤宏單元E增強DSP指令JJazelle技術F向量浮點單元S可綜合的內核ARM7TDMI-SARM926EJ-SARM966ESARM1022E2:帶MMU4:帶MPU6:無MMU和MPU0:標準cache2:小cache6:可變cache11/95項目ARM7ARM9ARM10ARM11流水線3568典型頻率MHz80150260335功耗mW/MHz
8、0.060.19(+cache)0.5(+cache)0.4(+cache)性能MIPS/MHz0.971.11.31.2架構馮諾伊曼哈佛哈佛哈佛ARM處理器(核)比較ARM處理器內核流水線工作流程ARM系列微處理器核特點ARM7ARM7TDMI:整數(shù)處理核ARM7TDMI 處理器的可綜合版本; ARM720T:帶MMU的處理器核心,支持操作系統(tǒng);ARM7EJ-S:帶有DSP和Jazelle TM 技術,能夠實現(xiàn)Java加速功能馮諾伊曼體系結構;ARM7TDMI是目前應用最廣的微處理器核ARM720T帶有MMU和8KB的指令數(shù)據(jù)混合cache;ARM7EJ-執(zhí)行ARMv5TEJ指令,5級流水線
9、,提供Java加速指令,沒有存儲器保護。ARM9ARM920T:帶有獨立的16KB 數(shù)據(jù)和指令Cache;ARM922T:帶有獨立的8位KB 數(shù)據(jù)和指令Cache;ARM940T包括更小數(shù)據(jù)和指令Cache和一個MPU基于ARM9TDMI ,帶16位的Thumb指令集,增強代碼密度最多到35%;在0.13m工藝下最高性能可達到300MIPS(Dhrystone 2.1測試標準);集成了數(shù)據(jù)和指令Chche;32位AMBA總線接口的MMU支持;可在0.18m、 0.15m和0.13m工藝的硅芯片上實現(xiàn)。ARM處理器(核)簡介*15/95ARM9EARM926EJ-S:Jazelle 技術,有MM
10、U,可配置的數(shù)據(jù)和指令Cache,TCM接口;ARM946E-S:可配置的數(shù)據(jù)和指令Cache及TCM;ARM966E-S:針對要求高性能和低功耗的可預測的指令執(zhí)行時間的硬實時應用設計 ARM968E-S:最小、功耗最小的ARM9E系列處理器,針對嵌入式實時應用設計;ARM9E是針對微控制器、DSP和Java的單處理器解決方案; ARMJazelle技術提供 8倍的 Java 加速性能 (ARM926EJ-S) ;5-級整數(shù)流水線; 在0.13m工藝下最高性能可達到300MIPS(Dhrystone 2.1測試標準);可選擇的向量浮點單元VFP9 協(xié)處理器指令優(yōu)秀海浮點性能,對于3D圖形加速和
11、實時控制可達到215MFLOPS。高性能的AHB總線,帶MMU可在0.18m, 0.15m, 0.13m工藝的硅芯片上實現(xiàn)。 ARM10EARM1020E:帶DSP指令集,在片調試功能,獨立的32KB數(shù)據(jù)和指令Cache,MMU支持;ARM1022E:與ARM1020E相同,只是獨立的數(shù)據(jù)和指令Cache變?yōu)?6KB;ARM1026EJ-S:同時具有MPU和MMU,可綜合版本; 帶分支預測的6級整數(shù)流水線;在0.13m工藝下最高性能可達到430MIPS(Dhrystone 2.1測試標準);對于3D圖形運算和實時控制采用VFP協(xié)處理器,浮點運算性能最高可達650MFLOPS;雙64位AMBA總
12、線接口和64位內部總路線接口;優(yōu)化的緩存結構提高了處理器訪問低速存儲器的性能;可在0.18m, 0.15m, 0.13m工藝的硅芯片上實現(xiàn)ARM11ARM11 MPCore:可綜合的多處理器核,1至4個處理器可配置;ARM1136J(F)-S:可配置的數(shù)據(jù)和指令Cache,可提供1.9位的MPEG4編碼加速功能;ARM1156T2(F)-S:帶集成浮點協(xié)處理器,帶內存保護單元MPU;ARM1176JZ(F)-S:帶針對CPU和系統(tǒng)安全架構擴展的TrustZone技術。增強的Thumb、Jazelle、DSP擴展支持; 帶片上和系統(tǒng)安全TrustZone 技術支持 ;在0.13m工藝下最高可達到
13、550MHz;MPCore在0.13m工藝下最高性能可達到740MIPS(Dhrystone 2.1測試標準);支持多媒體指令SIMD;采用三種電源模式:全速/待命/休眠集成DMA的TCM低功耗、高性能。 SecurCoreSC100:第一個32位安全處理器;、SC110:在SC100上增加密鑰協(xié)處理器;SC200:帶Jazelle技術的高級安全處理器;SC210:在SC200上增加密鑰協(xié)處理器SecurCore是專門為智能卡、安全IC提供的32位安全處理器, 為電子商務、銀行、網(wǎng)絡、移動多媒體、公共交通提供安全解決方案;體積小、功耗低,代碼壓縮密度高;為快速增長的Java卡平臺提供Java加
14、速功能;CortexCortex-A:面向應用的微處理器,針對復雜操作系統(tǒng)和應用程序設計;Cortex-R:針對實時系統(tǒng)的嵌入式處理器;Cortex-M:針對成本敏感應用優(yōu)化的深度嵌入式處理器;2004年發(fā)布,提供增強的媒體和數(shù)字處理能力,增加了系統(tǒng)性能;支持ARM、Thumb、Thumb-2指令集;Thumb-2指令集提供了更高的代碼存儲密度,進一步降低成本;Intel系列(Marvell)StrongARM:ARMv4體系XScale:ARMv5TE體系,增加MMX指令StrongARM主要應用于手持設備和PDA,5級流水線,具有獨立的數(shù)據(jù)和指令Cache,不支持Thumb指令集,目前已停
15、產(chǎn);XScale是目前Intel公司主推的高性能嵌入式處理器,分通用處理器、網(wǎng)絡處理器和I/O處理器三類。其中通用處理器有PXA25x、PXA26x、PXA27x三個系列,被廣泛應用于智能手機、PDA領域。ARM處理器的工作狀態(tài)ARM狀態(tài) 執(zhí)行32位字方式的ARM指令Thumb狀態(tài) 執(zhí)行16位半字方式的Thumb指令Jazelle狀態(tài) 執(zhí)行可變長的、以字節(jié)為單位的 Jazelle(Java)指令注意:1. 處理器復位后處于ARM狀態(tài);2.處理器異常處理時進入ARM狀態(tài);3.若處理器在Thumb狀態(tài)進入異常,則異常返回仍然自動轉換到Thumb狀態(tài);4.狀態(tài)切換不影響工作模式及寄存器內容。*19/
16、95ARM處理器工作狀態(tài)的切換 使用跳轉指令BX可將處理器內核在ARM狀態(tài)和Thumb狀態(tài)之間進行切換。;從Arm狀態(tài)切換到Thumb狀態(tài) LDR R0,=Lable+1 BX R0;從Thumb狀態(tài)切換到ARM狀態(tài) LDR R0,=Lable BX R0 地址最低位為1,表示切換到Thumb狀態(tài) 地址最低位為0,表示切換到ARM狀態(tài)跳轉地址標號,最低2bit為0*20/95異常exception異常指正常執(zhí)行的程序流因故被暫時中止;ARM支持7種異常類型、5種異常模式;若同時發(fā)生多個異常,將按優(yōu)先級順序處理;異常類型對應異常模式優(yōu)先級復位Supervisor1(最高優(yōu)先級)數(shù)據(jù)中止Abort
17、2FIQFIQ3IRQIRQ4指令預取中止Abort5未定義指令Undefined6SWISupervisor7(最低優(yōu)先級)優(yōu)先級降低*21/95復位異常Reset當nRESET引腳信號變?yōu)榈碗娖綍r, ARM立即停止執(zhí)行當前指令,產(chǎn)生復位異常;當nRESET再次變?yōu)楦唠娖胶?,ARM處理器執(zhí)行下列操作:1.強制CPSR中的M4:0變?yōu)閎10011,進入管理模式;2.置位CPSR中的I和F位;3.清零CPSR中的T位;4.強制PC從地址0 x00開始取第一條指令;5.返回到ARM狀態(tài)并恢復執(zhí)行;*22/95中止異常Abort中止異常包括指令預取中止和數(shù)據(jù)中止;預取中止時,ARM將預取的指令標記為
18、無效,但在指令到達流水線的執(zhí)行階段時才進入異常。如果指令在流水線中因為發(fā)生分支而沒有被執(zhí)行,中止將不會發(fā)生。數(shù)據(jù)中止時,數(shù)據(jù)訪問被記為無效,中止程序應根據(jù)中止原因作出處理,使數(shù)據(jù)可以被訪問。中止異常表示對存儲器的訪問失敗,這種機制實際保證了虛擬存儲技術的實現(xiàn)。*23/95中斷異常(IRQ、FIQ) 中斷請求(IRQ)是一個由nIRQ引腳信號低電平所產(chǎn)生的正常中斷(nIRQ是內核信號,對用戶不可見)。IRQ的優(yōu)先級低于FIQ,對于FIQ異常它是被屏蔽的。在一個特權模式中可通過置位CPSR中的I 位來禁止IRQ。 快速中斷請求(FIQ)適用于對一個突發(fā)事件的快速響應。ARM狀態(tài)中FIQ模式多設置了
19、7個分組寄存器(R8_fiqR14_fiq)可加速上下文切換的速度。在一個特權模式中可通過置位CPSR中的F位來禁止FIQ異常。24/95中斷延遲當允許FIQ中斷時,最壞情況下FIQ的中斷延遲由以下幾部分組成,即 Tsyncmax(請求通過同步器的最長時間)。Tsyncmax為4個處理器周期。 Tldm(最長指令的完成時間)。最長指令是加載包括PC在內的所有寄存器的LDM指令。在零等待狀態(tài)的系統(tǒng)中,Tldm為20個處理器周期。 Texc(數(shù)據(jù)中止異常進入時間)。Texc為3個處理器周期。 Tfiq(FIQ進入時間)。Tfiq為2個處理器周期??傃舆t是29個處理器周期。在使用40 MHz處理器時
20、鐘的系統(tǒng)中,總延遲超過0.7 ms。當延遲結束時,處理器執(zhí)行在0 x1C處的指令。對于最大的IRQ延遲,其計算與FIQ的類似。若必須允許FIQ有更高的優(yōu)先級,那么其結果是,進入IRQ處理程序的延遲時間是隨機的。 未定義指令異常當ARM處理器遇到一條自己和系統(tǒng)內任何協(xié)處理器都無法處理的指令時,將產(chǎn)生未定義指令異常。軟件可使用這一機制通過模擬未定義的協(xié)處理器指令來擴展ARM指令集。*26/95軟件中斷異常(SWI)執(zhí)行指令SWI可進入軟件中斷異常;該異常使處理器從用戶模式進入管理模式,通常用于請求一個特定的管理函數(shù)(即調用系統(tǒng)功能函數(shù))。*27/95異常向量(表)向量地址異常類型進入時模式進入時I
21、狀態(tài)進入時F狀態(tài)0 x0000 0000復位管理禁止禁止0 x0000 0004未定義指令未定義IF0 x0000 0008軟件中斷(SWI)管理禁止F0 x0000 000C預取中止(指令)中止IF0 x0000 0010數(shù)據(jù)中止中止IF0 x0000 0014保留保留0 x0000 0018IRQ中斷禁止F0 x0000 001CFIQ快中斷禁止禁止 異常發(fā)生時處理器將PC值強制設置為對應的異常向量; 異常向量處通常只存放一條跳轉指令,指向真正的異常處理程序;異常向量表的后面一般緊跟著存放FIQ的異常處理程序,這樣可以減少一次跳轉,提高FIQ的響應速度;*28/95現(xiàn)場保護儲存當時狀態(tài)。C
22、PU正常執(zhí)行時處于一種運行模式。中斷服務程序中處于另一種運行模式。處理器模式說明備注 用戶(usr)正常程序執(zhí)行模式不能直接切換到其它模式 系統(tǒng) (sys)運行操作系統(tǒng)的特權任務與用戶模式類似,但具有可以直接切換到其它模式等特權 快中斷 (fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應時進入此模式 中斷 (irq)用于通用中斷處理IRQ異常響應時進入此模式 管理 (svc)操作系統(tǒng)保護模式系統(tǒng)復位和軟件中斷響應時進入此模式 中止 (abt)用于支持虛擬內存和/或存儲器保護在ARM7TDMI沒有大用處 未定義 (und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應時進入此模式ARM處理器的運行
23、模式 除用戶模式外,其它模式均為特權模式。ARM內部寄存器和一些片內外設在硬件設計上只允許(或者可選為只允許)特權模式下訪問。此外,特權模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。 未定義(und) 中止(abt) 管理(svc) 中斷(irq) 快中斷(fiq) 系統(tǒng)(sys) 這五種模式稱為異常模式。它們除了可以通過程序切換進入外,也可以由特定的異常進入。每種異常模式都有一些獨立的寄存器,以避免異常退出時用戶模式的狀態(tài)不可靠。 這兩種模式都不能由異常進入,而且它們使用完全相同的寄存器組。 系統(tǒng)模式是特權模式,操作系統(tǒng)在該模式下訪問用戶模式的寄存器就比較方便,而且操作系統(tǒng)
24、的一些特權任務可以使用這個模式訪問一些受控的資源。 系統(tǒng)(sys) 用戶 (usr)寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計數(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)
25、R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用戶無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系統(tǒng)SPSR_svcCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7
26、R6R5R4R3R2R1R0中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定義SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中斷SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中斷ARM狀態(tài)各模式下的寄存器組織R0R7為不分組寄存器注意:在異常處理中進行模式切換時,可能會破壞寄存器中的數(shù)據(jù),需要保護;R14_fiqR14_irqR14_und
27、R14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R8R14為分組寄存器。不同處理器模式下它們對應不同的物理寄存器。 R8R12有一個分組專用于FIQ模式。這樣在發(fā)生FIQ中斷后,可以加速FIQ的處理速度。R14為鏈接寄存器LR,具有兩個特殊功能:用于保存子程序返回地址;根據(jù)不同的異常模式保存為異常返回地址(有些異常有一個小的固定偏移量)。Lable程序1程序2R14R14(LR)寄存器與子程序調用BL Lable地址A?MOV PC,LRR1
28、4(地址A)Lable?1.程序1執(zhí)行過程中調用程序2;2.程序跳轉至標號Lable,執(zhí)行程序2。3.同時硬件將“BL Lable” 的下一條指令所在地址存入R14(LR);4.程序2執(zhí)行完后,將R14 (LR)寄存器的內容放入PC,返回程序1繼續(xù)執(zhí)行;*32/951.異常返回地址的處理與子程序調用類似,都是由硬件自動完成。區(qū)別在于有些異常有一個小常量偏移。2.當發(fā)生異常嵌套時,這些異常之間可能會發(fā)生沖突。如用戶模式下發(fā)生IRQ中斷嵌套時,R14_irq中低級中斷返回主程序的地址將被高級中斷的返回地址所覆蓋;R14(LR)寄存器與異常處理R14R14_irq用戶模式下的程序0IRQ模式下的程序
29、1指令m+1.指令m+n指令m地址A地址A未被破壞IRQ模式下的程序2return指令j+1.指令j+k指令j地址B地址BR14_irq 被破壞returnreturn1.執(zhí)行用戶模式下的程序0;2.發(fā)生IRQ中斷后,硬件將帶偏移的返回地址存入IRQ模式下的R14_irq寄存器,用戶模式下的R14沒有被破壞;3. IRQ服務程序1執(zhí)行完后,可將R14_irq寄存器的內容減去偏移量后存入PC,返回之前被中斷的程序;4. 如果在IRQ處理程序中打開IRQ中斷,并且再次發(fā)生IRQ中斷;5. 硬件將返回地址保存在R14_irq寄存器中,原來保存的返回地址信息將被覆蓋,造成錯誤;6. 在程序2返回到程序
30、1,然后在返回到用戶模式下被中斷的程序時,發(fā)生錯誤,將不能正確返回; 解決辦法是確保R14的對應版本在發(fā)生中斷嵌套時不再保存任何有意義的值(將R14入棧),或者切換到其它處理器模式下。*33/95R15(PC)寄存器的讀操作ARM指令以字為單位,因此R15的最低兩位總是為0;R15的值是處理器正在取指的指令地址。因為有流水線,它與當前正在執(zhí)行指令的地址之間存在一個偏移(對于確定的ARM芯片該值為常量)。當使用指令STR/STM保存R15時,不同芯片中(可能是三級流水的ARM7或五級流水的ARM9)PC偏移量可能是8或12,因此需事先計算出該芯片的PC偏移量。MOV R0,PC?PCPC-4PC
31、-8正在執(zhí)行正在譯碼正在取指流水線、ARM狀態(tài)下指令地址程序代碼SUB R1,PC,#4 ;將正在譯碼的指令的地址保存在R1中STR PC,R0 ;保存當前PC值=正在執(zhí)行的指令的地址+偏移量LDR R0,R0 ;然后重裝SUB R0,R0,R1 ;計算偏移量是同一條指令寫入R15 的值被當作指令地址,程序將從這個地址處繼續(xù)執(zhí)行(相當于執(zhí)行無條件跳轉);由于ARM指令以字為邊界,因此寫入R15的值最低兩位通常為0b00。具體的規(guī)則取決于內核結構的版本:在V3及以下版本中,寫入R15的值的最低兩位被忽略,因此跳轉地址由指令的實際目標地址(寫入R15的值)和0 xFFFFFFFC相與得到;在V4及
32、以上版本中,寫入R15的值的最低兩位如果不為0,結果將不可預測。R15(PC)寄存器的寫操作*35/95NZCVIM0M1M2M3M4TF. . .31 30 29 28 27 26 8 7 6 5 4 3 2 1 0程序狀態(tài)寄存器PSR條件代碼標志保留控制位溢出oVerflow進/借位擴展 Carry零 Zero負Negative禁止IRQ禁止 FIQThumb狀態(tài)模式 ModeNZCVIM0M1M2M3M4TF一般指令帶S后綴時,執(zhí)行結果會影響條件代碼標志;但有一些指令的執(zhí)行總是會影響條件代碼標志。所有ARM指令都可由條件域來指定是否需要執(zhí)行,而Thumb指令中只有分支指令可按條件執(zhí)行。每
33、個異常模式還有SPSR用于保存在異常發(fā)生之前的CPSR。CPSR和SPSR可通過特殊指令(MRS/MSR)進行訪問。36/95M4:0模式可見的Thumb狀態(tài)寄存器可見的ARM狀態(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 10
34、011管理R0R7,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, CPSR 程序狀態(tài)寄存器CPS
35、R模式位設置表Thumb狀態(tài)與ARM狀態(tài)的寄存器映射關系 R8 R9 R10 R11 R12 堆棧指針(R13) 連接寄存器(R14) 程序計數(shù)器(R15) 低寄存器高寄存器 Thumb狀態(tài)下高寄存器(R8R15)不是標準寄存器集的一部分,但可以使用MOV、CMP和ADD指令對高寄存器操作。38/95異常響應過程在LR中保存返回地址信息; ARM狀態(tài)下將當前指令地址加4或加8復制到LR Thumb狀態(tài)下將當前指令地址加2、4或加8 復制到LR將CPSR復制到適當?shù)腟PSR中;將CPSR模式位強制設置為與異常類型相對應的值;強制PC從相關的異常向量處取指;注1:中斷異常時置位中斷禁止標志可以防止不受控制的異常嵌套 2:異??偸窃贏RM狀態(tài)中處理。若處理器處于Thumb狀態(tài)時發(fā)生異常,則異常向量地址裝入PC時會自動切換到ARM狀態(tài)。取決于異常類型*39/95程序AIRQ服務程序系統(tǒng)模式IRQ模式程序寄存器組異常響應(進入)過程1. 程序運行用戶程序,假定當前處理器狀態(tài)為Thumb狀態(tài)、允許IRQ中斷;2. 用戶程序運行時發(fā)生IRQ中斷,硬件完成以下動作:LR_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0. . .?MODTFI. . .NZCV置位I位(禁止IRQ中斷)清零T位(進入ARM狀態(tài)) 設置MOD位,切換處理器模式至IRQ模式將返回
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年新修訂:叉車操作員雇傭協(xié)議
- 2024年新型飛機買賣條款
- 2024年技術服務合同:人工智能輔助醫(yī)療系統(tǒng)
- 2024年房產(chǎn)過戶手續(xù)辦理委托書
- 2024年建筑項目協(xié)調合同
- 2024年建設工地員工雇傭協(xié)議
- 信息技術遠程研修思想總結(4篇)
- 2024年文化旅游項目投資合作協(xié)議
- 2023年建筑物管道及通風設備安裝服務項目評價分析報告
- 2024年建筑工人勞動保險與福利合同
- 2023年江門市基層公共就業(yè)創(chuàng)業(yè)服務崗位招聘考試真題
- 圖解《黑神話悟空》微課件
- T-CECS120-2021套接緊定式鋼導管施工及驗收規(guī)程
- 全國大學英語六級詞匯表
- 數(shù)字媒體藝術與民族文化傳播智慧樹知到期末考試答案2024年
- 美國實時總統(tǒng)大選報告
- 《行政許可法培訓》課件
- 大學體育理論(山東聯(lián)盟)智慧樹知到課后章節(jié)答案2023年下泰山學院
- 研究生二級學科證明
- 快易收口網(wǎng)工藝原理
- APC Smart-UPS 3000XL RM安裝及電池更換手冊
評論
0/150
提交評論