ARM微處理器系列學(xué)習(xí)課件_第1頁
ARM微處理器系列學(xué)習(xí)課件_第2頁
ARM微處理器系列學(xué)習(xí)課件_第3頁
ARM微處理器系列學(xué)習(xí)課件_第4頁
ARM微處理器系列學(xué)習(xí)課件_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

了解ARM處理器ARM指令集體系結(jié)構(gòu)版本ARM微處理器系列ARM微處理器后綴含義ARM處理器ARM簡介ARM內(nèi)核系列介紹ARM內(nèi)核相關(guān)技術(shù)簡介附注-

ARM技術(shù)名詞鏈接RISC

、

流水線Thumb指令集JTAGJazelleMMU、MPUCache、TCMAMBA、AHB、APBARM簡介ARM-AdvancedRISCMachines1985年4月26日誕生于劍橋Acorn公司,名字源于AcornRiscMachine1990年11月ARM公司成立ARM公司為IP供應(yīng)商,本身不生產(chǎn)芯片ARM簡介ARM處理器具有體積小、低功耗、低成本、高性能的特點。2011年,ARM在移動設(shè)備市場的占有率已超過90%。2011年,ARM

v8架構(gòu)誕生,支持64位指令集。2014年,AMD基于64-bitARMCortex-A57內(nèi)核的服務(wù)器處理器OpteronA1100誕生!ARM與RISC技術(shù)ARM-并非純RISC機其RISC特性:

流水線,定長32位指令,大量通用寄存器,Load/Store結(jié)構(gòu),硬布線CU;非RISC特性:

不是所有指令都是單周期,例如多寄存器加載/存儲指令。內(nèi)嵌桶形移位寄存器,可在算術(shù)/邏輯指令中預(yù)先對操作數(shù)進(jìn)行移位操作。支持雙指令集,32位ARM和16位Thumb。條件執(zhí)行指令;RISC機特點:指令簡單,定長,單周期流水線技術(shù)大量通用寄存器LOAD/STORE指令結(jié)構(gòu)執(zhí)行效率傳輸效率兼顧代碼量與執(zhí)行效率執(zhí)行效率ARM指令集體系結(jié)構(gòu)版本指令集版本內(nèi)核實現(xiàn)范例V1ARM1V2ARM2、3V3ARM6、ARM7V4ARM7TDMI、StrongARM、ARM9TV5ARM9E、ARM10E、XScaleV6ARM11V7Cortex系列V864位處理器目前仍在使用的ARM架構(gòu)版本ARM指令集版本-V1只在原型機ARM1出現(xiàn)過。其基本性能如下:26位尋址空間,64MB基本的數(shù)據(jù)處理指令(無乘法)字節(jié)、半字和字的Load/Store指令轉(zhuǎn)移指令,包括子程序調(diào)用及鏈接指令軟件中斷SWI指令(操作系統(tǒng)使用)ARM指令集版本-V2ARM2和ARM3架構(gòu)采用的V2,對V1進(jìn)行了擴充增加了以下功能:增加乘法和乘加指令片上Cache支持協(xié)處理器CP15操作指令快速中斷模式FIQ原語操作-SWP/SWPB的寄存器交換指令①ARM指令集版本-V3V3架構(gòu)對ARM體系結(jié)構(gòu)作了較大的改動:把尋址空間增至32位(4GB)增加了當(dāng)前程序狀態(tài)寄存器CPSR和存儲程序狀態(tài)寄存器SPSR以便對異常的處理支持MMU-存儲器管理增加了中止ABT和未定義UDF2種新的特權(quán)處理模式②③ARM指令集版本-V4對V3進(jìn)行擴充,增加特性如下:符號化半字及符號化字節(jié)的存取指令THUMBTM-35%代碼壓縮THUMB與ARM之間的切換指令BX完善了軟件中斷SWI指令的功能處理器引進(jìn)特權(quán)方式-系統(tǒng)SYS模式不再兼容26位體系結(jié)構(gòu),并規(guī)定了哪些指令將作為未定義指令④ARMv4T指令集架構(gòu)ARM7系列ARM9系列ARM7TDMIARM920TARM指令集版本-V5新增特性有:ARM狀態(tài)和Thumb狀態(tài)之間進(jìn)行轉(zhuǎn)換轉(zhuǎn)移BLX指令增強乘法指令和快速乘累加(單周期完成16*32b)支持?jǐn)?shù)字信號處理DSP類指令--后綴EJazelleTM-Java性能優(yōu)化,可提高8倍--后綴JARMv5EARM9E系列ARM10E系列IntelXcaleARM926EJARM966EJARM1020EARM1022EPXA2xxARM指令集版本-V6V6版新架構(gòu)在低功耗的同時,面向消費類電子強化了圖形處理性能,追加有效進(jìn)行多媒體處理的SIMD功能。新增功能:8級流水線增強的Cache結(jié)構(gòu),支持實地址CacheTrustZone–硬件支持的安全技術(shù)Thumb-2指令集-16位和32位指令的混合指令集Media擴充-音/視頻性能優(yōu)化,可提高4倍MultiCore–更好的支持多核結(jié)構(gòu)全新ARMv7架構(gòu),命名為Cortex,針對不同的應(yīng)用,分為三個系列:Cortex-A

