




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、ARM7體系構造1.ARM簡介2.ARM7TDMI3.ARM的模塊、內核和功能框圖4.ARM處置器形狀5.ARM處置器方式 6.ARM內部存放器 7.當前程序形狀存放器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統12.1 ARM簡介ARM公司簡介 ARM是Advanced RISC Machines的縮寫,它是一家微處置器行業(yè)的知名企業(yè),該企業(yè)設計了大量高性能、廉價、耗能低的RISC 精簡指令集處置器。 公司的特點是只設計芯片,而不消費。它將技術授權給世界上許多著名的半導體、軟件和OEM廠商,并提供效力。22.1 ARM簡介ARM公司簡介將技術授權給其它芯片廠商構成各具特征
2、的ARM芯片. . .32.1 ARM簡介RISC構造特性 RISC是精簡指令集計算機的縮寫,其目的是設計出在高時鐘頻率下單周期執(zhí)行,簡單而有效的指令集。ARM內核采用RISC體系構造,因此具有RISC的構造特點:具有大量的通用存儲器;獨特的裝載/保管load-store構造;簡單的尋址方式;一致和固定長度的指令格式。42.1 ARM簡介ARM體系構造 為了使ARM可以更好地滿足嵌入式運用的需求,ARM體系構造還有以下特點:每條數據處置指令可同時包含算術邏輯單元ALU的運算和移位處置,實現ALU和移位器的最大利用;運用地址自增和自減的尋址方式優(yōu)化程序循環(huán);裝載/保管指令對數據的批量傳輸,實現最
3、大數據吞吐量;大多數指令的條件執(zhí)行,實現最快速的代碼執(zhí)行。52.1 ARM簡介常用ARM處置器系列 ARM公司開發(fā)了很多系列的ARM處置器核,目前最新的系列是Cortex,而ARM6核以及更早的系列曾經很稀有了。當前運用比較多的ARM處置器核系列有:ARM7ARM9ARM10EXscaleARM11CortexARM9E62.1 ARM簡介ARM Cortex系列簡介 基于ARMv7版本的ARM Cortex系列產品由A、R、M三個系列組成,詳細分類延續(xù)了不斷以來ARM面向詳細運用設計CPU的思緒。 ARM CortexA運用途置器Application Processor 系列 R實時控制處
4、置Real Time Control 系列M微控制器Micro Controller 系列72.1 ARM簡介CortexTM-M3處置器簡介 該處置器是首款基于ARMv7-M架構的處置器,采用了純Thumb2指令的執(zhí)行方式,具有極高的運算才干和中斷呼應才干。 Cortex-M3主要運用于汽車車身系統,工業(yè)控制系統和無線網絡等對功耗和本錢敏感的嵌入式運用領域。目前最廉價的基于該內核的ARM單片機售價為1美圓。82.1 ARM簡介CortexTM-R4處置器簡介 該處置器是首款基于ARMv7架構的高級嵌入式處置器,其主要目的為產量宏大的高級嵌入式運用系統,如硬盤,噴墨式打印機,以及汽車平安系統等
5、等。 CortexTM-R4F處置器簡介 該處置器在CortexTM-R4處置器的根底上參與了代碼錯誤校正(ECC)技術,浮點運算單元(FPU)以及DMA綜合配置的才干,加強了處置器在存儲器維護單元、緩存、嚴密耦合存儲器、DMA訪問以及調試方面的才干。92.1 ARM簡介CortexTM-A8處置器簡介 該處置器是ARM公司所開發(fā)的基于ARMv7架構的首款運用級處置器,其特征是運用了可添加代碼密度和加強性能的技術、可支持多媒體以及信號處置才干的NEONTM技術、以及可以支持Java和其他文字代碼言語的提早和即時編譯的JazelleRTC技術。 眾多先進的技術使其適用于家電以及電子行業(yè)等各種高端
6、的運用領域。102.1 ARM簡介ARM7系列簡介 該系列包括ARM7TDMI、ARM7TDMI-S、帶有高速緩存處置器宏單元的ARM720T和擴展了Jazelle的ARM7EJ-S。該系列處置器提供Thumb 16位緊縮指令集和EmbededICE軟件調試方式,適用于更大規(guī)模的SoC設計中。 ARM7系列廣泛運用于多媒體和嵌入式設備,包括Internet設備、網絡和調制解調器設備,以及挪動、PDA等無線設備。112.1 ARM簡介ARM9系列簡介 該系列包括ARM9TDMI、ARM920T和帶有高速緩存處置器宏單元的ARM940T。除了兼容ARM7系列,而且可以更加靈敏的設計。 ARM9系列
7、主要運用于引擎管理、儀器儀表、平安系統和機頂盒等領域。122.1 ARM簡介ARM9E系列簡介 該系列為含有DSP指令集的綜合處置器,包括ARM926EJ-S、帶有高速緩存處置器宏單元的ARM966E-S/ARM946E-S。其內核在ARM7處置器內核的根底上運用了Jazelle加強技術,該技術支持一種新的Java操作形狀,允許在硬件中執(zhí)行Java字節(jié)碼。 ARM9E系列主要運用于下一代無線設備、數字消費品、成像設備、工業(yè)控制、存儲設備和網絡設備等領域。132.1 ARM簡介ARM10E系列簡介 該系列包括ARM1020E和ARM1020E處置器核,其中心在于運用向量浮點VFP單元VFP10提
8、供高性能的浮點處理方案,從而極大提高了處置器的整型和浮點運算性能。 可以用于視頻游戲機和高性能打印機等場所。142.1 ARM簡介Xscale簡介 Intel Xscale微控制器那么提供全性能、高性價比、低功耗的處理方案,支持16位Thumb指令并集成數字信號處置DSP指令。 主要運用于手提式通訊和消費電子類設備。15ARM7體系構造1.ARM簡介2.ARM7TDMI3.ARM的模塊、內核和功能框圖4.ARM處置器形狀5.ARM處置器方式 6.ARM內部存放器 7.當前程序形狀存放器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統16ARM7TDMI-S2.2 ARM7TDM
9、I簡介 ARM7TDMI是基于ARM體系構造V4版本的低端ARM核。 其彌補了ARM6很難在低于5V電壓下穩(wěn)定任務的缺乏,還添加了后綴所對應的功能:支持高密度16位的Thumb指令集;支持片上調試;支持64位乘法;支持EmbededICE察看硬件;ARM7TDMI 的可綜合synthesizable版本軟核,對運用工程師來說其編程模型與ARM7TDMI 一致; 留意:“ARM核并非芯片,ARM核與其它部件如RAM、ROM、片內外設組合在一同才干構成現實的芯片。172.2 ARM7TDMI存儲器的字與半字 從偶數地址開場的延續(xù)2個字節(jié)構成一個半字; 以能被4整除的地址開場的延續(xù)4個字節(jié)構成一個字
10、; ARM指令的長度剛好是一個字,Thumb指令的長度剛好是一個半字。182.2 ARM7TDMI存儲器的存儲方式 假設一個數據是從偶地址開場的延續(xù)存儲,那么它就是半字對齊,否那么就是非半字對齊; 假設一個數據是以能被4整除的地址開場的延續(xù)存儲,那么它就是字對齊,否那么就是非字對齊。192.2 ARM7TDMI三級流水線 ARM處置器運用流水線來添加處置器指令流的速度,這樣可使幾個操作同時進展,并使處置和存儲器系統延續(xù)操作,能提供0.9MIPS/MHz的指令執(zhí)行速度。 ARM7TDMI的流水線分3級,分別為:取指譯碼執(zhí)行取指譯碼執(zhí)行處置指令并將結果寫回存放器識別將要被執(zhí)行的指令從存放器裝載一條
11、指令 正常操作過程中,在執(zhí)行一條指令的同時對下一條(第二條)指令進展譯碼,并將第三條指令從存儲器中取出。 在ARM形狀下,流水線上各指令的地址為: 在Thumb形狀下,流水線上各指令的地址為:PCPC-4PC-8PCPC-2PC-4202.2 ARM7TDMI三級流水線構造的指令執(zhí)行順序PC指令1指令2指令3指令4程序存儲器PC-4PC-8PC+4周期1周期2周期3周期4周期5周期6取指 譯碼 執(zhí)行取指 譯碼 執(zhí)行取指 譯碼 執(zhí)行取指 譯碼 執(zhí)行周期周期2周期周期1周期周期3周期周期4 在第1個周期,PC指向指令1,此時指令1進入三級流水線的取指階段。1 在第2個周期,PC指向指令2,此時指令
12、1進入三級流水線的譯碼階段,同時取出指令2。2 在第3個周期,PC指向指令3,此時指令1進入三級流水線的執(zhí)行階段,指令2進入譯碼階段,取出指令3。3 在第4個周期,指令1執(zhí)行完成,指令2和指令3流水線推進一級,同時開場指令4的取指處置。4處置器執(zhí)行一條指令的三個階段21 執(zhí)行ADD PC,PC,#4指令后,PC的值為多少?2.2 ARM7TDMI思索題ADD PC,PC,#40 x40000 x40040 x40080 x400C地址指令PC取指譯碼執(zhí)行PCPC-4PC-8ARM7的3級流水線ADD 程序計數器R15(PC)總是指向“正在取指的指令,而不是指向“正在執(zhí)行的指令或“正在譯碼的指令
13、。 普通來說,人們習慣性商定將“正在執(zhí)行的指令作為參考點,那么:PC值當前程序執(zhí)行位置8 注:ARM形狀時,每條指令為4字節(jié)長。 PC指向0 x4000地址,取指ADD指令。 PC指向0 x4004地址,譯碼ADD指令。 PC指向0 x4008地址,執(zhí)行ADD指令,所以指令執(zhí)行的結果為: PC=PC+40 x400840 x400C。22ARM7體系構造1.ARM簡介2.ARM7TDMI3.ARM的模塊、內核和功能框圖4.ARM處置器形狀5.ARM處置器方式 6.ARM內部存放器 7.當前程序形狀存放器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統23CPU掃描鏈1掃描鏈1數
14、據總線1掃描鏈2協處置器信號接口EmbeddedICE-RTTAP 控制器EmbeddedICE-RT宏單元DBGTCKENDBGTMSDBGnTRSTDBGTDIDBGTDORDATA31:0WDATA31:0ADDR31:0TRANS1:0PROT1:0SIZE1:0WRITELOCKDBGRNG(0)DBGRNG(1)DBGEXT(1)DBGEXT(0)2.3 ARM模塊框圖CPU協處置接口信號EmbedICE硬件仿真功能模塊片上調試系統讀寫總線242.3 ARM內核框圖地址存放器存放器組31*32位存放器6個形狀存放器地址添加器乘法器桶形移位器32位ALU寫數據存放器指令管線讀數據存放
15、器Thumb指令譯碼器指令譯碼和控制邏輯ADDR31:0CLKCLENCFGBIGENDnIRQnFIQnRESETABORTLOCKWRITESIZE1:0PROT1:0TRANS1:0DBG輸出DBG輸入CP控制CP握手WDATA31:0RDATA31:0掃描調試控制252.3 ARM功能框圖ARM7TDMI-S處置器LOCKCLKCLKENnIRQnFIQnRESETCFGBIGENDDBGRQDMOREDBGINSTRVAILDDBGBREAKDBGACKDBGnEXECDBGEXT1DBGEXT0DBGENDBGCOMMTXDBGCOMMRXDBGRNG0DBGRNG1DBGTCKE
16、NDBGTMSDBGTDIDBGnTRSTDBGTDODBGnTDOENADDR31:0WDATA31:0RDATA31:0ABORTWRITESIZE1:0PROT1:0TRANS1:0CPnTRANSCPnOPCCPnMREQCPSEQCPTBITCPnICPACPB同步的掃描調試訪問接口存儲器接口存儲器管理接口協處置器接口時鐘中斷總線控制仲裁調試26ARM7體系構造1.ARM簡介2.ARM7TDMI3.ARM的模塊、內核和功能框圖4.ARM處置器形狀5.ARM處置器方式 6.ARM內部存放器 7.當前程序形狀存放器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統272.4
17、 ARM處置器形狀處置器形狀 ARM7TDMI處置器內核包含2套指令系統,分別為ARM指令集和Thumb指令,并且各自對應1種處置器的形狀:ARM形狀:32位,處置器執(zhí)行字方式的ARM指令,處置器默以為此形狀;Thumb形狀:16位,處置器執(zhí)行半字方式的Thumb指令。留意:兩個形狀之間的切換并不影響處置器方式或存放器內容。282.4 ARM處置器形狀形狀切換的一個例子地址最低位為0,表示切換到ARM形狀 運用BX指令將ARM內核的操作形狀在ARM形狀和Thumb形狀之間進展切換。ARM指令集Thumb指令集CODE32LDRR0, =Lable+1BX R0CODE16Lable MOV R
18、1, #12CODE16LDR R0, =LableBX R0CODE32LableMOV R1, #10地址最低位為1,表示切換到Thumb形狀跳轉地址標號執(zhí)行完BX指令,處置器切換到Thumb形狀,開場執(zhí)行Thumb指令程序代碼指令集關系 從ARM形狀切換到Thumb形狀的程序代碼如下: 從Thumb形狀切換到ARM形狀的程序代碼如下:執(zhí)行完BX指令,處置器切換到ARM形狀,開場執(zhí)行ARM指令29ARM7體系構造1.ARM簡介2.ARM7TDMI3.ARM的模塊、內核和功能框圖4.ARM處置器形狀5.ARM處置器方式 6.ARM內部存放器 7.當前程序形狀存放器 8.ARM體系的異常、中斷
19、及其向量表 9.ARM體系的存儲系統302.5 ARM處置器方式 簡介 ARM體系構造支持7種處置器方式,分別為:用戶方式、快中斷方式、中斷方式、管理方式、中止方式、未定義方式和系統方式。這樣的益處是可以更好的支持操作系統并提高任務效率。ARM7TDMI完全支持這七種方式。31 除用戶方式外,其它方式均為特權方式。ARM內部存放器和一些片內外設在硬件設計上只允許或者可選為只允許特權方式下訪問。此外,特權方式可以自在的切換處置器方式,而用戶方式不能直接切換到別的方式。 處置器方式 這兩種方式都不能由異常進入,想要進入必需修正CPSR,而且它們運用完全一樣的存放器組。系統方式是特權方式,不受用戶方
20、式的限制。操作系統在該方式下訪問用戶方式的存放器就比較方便,而且操作系統的一些特權義務可以運用這個方式訪問一些受控的資源。 這五種方式稱為異常方式。它們除了可以經過程序切換進入外,也可以由特定的異常進入。當特定的異常出現時,處置器進入相應的方式。每種異常方式都有一些獨立的存放器,以防止異常退出時用戶方式的形狀不可靠。何時進入異常方式,詳細規(guī)定如下:處置器復位之后進入管理方式,操作系統內核通常處于管理方式;當處置器訪問存儲器失敗時,進入數據訪問中止方式;當處置器遇到沒有定義或不支持的指令時,進入未定義方式;中斷方式與快速中斷方式分別對ARM處置器2種不同級別的中斷作出呼應。32ARM7體系構造1
21、.ARM簡介2.ARM7TDMI3.ARM的模塊、內核和功能框圖4.ARM處置器形狀5.ARM處置器方式 6.ARM內部存放器 7.當前程序形狀存放器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統332.6 ARM內部存放器簡介 在ARM處置器內部共有37個用戶可訪問的存放器,分別為31個通用32位存放器和6個形狀存放器。 ARM處置器共有7種不同的處置器方式,每種方式都有一組相應的存放器組,最多可以18個活動的存放器。34ARM形狀各方式下的存放器 一切的37個存放器,分成兩大類:31個通用32位存放器;6個形狀存放器。35ARM形狀各方式下可以訪問的存放器36未分組的通用
22、存放器存放器R0R7為未分組的通用存放器,它們在任何處置器方式都對應于一樣的32位物理存放器。第一類分組的通用存放器存放器R8R12有兩個分組的物理存放器。一個用于除FIQ方式之外的一切存放器方式,另一個用于FIQ方式。在發(fā)生FIQ中斷后,處置器不用為維護存放器而浪費時間,從而加速了FIQ的處置速度。第二類分組的通用存放器存放器R13、R14分別有6個分組的物理存放器。1個用于用戶和系統方式,其他5個分別用于5種異常方式。存放器R13通常作為堆棧指針SP,用于保管待運用的存放器的內容。存放器R14稱為鏈接存放器LR,在構造上有兩個特殊功能:當運用BL指令調用子程序時,前往地址將自動存入R14中
23、;當發(fā)生異常時,將R14對應的異常方式版本設置為異常前往地址有些異常有一個小的固定偏移量。程序計數器存放器R15稱為程序計數器PC,它指向正在“取指的指令。形狀存放器存放器CPSR為當前程序形狀存放器,在異常方式中,另外一個存放器“程序形狀保管存放器SPSR可以被訪問。每種異常都有本人的SPSR,在進入異常時它保管CPSR的當前值,異常退出時可經過它恢復CPSR。372.6 ARM內部存放器在Thumb形狀各方式下實踐訪問的存放器 Thumb形狀存放器集是ARM形狀集的子集,程序員可以直接訪問的存放器為:8個通用存放器R0R7;程序計數器PC;堆棧指針SP;鏈接存放器LR;當前程序形狀存放器
24、CPSR。38在Thumb形狀各方式下的存放器 未分組的通用存放器 第二類分組的通用存放器在匯編言語中存放器R0R7為通用存放器,對于任何處置器方式,它們中的每一個都對應于一樣的32為物理存放器。堆棧指針SP對應ARM形狀的存放器R13。每個異常方式都有其本身的SP分組版本,SP通常指向各異常方式所公用的堆棧。留意:在發(fā)生異常時,處置器自動進入ARM形狀。鏈接存放器LR對應ARM形狀存放器R14。留意:在發(fā)生異常時,處置器自動進入ARM形狀。39ARM形狀Thumb存放器在ARM形狀存放器上的映射Thumb形狀 Thumb形狀R0R7與ARM形狀R0R7一樣;1 Thumb形狀CPSR(無SP
25、SR)與ARM形狀CPSR一樣。5 Thumb形狀SP映射到ARM形狀R13;2 Thumb形狀LR映射到ARM形狀R14; 3 Thumb形狀PC映射到ARM形狀R15(PC);4低端存放器高端存放器 在Thumb形狀中,高端存放器的訪問是遭到限制的,只需MOV、CMP和ADD指令可以對其訪問,可以用于數據的快速暫存。40ARMThumbARMResetBXBXARM中斷效力程序正常程序事件ARMARMISR1ISR2ISRn形狀切換過程異常發(fā)生進入退出 系統復位,自動切換到ARM形狀。1 經過BX和BLX指令改動當前處置器方式,使之從ARM形狀切換到Thumb形狀。2 在Thumb形狀下,
26、正常程序執(zhí)行時產生中斷異常。3 處置器進入中斷異常,自動的將方式切換到ARM形狀。4 異常處置終了,前往正常程序,此時處置器自動的將方式切換到Thumb形狀。5 再次經過BX和BLX指令改動當前處置器方式,使之從Thumb形狀切換到ARM形狀。6 程序在正常運轉的過程中,復位事件產生,導致系統復位。41ARM7體系構造1.ARM簡介2.ARM7TDMI3.ARM的模塊、內核和功能框圖4.ARM處置器形狀5.ARM處置器方式 6.ARM內部存放器 7.當前程序形狀存放器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統422.7 當前程序形狀存放器 簡介 ARM內核包含1個CPSR
27、和5個僅供異常處置程序運用的SPSR。CPSR反映當前處置器的形狀,其包含:4個條件代碼標志(負標志N、零標志Z、進位標志C和溢出標志V );2個中斷制止位(IRQ制止與FIQ制止);5個對當前處置器方式進展編碼的位(M4:0);1個用于指示當前執(zhí)行指令的位(ARM指令還是Thumb指令)。432.7 當前程序形狀存放器 程序形狀存放器的格式NZCV IM0M1M2M3M4TF. . .31 30 29 28 27 26 8 7 6 5 4 3 2 1 0條件代碼標志保管控制位溢出標志進位或借位擴展零負或小于IRQ制止FIQ制止形狀位方式位NZCVIM0M1M2M3M4TF442.7 當前程序
28、形狀存放器 條件代碼標志各標志位的含義如下:負標志N:運算結果的第31位值,記錄標志設置操作的結果;零標志Z:假設標志設置的操作為0,那么置位;進位標志C:記錄無符號加法溢出,減法無借位,循環(huán)移位;溢出標志V:記錄標志設置操作的有符號溢出。45 警告:絕對不要強迫改動CPSR存放器中的控制位T。假設這樣做,處置器將進入一個無法預測的形狀。2.7 當前程序形狀存放器 控制位1、中斷制止控制位I和F;2、處置器形狀位T;3、處置器方式位M0M4。當控制位I置位時,IRQ中斷被制止;當控制位F置位時,FIQ中斷被制止。當控制位T置位時,處置器正在Thumb形狀下運轉;當控制位T清零時,處置器正在AR
29、M形狀下運轉。 留意:不是一切方式位的組合都定義了有效的處置器方式,假設將非法值寫入M4:0中,處置器將進入一個無法恢復的方式。462.7 當前程序形狀存放器 保管位 CPSR中的保管位被保管未來運用。當改動CPSR標志和控制位時,請確認沒有改動這些保管位。 另外,請確保您的程序不依賴于包含特定值的保管位,由于未來的處置器能夠會將這些位設置為1或者0。47ARM7體系構造1.ARM簡介2.ARM7TDMI3.ARM的模塊、內核和功能框圖4.ARM處置器形狀5.ARM處置器方式 6.ARM內部存放器 7.當前程序形狀存放器 8.ARM體系的異常、中斷及其向量表 9.ARM體系的存儲系統482.8
30、 ARM體系的異常 異常簡介 只需正常的程序流被暫時中止,處置器就進入異常方式。例如在用戶方式下執(zhí)行程序時,當外設向處置器內核發(fā)出中斷懇求導致內核從用戶方式切換到異常中斷方式。 假好像時發(fā)生兩個或更多異常,那么將按照固定的順序來處置異常。 49 異常入口/出口匯總下表所示為異常前往地址值以及退出異常處置程序所引薦運用的指令。 留意:“MOVS PC,R14_svc是指在管理方式執(zhí)行MOVS PC,R14 指令,同樣類似的指令還有“MOVS PC,R14_und、“SUBS PC,R14_abt,#4等。502.8 ARM體系的異常 異常向量表注:表中的I和F表示不對該位有影響,保管原來的值。
31、512.8 ARM體系的異常 異常優(yōu)先級 當多個異常同時發(fā)生時,一個固定的優(yōu)先級決議系統處置它們的順序。 優(yōu)先級由高到低522.8 ARM體系的異常 異常的進入當一個異常導致方式切換時,內核自動的做如下處置: 將異常處置程序的前往地址加固定的偏移量保管到相應異常方式下的LR; 將CPSR的當前值保管到相應異常方式下的SPSR; 設置CPSR為相應的異常方式; 設置PC為相應異常處置程序的中斷入口向量地址,跳轉到相應的異常中斷處置程序執(zhí)行;用戶方式SPSR異常方式CPSRR15(PC)R14(LR)R0R13BackAddrJumpAddrUserModeExceptionMode程序代碼正常運
32、轉在用戶方式下。 532.8 ARM體系的異常 異常的進入當一個異常導致方式切換時,內核自動的做如下處置: 將異常處置程序的前往地址加固定的偏移量保管到相應異常方式下的LR; 將CPSR的當前值保管到相應異常方式下的SPSR; 設置CPSR為相應的異常方式; 設置PC為相應異常處置程序的中斷入口向量地址,跳轉到相應的異常中斷處置程序執(zhí)行;542.8 ARM體系的異常 異常的退出 當異常處置程序終了時,異常處置程序必需: 前往到發(fā)生異常中斷的指令的下一條指令處執(zhí)行,即就是說將LR中的值減去偏移量后移入PC; 將SPSR的值復制回CPSR;SPSR異常方式用戶方式CPSRR15(PC)R14(LR
33、)R0R13BackAddrCurrentAddrUserModeExceptionModeBackAddrOff552.8 ARM體系的異常 異常的退出 當異常處置程序終了時,異常處置程序必需: 前往到發(fā)生異常中斷的指令的下一條指令處執(zhí)行,即就是說將LR中的值減去偏移量后移入PC; 將SPSR的值復制回CPSR; 清零在入口處置位的中斷制止標志。562.8 ARM體系的異常 復位異常 當nRESET信號被拉低時,ARM處置器放棄正在執(zhí)行的指令,等到nRESET信號再次變高時,處置器執(zhí)行一下操作: 強迫M4:0變?yōu)閎10011,系統進入管理方式; 將CPSR中的標志位I和F置位,IRQ與FIQ
34、中斷被制止; 將CPSR中的標志位T清零,處置器處于ARM形狀; 強迫PC從地址0 x00開場對下一條指令進展取指; 前往到ARM形狀并恢復執(zhí)行。572.8 ARM體系的異常 中斷懇求異常 只需當CPSR中相應的中斷屏蔽位被去除時,才能夠發(fā)生IRQ異常,中斷懇求IRQ異常由一個nIRQ輸入端的低電平所產生的正常中斷。 注:中斷異常產生時,中斷異常方式下的R14保管的是PC的值。取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行周期4 周期5周期1 周期2 周期3PC-8指令1指令2指令3PC-4PC中斷發(fā)生周期指令1的執(zhí)行不會中斷;異常程序終了時前往到指令2;進入中斷效力程序時,指令3地址被保管在R14中。
35、58 程序運轉在用戶方式下,當一個IRQ異常中斷發(fā)生時,內核切換到“中斷方式,并自動的做如下處置: 2.8 ARM體系的異常 進入IRQ異常方式R0R12R13_usrR14_usrR15CPSR-R13_irqR14_irqSPSR_irqUSR方式IRQ方式2I=1,T=0,mod=irq3異常向量地址0 x00184ISR代碼將存放器壓棧 51 將異常處置程序的前往地址保管到異常方式下的R14(R14_irq)中。1 用戶方式的CPSR被保管到新的IRQ中斷異常方式SPSR_irq中。2 修正CPSR,制止新的IRQ中斷產生,進入ARM形狀,設置為IRQ方式。3 設置IRQ方式下的PC為
36、IRQ異常處置程序的中斷入口向量地址0 x00000018。4 將IRQ中斷異常方式的棧頂指針保管到R13_irq中,之后軟件處置程序調用中斷效力程序為中斷源效力。559 從R13_irq中獲取IRQ中斷異常方式的棧頂指針。12.8 ARM體系的異常 退出IRQ異常方式R0R12R13_usrR14_usrR15CPSR-R13_irqR14_irqSPSR_irqIRQ方式USR方式恢復CPSR2R14減4后為前往地址3ISR代碼將存放器出棧 1 將SPSR_irq中的內容復制到CPSR。2 由于流水線的特性,將R14_irq指向的地址減去一個偏移量后存入R15(PC),實現指令為:SUBS
37、 PC,R14_irq,#4 3 中斷效力程序執(zhí)行終了后,系統將經過以下幾步軟件操作前往用戶方式:602.8 ARM體系的異常 快速中斷懇求異常 快速中斷懇求(FIQ)適用于對一個突發(fā)事件的快速呼應,這得益于在ARM形狀中,快中斷方式有8個公用的存放器可用來滿足存放器維護的需求這可以加速上下文切換的速度。 不論異常入口是來自ARM形狀還是Thumb形狀,FIQ處置程序都會經過執(zhí)行下面的指令從中斷前往:SUBS PC,R14_fiq,#4 在一個特權方式中,可以經過置位CPSR中的F位來制止FIQ異常。61系統方式FIQ方式程序寄存器組 FIQ中斷的例子“?表示該位無關SPSR_fiqPCCPS
38、RSPSRMODTFI. . .N Z C VSYS100. . .? ? ? ?R8R12R8_fiqR12_fiqLRLR_sysLR_fiqR0R7SP_sysSP_fiqThumbThumb指令1指令2指令3BX指令BX指令ARMARMSYS100.?FIQ011. . .? ? ? ?BackAddrJumpAddrJump1 0SYS100. . .? ? ? ?JumpBackAddr-4 Thumb不是一個完好的體系構造,不能指望處置器只執(zhí)行Thumb指令而不支持ARM指令集。 因此,Thumb指令只需求支持通用功能,必要時可以借助于完善的ARM指令集,比如,一切異常自動進入A
39、RM形狀。 在系統方式下運轉用戶程序,當前處置器處于Thumb形狀,執(zhí)行Thumb指令代碼,同時處置器還允許IRQ和FIQ中斷。 指令1的在執(zhí)行過程產生了FIQ中斷。 注:完成指令1的執(zhí)行后才呼應中斷。 FIQ中斷相應過程中,硬件自動執(zhí)行如下動作:將CPSR存放器內容存入IRQ方式的SPSR存放器置為F和I制止FIQ和IRQ中斷;清零T位進入ARM形狀;設置MOD位,切換處置器方式至FIQ方式。將下一條的地址存入FIQ方式的LR存放器,即指令3的地址。將跳轉地址存入PC,即FIQ中斷效力函數的入口地址,實現跳轉。 FIQ中斷效力程序在ARM形狀下執(zhí)行現場維護等操作。 FIQ中斷效力程序運用BX
40、指令,將處置器從ARM形狀切換到Thumb形狀,經過置位CPSR的T位實現。 FIQ中斷效力程序開場執(zhí)行Thumb指令。 FIQ中斷效力程序運用BX指令,將處置器從Thumb形狀切換到ARM形狀,經過去除CPSR的T位實現。 FIQ中斷效力程序在ARM形狀下執(zhí)行恢復中斷現場等操作。 FIQ中斷異常處置終了后,異常處置程序完成以下動作:將SPSR存放器的值復制回CPSR存放器;將LR存放的值減去一個常量FIQ異常為4后復制到PC存放器,跳轉到被中斷的用戶程序指令2的地址。622.8 ARM體系的異常 未定義的指令異常 未定義指令異常是內部異常中斷,當ARM處置器遇到一條本人和系統內部任何協處置器
41、都無法執(zhí)行的指令時,就會發(fā)生未定義指令異常,從而進入中斷處置程序,同時軟件可運用這一機制經過仿真未定義的協處置器指令來擴展ARM指令集。 在仿真失敗的指令后,捕獲處置器執(zhí)行下面的指令: MOVS PC,R14_und632.8 ARM體系的異常 中止異常 中止表示當前對存儲器的訪問不能被完成,這是由外部ABORT輸入信號引起的異常中斷。中止類型有2種類型: 預取指中止:由程序存儲器引起的中止異常; 數據中止:由數據存儲器引起的中止異常。642.8 ARM體系的異常 預取指中止 當發(fā)生預取指中止時,ARM內核將預取的指令標志為無效,但在指令到達流水線的執(zhí)行階段時才進入異常。假設指令在流水線中由于發(fā)生分支而沒有被執(zhí)行,中止將不會發(fā)生。 在處置中止的緣由之后,不論處于哪種處置器操作形狀,處置程序都會執(zhí)行下面的指令恢復PC和CPSR并重試被中止的指令: SUBS PC,R14_abt,#4652.8 ARM體系的異常 數據中止 當發(fā)生數據中止異常時,異常會在“導致異常的指令執(zhí)行后的下一條指令發(fā)生。在這種情況下,理想的情況是進入數據中止異常的ISR,然后在內存中挑選出問題
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金融投資者的商業(yè)計劃書制作指南
- 金融行業(yè)的大數據挖掘案例分析
- 跨領域團隊合作的實踐與思考
- 跨區(qū)域大健康產業(yè)的發(fā)展與合作模式
- 科技創(chuàng)新設備維修協議
- 貸款人資格審查協議
- 《解密高效課堂》讀書心得體會
- 物流園區(qū)規(guī)劃與運營-第1篇-洞察闡釋
- 魯教版初二數學上冊教案
- 線上銷售平臺合作經營協議
- 公務員職務與及職級并行規(guī)定課件
- 紅河縣年產50噸珍珠棉建設項目環(huán)評報告
- 術中大出血的搶救及護理配合
- 四川甘孜州遴選(考調)公務員39人2024年國家公務員考試考試大綱歷年真題420筆試歷年難易錯點考題薈萃附帶答案詳解
- 商務英語聽說-對外經濟貿易大學中國大學mooc課后章節(jié)答案期末考試題庫2023年
- 第十二講 建設社會主義生態(tài)文明PPT習概論2023優(yōu)化版教學課件
- 國家濕地公園總體規(guī)劃導則
- 閬中張飛牛肉名稱的來歷
- 2021上半年江津區(qū)社區(qū)專職工作者《綜合基礎知識》試題
- 2023上海虹口區(qū)初三語文一模作文寫作指導及范文:這也是我的舞臺
- 護理不良事件管理、上報制度及流程
評論
0/150
提交評論