(Application)用于高性能的開放應(yīng)用平臺,如平板電腦、智能手機Cortex-R(Real-time)

用于高端、對實時性有要求的嵌入式系統(tǒng)Cortex-M

(MCU)用于對成本敏感、深度嵌入的嵌入式系統(tǒng)ARM指令集版本-V7Cortex-A8、A9、A15Cortex-R4Cortex-M3嵌入式處理器類型典型應(yīng)用應(yīng)用處理器PAD、智能手機實時控制處理器汽車ABS系統(tǒng),交換機,航空系統(tǒng)微處理器智能家電控制器ARM指令集版本-V8V8版-64位新架構(gòu),主要特點:64位通用寄存器、SP(棧頂指針)和PC(程序計數(shù)器)64位數(shù)據(jù)處理和虛擬存儲器尋址支持兩種狀態(tài)AArch64和AArch32,可在A32指令集模型和A64指令集模型之間切換,以保持兼容性A64是AArch64執(zhí)行狀態(tài)的全新32位固定長度指令集A64除支持64位操作數(shù)外,還增加了一些向量處理、浮點處理指令。Cortex-A53、A57ARM指令集版本-V8ARM內(nèi)核---架構(gòu)版本---技術(shù)示意圖ARM微處理器系列ARM7系列ARM9系列ARM9E系列ARM10E系列ARM11系列SecurCore系列Xscale架構(gòu)系列Cortex-A/M/RARM提供的IPARM微處理器內(nèi)核ARM微處理器核ARM微處理器系列ARM公司出售的IP包括兩種:ARM內(nèi)核

ARM7TDMI,ARM9TDMI,AM9E-S,ARM10TDMIARM核

=ARM內(nèi)核+MMU+AMBA+Cache+協(xié)處理器

ARM7x0T,ARM9x0T,ARM9x6E-S,ARM1020EARM處理器內(nèi)核與核ARM7內(nèi)核-ARM7TDMIARM7核-ARM720TARM內(nèi)核后綴命名含義與擴展支持ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}xyz是數(shù)字編號x:系列編號,ARM7/ARM9/ARM11…

y:內(nèi)部存儲管理MMU和保護單元MPUz:片內(nèi)高速緩存情況常見處理器舉例ARM920ARM1020ARM1156ARM內(nèi)核后綴命名含義ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}T--支持16bitThumb指令集D--片上調(diào)試JTAGM--支持快速乘法I–嵌入式跟蹤宏單元EmbeddedICEE--增強型DSP指令集J--Java硬件加速器-JazelleF--向量浮點運算單元S–提供可綜合的VHDL文件Z–安全處理技術(shù)TrustZone常見處理器舉例ARM926EJ-SARM1176JZ-SARMv4ARMv5ARMv6ARM處理器命名后綴說明T-Thumb16位指令集與ARM指令集相比:完成相同的操作,Thumb指令需要更多指令密度比ARM指令高沒有異常處理,出現(xiàn)異常后,返回ARM指令狀態(tài)。ARM指令和Thumb配合使用。需要時間多需要空間少代表性架構(gòu)版本及內(nèi)核ARMv4T

以后,均有經(jīng)典內(nèi)核:ARM920T(v4T)

處理器:SamsungS3c2410/2440ARM(cpsrT=0)Thumb(cpsrT=1)指令長度32位16位內(nèi)核指令58條30條條件執(zhí)行大多數(shù)指令只有分支指令數(shù)據(jù)處理指令訪問桶型移位器和ALU獨立的桶型移位器和ALU指令程序狀態(tài)寄存器特權(quán)模式下可以讀/寫不能直接訪問寄存器使用15個通用寄存器+PC8個通用寄存器+PCARM指令集與Thumb指令集比較BackD-Debug片上調(diào)試JTAGJTAG–邊界掃描測試接口標(biāo)準(zhǔn)傳輸協(xié)議和接口芯片對外的JTAG信號5個:TMS(測試模式選擇)、TCK(時鐘)、TDI(數(shù)據(jù)輸入)、TDO(數(shù)據(jù)輸出信號)、nTRST(復(fù)位)能夠直接向ARM內(nèi)部總線寫入數(shù)據(jù)調(diào)試ARM,向宿主機返回當(dāng)前處理器的內(nèi)部總線、寄存器的狀態(tài)

ARM處理器命名后綴說明ARM處理器命名后綴說明M-長乘法指令A(yù)RM指令集V3版以后加入了兩條指令MUL-32位×32位長乘指令MLA-32位×32位+32位長乘加指令長乘法指令在V4版以后成為系統(tǒng)標(biāo)準(zhǔn)部分代表性架構(gòu)版本及內(nèi)核ARMv4T

以后,均有經(jīng)典內(nèi)核:ARM7TDMI(v4T)處理器:SamsungS3c44B0

說明:ARM7TDMI后的內(nèi)核都具備TDMI四種特性,無論是否標(biāo)明E-EnhancedDSP指令集實現(xiàn)飽和的帶符號數(shù)的加/減法操作指令雙字?jǐn)?shù)據(jù)操作指令

LDRD-雙字取指令

SDTD-雙字存指令

MCRR/MRRC-協(xié)處理器寄存器傳輸指令

PLD-Cache預(yù)取指令

ARM處理器命名后綴說明代表性架構(gòu)版本及內(nèi)核ARMv5E

以后出現(xiàn)經(jīng)典內(nèi)核:Intel

Xscale

處理器:PXA2xxARM處理器命名后綴說明J-Jazelle硬件Java加速器從硬件的角度,能夠解釋執(zhí)行部分Java字節(jié)流形式代碼要支持完整J2ME,需要外加一個Java虛擬機(JVM)的修訂版本(SUN授權(quán))提高J2ME程序(如:游戲)的執(zhí)行速度。代表性架構(gòu)版本及內(nèi)核ARMv5E

以后出新的擴展功能經(jīng)典內(nèi)核:ARM1176JZF-S處理器:SamsungS3c6410

ARM處理器系列-ARM7ARM7TMDI是目前仍在使用的32位ARM嵌入式處理器之一,屬低端ARM處理器內(nèi)核。主要性能:工藝0.13um(新近)、電壓3.3V(內(nèi)部1.2v)、時鐘0~66MHZ、功耗87mW。ARMv5TEJ架構(gòu)ARMv4T架構(gòu)s3c44B0ARM處理器系列-ARM7ARM7系列是32位嵌入式RISC處理器,屬低端ARM處理器內(nèi)核,具有以下特點:具有嵌入式ICE-RT邏輯,調(diào)試方便極低的功耗(100mW左右),適合便攜式產(chǎn)品。3級流水線結(jié)構(gòu)兼容16位Thumb指令集指令系統(tǒng)與ARM9、ARM10E系列兼容主頻通常為20~100MHZ,最高可達(dá)130MhzARM技術(shù)小注-流水線

ARM7系列三級流水線:取指、譯碼、執(zhí)行處理一條指令取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行時間(時鐘周期)指令1T2T3T4T1指令2指令3

ARM9系列五級流水線:取指、譯碼、執(zhí)行+存儲訪問+回寫ARM處理器系列-ARM9(ARMv4T)ARM9系列在相同的工藝下,其性能是ARM7的2倍,具有以下特點:5級整數(shù)流水線,工作頻率一般為200MHz左右;支持32位ARM指令集和16位Thumb指令集;支持32位的高速AMBA總線接口;全性能的MMU哈佛結(jié)構(gòu),分離的數(shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。

ARM9編程結(jié)構(gòu)MPUARM技術(shù)小注-

AMBAAMBA(Advanced

Microcontroller

Bus

Architecture)提供一種特殊的機制,可將RISC處理器集成在其它IP芯核和外設(shè)中。2.0版AMBA標(biāo)準(zhǔn)定義了三組總線:AHB(AMBA高性能總線)

應(yīng)用于高性能、高時鐘頻率的系統(tǒng)模塊,它構(gòu)成了高性能的系統(tǒng)骨干總線APB(AMBA外設(shè)總線)是本地二級總線,通過橋和AHB相連。它主要是為了滿足不需要高性能流水線接口或不需要高帶寬接口的設(shè)備的互連。AMBA總線結(jié)構(gòu)示意S3c2410處理器結(jié)構(gòu)框圖ARM技術(shù)小注–存儲管理ARM內(nèi)核支持的硬件存儲管理方式有三種情況:a.無硬件保護,主要面向MCU類型應(yīng)用b.MPU–存儲器保護單元

對內(nèi)存劃分區(qū)域,規(guī)定不同的訪問限制,當(dāng)違反限制時,產(chǎn)生異常。

根據(jù)權(quán)限規(guī)定進(jìn)行保護,不支持存儲映射機制。c.MMU–存儲器管理單元

硬件支持虛擬地址與物理地址的映射轉(zhuǎn)換,并進(jìn)行訪問權(quán)限管理。復(fù)雜嵌入式操作系統(tǒng),如Linux必須要求MMU的支持。ARM處理器系列-ARM9E(ARMv5)ARM9E系列為綜合型處理器,使用單一的處理器內(nèi)核提供了微處理器、DSP、Java應(yīng)用系統(tǒng)的解決方案。與ARM9T系列相比,增加以下功能:支持DSP指令集,適合于需要高速數(shù)字信號處理的場合;最高主頻可達(dá)300MHz;支持VFP9浮點處理協(xié)處理器ARM9編程結(jié)構(gòu)ARM技術(shù)小注–

Cache與TCMARM內(nèi)核支持的硬件存儲管理方式有三種情況:Cache–高速緩存

介于CPU和主存儲器之間的一種高速緩沖存儲器,硬件實現(xiàn)各種機制,對CPU和程序員透明。

帶來的問題:程序的調(diào)入時間/是否調(diào)入不可知,數(shù)據(jù)的準(zhǔn)確回寫時間不可知,難以滿足實時系統(tǒng)要求。TCM

–緊密耦合存儲器

高速SRAM,屬于內(nèi)存的一部分,位置像Cache一樣,集成到處理器中,既可以加速存儲訪問,又能夠準(zhǔn)確獲知存儲操作的時間,用于滿足實時性要求高、速度要求快的應(yīng)用。ARM10E系列微處理器由于采用了新的體系結(jié)構(gòu),在相同的工藝下其性能是ARM9的2倍。具有以下特點:支持DSP指令集,適合于需要高速數(shù)字信號處理的場合;6級整數(shù)流水線;工作頻率一般為400MHz左右;支持32位ARM指令集和16位Thumb指令集;支持64位的高速AMBAAHB總線接口和內(nèi)部總線;支持VFP浮點處理協(xié)處理器;內(nèi)嵌并行讀/寫操作部件;全性能的MMU支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。

ARM處理器系列-ARM10E

(ARMv5E架構(gòu))ARM處理器系列-ARM11(ARMv6)ARM11系列。在0.13um工藝下,ARM11T的運行頻率高達(dá)500~1000MhzARM11包含一個64位端口、4種狀態(tài)的跳轉(zhuǎn)目標(biāo)地址緩存新的ARM11支持SIMD指令,可使某些算法速度提高2~3倍S3c6410ARM1176JZF-s內(nèi)核ARM處理器系列-SecurCoreSecurCore系列處理器主要針對安全要求高的設(shè)備,為智能卡及其他安全I(xiàn)C開發(fā)商提供獨特的32位系統(tǒng)設(shè)計,具有特定的反偽造方法,有助于防止對硬件和軟件的盜版。ARM處理器系列-StrongARM與XscaleStrongARM-

ARMv4架構(gòu),Intel,5級流水線Xsacle是Intel推出的StrongARM后續(xù)產(chǎn)品,基于ARMv5TE所設(shè)計的處理器,具有協(xié)處理器接口,可以直接擴展DSP處理器,是目前常見的一款A(yù)RM處理器。已于2006年,出售給Marvell公司ARM9處理器編程結(jié)構(gòu)哈佛結(jié)構(gòu)流水線技術(shù)ARM與Thumb存儲器模式運行模式內(nèi)部寄存器組異常處理ARM9ARM9TDMIARM9E-SARM920T-s3C2410/s3c2440ARM926EJ-S-s3C24162410

結(jié)

構(gòu)

圖Back1、哈佛結(jié)構(gòu)2、MMU3、AMBA架構(gòu)4、集成外設(shè)馮.諾伊曼與哈佛結(jié)構(gòu)-馮.諾伊曼結(jié)構(gòu)數(shù)據(jù)和程序存放到同一個存儲器中,使用同一存儲器端口進(jìn)行數(shù)據(jù)和指令的讀取。ARM7采用馮.諾伊曼與哈佛結(jié)構(gòu)-哈佛結(jié)構(gòu)數(shù)據(jù)和程序存放到兩個獨立的存儲器中,使用兩個不同的存儲器端口進(jìn)行數(shù)據(jù)和指令的讀取。ARM9采用流水線結(jié)構(gòu)ARM7采用的三級流水線結(jié)構(gòu)譯碼取指執(zhí)行add譯碼取指執(zhí)行sub譯碼取指執(zhí)行cmp時間AddSubCmp流水線結(jié)構(gòu)ARM9采用五級流水線結(jié)構(gòu)I-Cache和D-Cache分離的哈佛結(jié)構(gòu)增加數(shù)據(jù)寫回的專門數(shù)據(jù)通路和寄存器減少沖突執(zhí)行周期:移位/運算;計算物理地址訪問存儲器周期:讀/寫存儲器;或緩沖一拍Thumb指令為16位,ARM指令為32位。Thumb指令為二地址,ARM指令一般為三地址。Thumb指令集相比ARM指令集,沒有協(xié)處理器指令,沒有長乘和長乘加指令。Thumb指令除跳轉(zhuǎn)指令外,不帶條件碼字段,ARM指令大多帶有條件碼字段。指令執(zhí)行時,由CPSR的T位確定當(dāng)前是否為Thumb指令。ARM與Thumb指令集區(qū)別Thumb程序------------CODE16CMPR0,#0

BEQnext

MOVR1,#1next

MOVR2,#2ARM程序------------CODE32CMPR0,#0

MOVNER1,#1

MOVEQR2,#2ARM/thumb比較表ARM與Thumb工作狀態(tài)ARM工作狀態(tài)--執(zhí)行ARM指令Thumb工作狀態(tài)--執(zhí)行Thumb指令工作狀態(tài)切換:分為顯式切換和隱式切換兩種方式①執(zhí)行BX或者BLX指令②Thumb狀態(tài)下,發(fā)生異常,返回ARM狀態(tài)顯式隱式ARM狀態(tài)Thumb狀態(tài)BX/BLX異常程序演示ARM9的存儲器模式-數(shù)據(jù)類型ARM9處理器對于字,半字,字節(jié)的長度定義由于ARM9為32位處理器,存儲字長為32位。

字-Word:32位;半字-HalfWord:16位;字節(jié)-Byte:8位;每連續(xù)的四個字節(jié)存放一個字

邊界對準(zhǔn)問題端序問題邊界對齊-------------------ARM920T強制邊界對準(zhǔn)目的:提高訪存速度數(shù)據(jù):根據(jù)類型對準(zhǔn)指令:ARM指令按4字節(jié)對準(zhǔn)Thumb指令按2字節(jié)對準(zhǔn)

ARM9存儲器模式ARM9支持兩種存儲端序,分別是:大端對齊(Big-Endian)

構(gòu)成一個字的四個字節(jié),最高字節(jié)存放在地址最低的存儲字節(jié)中,而最低字節(jié)存放在地址最高的存儲字節(jié)中。小端對齊(Little-Endian)構(gòu)成一個字的四個字節(jié),最高字節(jié)存放在地址最高的存儲字節(jié)中,而最低字節(jié)存放在地址最低的存儲字節(jié)中。都是以最低地址作為字/半字的地址ARM9存儲器模式ARM9支持兩種存儲端序,分別是:大端對齊(Big-Endian)

構(gòu)成一個字的四個字節(jié),最高字節(jié)存放在地址最低的存儲字節(jié)中,而最低字節(jié)存放在地址最高的存儲字節(jié)中。小端對齊(Little-Endian)構(gòu)成一個字的四個字節(jié),最高字節(jié)存放在地址最高的存儲字節(jié)中,而最低字節(jié)存放在地址最低的存儲字節(jié)中。都是以最低地址作為字/半字的地址端序影響-------------------

12H34H56H78H最低地址最高地址0x500000200x50000023小端大端

存(STR)?。↙DR)指令的實際操作方式eg.LDRR1,[R0]

字節(jié)/半字操作的特殊功能寄存器的引用地址

因邊界對準(zhǔn),仍然占用4個字節(jié)地址

引用習(xí)慣:引用低位eg.以操作單字節(jié)的UART發(fā)送數(shù)據(jù)寄存器UTXH0為例ARM9存儲器模式端序控制-------------------?920T處理器內(nèi)核BIGEND信號電平狀態(tài)決定:

高電平-采用大端對準(zhǔn)

低電平-采用小端對準(zhǔn)?通過協(xié)處理器CP15的控制寄存器C1進(jìn)行配置:C1[7]=0-小端對準(zhǔn)(默認(rèn))=1-大端對準(zhǔn)

ARM9存儲器模式-示意圖大端對齊模式最高字節(jié)最低字節(jié)(0H)=12345678H12H34H56H78HARM9存儲器模式-示意圖小端對齊模式(常用)(0H)=12345678H最高字節(jié)最低字節(jié)78H56H34H12HARM9的7種運行模式正常模式異常模式

USR(User)

–普通用戶模式

SYS(System)

–系統(tǒng)模式特權(quán)模式

FIQ(FastInterruptRequst)

–快速中斷請求

IRQ(InterruptRequst)

–普通外部中斷模式

ABT(Abort)

–中止模式

UDF(Undefine)

–未定義模式

SVC(Supervisor)

–管理模式特權(quán)模式下,可通過修改CPSR的MODE位切換模式特權(quán)模式ARM為各種異常模式提供獨立的寄存器,方便異常處理ARM9的7種運行模式異常模式進(jìn)入原因主要目的FIQ外部/設(shè)備快速中斷請求請求處理IRQ外部/設(shè)備普通中斷請求請求處理ABT取指令或者數(shù)據(jù)過程中,MMU/MPU指示給定的地址無效存儲器保護處理UDF不屬于ARM/Thumb/協(xié)處理器指令的指令進(jìn)入流水線軟件模擬硬件協(xié)處理器SVCSWI指令和復(fù)位(Reset)操作系統(tǒng)的受保護模式5種異常模式對應(yīng)7種類型的異常事件ARM9的內(nèi)部寄存器寄存器組織情況不分組寄存器R0-R7、R15通用寄存器分組寄存器R8-R14--所有工作模式下,訪問的都是同一物理寄存器--R13~R14有特殊用途--存在影子寄存器,不同工作模式下,使用的是不同的一組物理寄存器狀態(tài)寄存器CPSR–當(dāng)前程序狀態(tài)寄存器SPSR–異常模式下保存狀態(tài)寄存器(31個)(6個)--R15是程序計數(shù)器PCARM9的內(nèi)部寄存器用戶可見寄存器R0R1R2R3R4R5R6R7R8R9R10R11R12R13R14R15通用寄存器R0~R15CPSRSPSR程序狀態(tài)寄存器R13、R14、R15有特殊用法R13(SP)R14(LR)R15(PC)17或18個R13–棧頂指針SPR14–鏈接寄存器LR,保存PC用于子程序和異常返回R15–程序計數(shù)器PC

!不能做其它用途R0R1R2R3R4R5R6R7R8R9R10R11R12R13R14R15(PC)CPSR通用寄存器狀態(tài)寄存器USR/

SYSR13_SVCR14_SVCSPSR_SVCR13_ABTR14_ABTSPSR_ABTR13_UNDR14_UNDSPSR_UNDR13_IRQR14_IRQSPSR_IRQ

SPSR_FIQ

R13_FIQR14_FIQR10_FIQR11_FIQR8_FIQR9_FIQR12_FIQ影子寄存器–不同模式下,擁有的專門的物理寄存器除影子寄存器,其余同名寄存器是同一個物理寄存器減少異常發(fā)生時,現(xiàn)場的保護和恢復(fù),加快響應(yīng)

SVC

ABT

UND

IRQ

FIQ全部物理寄存器37個,用戶可見17~18個APTCSARM–ThumbProcedureCallStandardAAPCSARMArchitectureProcedureCallStandard規(guī)定ARM編譯器編譯時,使用的一些在函數(shù)(ARM、Thumb、C)調(diào)用時,使用的一些規(guī)則,包括參數(shù)傳遞、堆棧使用、以寄存器的使用情況等。-------------------------分組寄存器書寫:Rxx_工作模式如:R14_abtARM9內(nèi)部寄存器組織方式-說明(1)所有的運行模式使用同樣的:一個程序計數(shù)器R15(PC)一個當(dāng)前狀態(tài)寄存器CPSR(2)為了加快異常發(fā)生時,現(xiàn)場的恢復(fù)的切換和恢復(fù)每種異常模式都擁有物理上獨立:

一個用于保存當(dāng)前PC的鏈接寄存器R14(LR)

一個用于保存CPSR狀態(tài)寄存器的SPSR

一個指向堆棧棧頂?shù)闹羔楻13(SP)(3)快速中斷模式FIQ格外有獨立的通用寄存器R8~R12Thumb狀態(tài)下的寄存器組是ARM狀態(tài)下寄存器組的子集Thumb工作狀態(tài)的寄存器組寄存器Thumb模式下的訪問R0~R7完全訪問R8~R12限制訪問只有MOV、ADD、CMP可以訪問R13(SP)、R14(LR)R15(PC)限制訪問PC不可直接操作R13和R14只作特殊用途CPSR、SPSRCPSR只能由指令影響,不能顯式修改,SPSR不可訪問正常使用受限訪問不能直接訪問Thumb模式下,需要修改CPSR/SPSR,只能切換到ARM模式下進(jìn)行Thumb工作狀態(tài)的寄存器分組情況ARM的狀態(tài)寄存器--

PSRCPSR和SPSR結(jié)構(gòu)相同,SPSR是進(jìn)入異常模式時CPSR的備份32位標(biāo)志域Flags[31:24]狀態(tài)域Status擴展域EXterned控制域Control[23:16][15:8][7:0]ARM920T,只有標(biāo)志域F和控制域C有意義,其余兩個域未定義ARM9標(biāo)志域FlagsNZCV保留31302928[27:24]ARM920T

條件標(biāo)志位-------------------

N-負(fù)標(biāo)志位

--運算結(jié)果為負(fù)數(shù)時,N=1

Z-零標(biāo)志位

--運算結(jié)果為0時,Z=1

C-進(jìn)位標(biāo)志位

--加法運算,C=進(jìn)位

減法運算,C=~借位

移位運算,C=最后移出位

V-溢出標(biāo)志位

--加/減運算,發(fā)生溢出,V=1

ARM的狀態(tài)寄存器--

PSR32位標(biāo)志域Flags[31:24]狀態(tài)域Status擴展域EXterned控制域Control[23:16][15:8][7:0]控制域ControlIFTM4M3M2M1M0處理器模式控制位[4:0][7:6]Thumb模式控制位中斷禁止控制位PSR的控制位-------------------

M4~M0-處理器模式控制位

--指示/設(shè)置處理器模式

I、F-中斷禁止位

--I(IRQ),普通中斷禁止位--F(FIQ),快速中斷禁止位

T-ARM/Thumb模式控制位

--指示/控制兩種工作模式之間的切換

PSR-條件標(biāo)志域條件碼-控制指令條件執(zhí)行

條件標(biāo)志位的作用如何影響條件標(biāo)志位SUBSN,N,#1ADDGEsum,sum,r2條件轉(zhuǎn)移指令-控制程序流程發(fā)生變化

againSUBN,N,#1

CMPN,#0BLTnextADDsum,sum,r2Bagainnext:加后綴“s”

EX:SUBN,N,#1SUBSN,N,#1

操作相同,但第一條不修改CPSR

比較指令

CMP、CMN、TST、TEQ

一定修改標(biāo)志位

PSR-控制域運行模式M[4]~M[0]用戶USR10000快速中斷FIQ10001外部中斷IRQ10010管理SVC10011中止ABT10111未定義UND11011系統(tǒng)SYS11111

M[4:0]指示當(dāng)前處理器的運行模式特權(quán)模式下,可直接修改M[4:0],進(jìn)行模式切換Sys32mdEQU0x1F…MRSr3,cpsrBICr3,r3,#0x1FORRr3,r3,#Sys32mdMSRcpsr_c,r3復(fù)位后,處理器處于管理模式SVCATPCS規(guī)定:cxfs-分別代表CPSR的四個域發(fā)生異常時,自動改變PSR-控制域中斷禁止位I(普通中斷IRQ),F(快速中斷FIQ)

注意:是禁止位,對應(yīng)位為1時,禁止相應(yīng)中斷

禁止中斷(以IRQ為例)----------------------------------

MRSr1,cpsr

ORRr1,r1,0x80MSRcpsr_c,r1使能中斷(以IRQ為例)----------------------------------MRSr1,cpsr

BICr1,r1,0x80MSRcpsr_c,r1CPSR中I位置1CPSR中I位清0PSR-控制域ARM/Thumb狀態(tài)指示/設(shè)置位T

T=1,處理器正在處理Thumb指令T=0,處理器正在處理ARM指令

ARM/Thumb模式切換----------------------------------------------------------------BXRm;PC=Rm&0xfffffffe

同時,將T=Rm[0]BLXRm;保存下一條指令的地址到LRPC=Rm&0xfffffffe

同時,將T=Rm[0];ARM代碼CODE32LDRr0,=tCode+1BXr0…..;Thumb代碼CODE16tCode…!ARM/Thumb邊界對準(zhǔn)

要切換到Thumb,則目的地址的最低位必須等于1ARM異常處理由內(nèi)部或者外部事件引起–異常類型7種

EX:外部中斷:IRQ、FIQ內(nèi)部原因:執(zhí)行未定義指令/SWI指令、訪存異常異常處理的優(yōu)先級順序發(fā)生異常時,處理器的響應(yīng)動作(硬件)異常處理程序的跳轉(zhuǎn)依據(jù)—異常向量表結(jié)束異常處理時,處理器的返回操作(軟件)ARM異常處理-異常類型異常類型發(fā)生原因運行模式復(fù)位芯片nRESET管腳,復(fù)位信號管理模式SVC未定義不屬于ARM/Thumb的指令進(jìn)入流水執(zhí)行階段未定義模式UND軟件中斷執(zhí)行SWI指令管理模式SVC預(yù)取中止取指令過程,由

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論