體系結(jié)構(gòu)chapter_第1頁
體系結(jié)構(gòu)chapter_第2頁
體系結(jié)構(gòu)chapter_第3頁
體系結(jié)構(gòu)chapter_第4頁
體系結(jié)構(gòu)chapter_第5頁
已閱讀5頁,還剩87頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第3章 ARM7體系結(jié)構(gòu)2第3章 目錄q1.簡介q2.ARM7TDMIq3.ARM7TDMI的模塊和內(nèi)部框圖q4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型q5.處理器狀態(tài)q6.處理器模式q7.內(nèi)部寄存器q8. 程序狀態(tài)寄存器q9.異常q10.中斷延遲q11.復位q12.存儲器及存儲器映射I/Oq13.尋址方式簡介q14.ARM7指令簡介q15.協(xié)處理器接口q16.調(diào)試接口簡介q17.ETM接口簡介3第3章 目錄q1.簡介q2.ARM7TDMIq3.ARM7TDMI的模塊和內(nèi)部框圖q4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型q5.處理器狀態(tài)q6.處理器模式q7.內(nèi)部寄存器q8. 程序狀態(tài)寄存器q9.異常q10.中斷延遲

2、q11.復位q12.存儲器及存儲器映射I/Oq13.尋址方式簡介q14.ARM7指令簡介q15.協(xié)處理器接口q16.調(diào)試接口簡介q17.ETM接口簡介43.1 ARM簡介 ARM公司簡介 ARM是Advanced RISC Machines的縮寫,它是一家微處理器行業(yè)的知名企業(yè),該企業(yè)設(shè)計了大量高性能、廉價、耗能低的RISC (精簡指令集)處理器。 公司的特點是只設(shè)計芯片,而不生產(chǎn)。它將技術(shù)授權(quán)給世界上許多著名的半導體、軟件和OEM廠商,并提供服務(wù)。53.1 ARM簡介 ARM公司簡介將技術(shù)授權(quán)給其它芯片廠商形成各具特色的ARM芯片. . .63.1 ARM簡介 ARM體系結(jié)構(gòu) ARM處理器為

3、RISC芯片,其簡單的結(jié)構(gòu)使ARM內(nèi)核非常小,這使得器件的功耗也非常低。它具有經(jīng)典RISC的特點:大的、統(tǒng)一的寄存器文件;裝載/保存結(jié)構(gòu),數(shù)據(jù)處理 操作只針對寄存器的內(nèi)容,而不直接對存儲器進行操作(load,store);簡單的尋址模式(寄存器尋址);統(tǒng)一和固定長度的指令域,簡化了指令的譯碼。73.1 ARM簡介 ARM體系結(jié)構(gòu)ARM體系結(jié)構(gòu)的特點:每條數(shù)據(jù)處理指令都對算術(shù)邏輯單元和移位器控制,以實現(xiàn)ALU和移位器的最大利用;地址自動增加和減少尋址模式,優(yōu)化程序循環(huán);多寄存器裝載和存儲指令實現(xiàn)最大數(shù)據(jù)吞吐量;所有指令的條件執(zhí)行實現(xiàn)最快速的代碼執(zhí)行。8指令的條件執(zhí)行ADD R0, R0, R1

4、R0+R1-R0 ADDS R0, R0, R1 ADDEQS R0, R0, R1第一個例子是一個基本的加法(把 R1 的值增加到 R0),它不影響狀態(tài)寄存器。 第二個例子是同一個加法,只不過它導致更改狀態(tài)寄存器。 最后一個例子是同一個加法,更改狀態(tài)寄存器。不同在于它是一個有條件的指令。只有前一個操作的結(jié)果是 EQ (如果設(shè)置了 Z 標志)的時候它才執(zhí)行。 93.1 ARM簡介 各ARM體系結(jié)構(gòu)版本 ARM體系結(jié)構(gòu)從最初開發(fā)到現(xiàn)在有了巨大的改進,并仍在完善和發(fā)展。為了清楚的表達每個ARM應(yīng)用實例所使用的指令集,ARM公司定義了5種主要的ARM指令集體系結(jié)構(gòu)版本,以版本號V1V5表示。103.

5、1 ARM簡介 各ARM體系結(jié)構(gòu)版本V1 該版本的ARM體系結(jié)構(gòu),只有26位的尋址空間,沒有商業(yè)化,其特點為:基本的數(shù)據(jù)處理指令(不包括乘法);字節(jié)、字和半字加載/存儲指令;具有分支指令,包括在子程序調(diào)用中使用的分支和鏈接指令;在操作系統(tǒng)調(diào)用中使用的軟件中斷指令。113.1 ARM簡介 各ARM體系結(jié)構(gòu)版本V2 同樣為26位尋址空間,現(xiàn)在已經(jīng)廢棄不再使用,它相對V1版本有以下改進:具有乘法和乘加指令;支持協(xié)處理器;快速中斷模式中的兩個以上的分組寄存器;具有原子性加載/存儲指令SWP和SWPB。123.1 ARM簡介 各ARM體系結(jié)構(gòu)版本V3 尋址范圍擴展到32位(事實上也基本廢棄),具有獨立的

6、程序:具有乘法和乘加指令;支持協(xié)處理器;快速中斷模式中具有的兩個以上的分組寄存器;具有原子性加載/存儲指令SWP和SWPB。133.1 ARM簡介 各ARM體系結(jié)構(gòu)版本V4 不在為了與以前的版本兼容而支持26位體系結(jié)構(gòu),并明確了哪些指令會引起未定義指令異常發(fā)生,它相對V3版本作了以下的改進:半字加載/存儲指令;字節(jié)和半字的加載和符號擴展指令;具有可以轉(zhuǎn)換到Thumb狀態(tài)的指令;用戶模式寄存器的新的特權(quán)處理器模式。143.1 ARM簡介 各ARM體系結(jié)構(gòu)版本V5 在V4版本的基礎(chǔ)上,對現(xiàn)在指令的定義進行了必要的修正,對V4版本的體系結(jié)構(gòu)進行了擴展并并增加了指令,具體如下:改進了ARM/Thumb

7、狀態(tài)之間的切換效率;允許非T變量和T變量一樣,使用相同的代碼生成技術(shù);增加計數(shù)前導零指令和軟件斷點指令;對乘法指令如何設(shè)置標志作了嚴格的定義。153.1 ARM簡介 ARM處理器核簡介 ARM公司開發(fā)了很多系列的ARM處理器核,目前最新的系列已經(jīng)是ARM11了,而ARM6核以及更早的系列已經(jīng)很罕見了。目前應(yīng)用比較廣泛的系列是:ARM7ARM9ARM9EARM10SecurCoreXscale163.1 ARM簡介 ARM處理器核簡介ARM7 該系列包括ARM7TDMI、ARM7TDMI-S、帶有高速緩存處理器宏單元的ARM720T和擴充了Jazelle的ARM7EJ-S。該系列處理器提供Thu

8、mb 16位壓縮指令集和EmbededICE軟件調(diào)試方式,適用于更大規(guī)模的SoC設(shè)計中。 ARM7系列廣泛應(yīng)用于多媒體和嵌入式設(shè)備,包括Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備,以及移動電話、PDA等無線設(shè)備。173.1 ARM簡介 ARM處理器核簡介ARM9 該系列包括ARM9TDMI、ARM920T和帶有告訴緩存處理器宏單元的ARM940T。除了兼容ARM7系列,而且能夠更加靈活的設(shè)計。 ARM9系列主要應(yīng)用于引擎管理、儀器儀表、安全系統(tǒng)和機頂盒等領(lǐng)域。183.1 ARM簡介 ARM處理器核簡介ARM10 該系列包括ARM1020E和ARM1020E處理器核,其核心在于使用向量浮點(VF

9、P)單元VFP10提供高性能的浮點解決方案,從而極大提高了處理器的整型和浮點運算性能。 可以用于視頻游戲機和高性能打印機等場合。193.1 ARM簡介 ARM處理器核簡介SecurCore 該系列涵蓋了SC100、SC110、SC200和SC210處理核。該系列處理器主要針對新興的安全市場,以一種全新的安全處理器設(shè)計為智能卡和其它安全IC開發(fā)提供獨特的32位系統(tǒng)設(shè)計,并具有特定反偽造方法,從而有助于防止對硬件和軟件的盜版。203.1 ARM簡介 ARM處理器核簡介Xscale Intel Xscale微控制器則提供全性能、高性價比、低功耗的解決方案,支持16位Thumb指令并集成數(shù)字信號處理(

10、DSP)指令。21第3章 目錄q1.簡介q2.ARM7TDMIq3.ARM7TDMI的模塊和內(nèi)部框圖q4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型q5.處理器狀態(tài)q6.處理器模式q7.內(nèi)部寄存器q8. 程序狀態(tài)寄存器q9.異常q10.中斷延遲q11.復位q12.存儲器及存儲器映射I/Oq13.尋址方式簡介q14.ARM7指令簡介q15.協(xié)處理器接口q16.調(diào)試接口簡介q17.ETM接口簡介223.2 ARM7TDMI 簡介 ARM7TDMI基于ARM體系結(jié)構(gòu)V4版本,是目前低端的ARM核。具有廣泛的應(yīng)用,其最顯著的應(yīng)用為數(shù)字移動電話。注意:“ARM核”并不是芯片,ARM核與其它部件如RAM、ROM、片內(nèi)外設(shè)

11、組合在一起才能構(gòu)成現(xiàn)實的芯片。233.2 ARM7TDMI 簡介 ARM7TDMI支持32位尋址范圍,并彌補了ARM6不能在低于5V電源電壓下工作的不足。ARM7TDMI的后綴意義為:支持高密度16位的Thumb指令集;支持片上調(diào)試;支持64位乘法;支持EmbededICE觀察硬件;ARM7TDMI 的可綜合(synthesizable)版本(軟核),對應(yīng)用工程師來說其編程模型與ARM7TDMI 一致;ARM7 T D M I - S243.2 ARM7TDMI 簡介 ARM7TDMI處理器是ARM通用32位微處理器家族的成員之一。它具有優(yōu)異的性能,但功耗卻很低,使用門的數(shù)量也很少。它屬于精簡

12、指令集計算機(RISC),比復雜指令集計算機(CISC)要簡單得多。這樣的簡化實現(xiàn)了:高的指令吞吐量;出色的實時中斷響應(yīng);小的、高性價比的處理器宏單元。253.2 ARM7TDMI 三級流水線 ARM7TDMI處理器使用流水線來增加處理器指令流的速度。這樣可使幾個操作同時進行,并使處理和存儲器系統(tǒng)連續(xù)操作,能提供0.9MIPS/MHz的指令執(zhí)行速度。 ARM7TDMI的流水線分3級,分別為:取指譯碼執(zhí)行263.2 ARM7TDMI 三級流水線 正常操作過程中,在執(zhí)行一條指令的同時對下一條指令進行譯碼,并將第三條指令從存儲器中取出。這三條指令之間的位置關(guān)系如下表所示:流水線上各指令的地址流水線工

13、位描述ARM指令集Thumb指令集PCPC取指指令從存儲器中取出PC-4PC-2譯碼對指令使用的寄存器進行譯碼PC-8PC-4執(zhí)行從寄存器組中讀出寄存器,執(zhí)行移位和ALU操作,寄存器被寫回到寄存器組中273.2 ARM7TDMI 存儲器訪問 ARM7TDMI處理器使用了馮諾依曼(Von Neumann)結(jié)構(gòu),指令和數(shù)據(jù)共用一條32位總線。只有裝載、存儲和交換指令可以對存儲器中的數(shù)據(jù)進行訪問。 數(shù)據(jù)可以是字節(jié)( 8位)、半字( 16位)或者字(32位)。283.2 ARM7TDMI 存儲器訪問計算機結(jié)構(gòu)說明:“馮諾依曼” 結(jié)構(gòu):把代碼作為一種特殊的數(shù)據(jù)來操作,指令總線和數(shù)據(jù)總線及其存儲區(qū)域是統(tǒng)一

14、的;“哈佛”結(jié)構(gòu):指令總線和數(shù)據(jù)總線及其存儲區(qū)是分開、獨立的。293.2 ARM7TDMI 存儲器訪問 ARM7TDMI處理器的存儲器接口可以使?jié)撛诘男阅艿靡詫崿F(xiàn),這樣減少了存儲器的使用。對速度有嚴格要求的控制信號使用流水線,這樣使系統(tǒng)控制功能以標準的低功耗邏輯實現(xiàn)。ARM7TDMI處理器的存儲器周期有4個基本類型:內(nèi)部周期;非連續(xù)的周期;連續(xù)的周期;協(xié)處理器寄存器的傳輸周期。30第3章 目錄q1.簡介q2.ARM7TDMIq3.ARM7TDMI的模塊和內(nèi)部框圖q4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型q5.處理器狀態(tài)q6.處理器模式q7.內(nèi)部寄存器q8. 程序狀態(tài)寄存器q9.異常q10.中斷延遲q11

15、.復位q12.存儲器及存儲器映射I/Oq13.尋址方式簡介q14.ARM7指令簡介q15.協(xié)處理器接口q16.調(diào)試接口簡介q17.ETM接口簡介31 3.3 ARM7TDMI的模塊和內(nèi)核框圖Em beddedIC E-R TCPUDBG R NG (0)DBG R NG (1)DBG EXT(0)DBG EXT(1)TAPADDR 31:0LO C KW R ITESIZE1:0PR O T1: 0TR ANS1:0W DATA31:0R DATA31:0DBG TDIDBG nTR STDBG TM SDBG TC K ENDBG TDO宏單元控制器協(xié)處理器接口信號12Em beddedIC

16、E-RTARM7TDMI模塊32 3.3 ARM7TDMI的模塊和內(nèi)核框圖ARM7TDMI模塊地址寄存器寄存器組31*32位寄存器(6個狀態(tài)寄存器)地址增加器乘法器桶形移位器32位ALU寫數(shù)據(jù)寄存器指令管線讀數(shù)據(jù)寄存器Thumb指令譯碼器指令譯碼和控制邏輯ADDR31:0CLKCLENCFGBIGENDnIRQnFIQnRESETABORTLOCKWRITESIZE1:0PROT1:0TRANS1:0DBG輸出DBG輸入CP控制CP握手WDATA31:0RDATA31:0掃描調(diào)試控制33 3.3 ARM7TDMI的模塊和內(nèi)核框圖ARM7TDMI模塊CPBCPACPnICPTBITCPSEQCP

17、nMREQCPnOPCCPnTRAN STRANS1 : 0 PROT1: 0 SIZE1: 0 WRITEABORTRDATA31:0WDATA31:0ADDR31 : 0 DBGTDODBGnTDO E NDBGnTRS TDBGTDIDBGTMSDBGTCKE NDBGCOMM T XDBGCOMM R XDBGRNG 0 DBGRNG 1 DBGENDBGEXT 0 DBGEXT 1 DBGnEXE CDBGACKDBGBREA KDBGRQLOCKCFGBIGE N DnRESETnFIQnIRQCLKENCLKDBGINST RVALIDARM7TDM I - SDMORE同步的E

18、m bededICE-RT掃描調(diào)試訪問 端口存儲器接口存儲器管理接 口協(xié)處理器接口時鐘中斷總線控制仲裁調(diào)試處理器34第3章 目錄q1.簡介q2.ARM7TDMIq3.ARM7TDMI的模塊和內(nèi)部框圖q4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型q5.處理器狀態(tài)q6.處理器模式q7.內(nèi)部寄存器q8. 程序狀態(tài)寄存器q9.異常q10.中斷延遲q11.復位q12.存儲器及存儲器映射I/Oq13.尋址方式簡介q14.ARM7指令簡介q15.協(xié)處理器接口q16.調(diào)試接口簡介q17.ETM接口簡介353.4 體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型 體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型ARM處理器支持下列數(shù)據(jù)類型:字節(jié) 8位半字 16位(必須

19、分配為占用兩個字節(jié))字 32為(必須分配為占用4各字節(jié))111234236 體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型注意:V4版本之后的ARM結(jié)構(gòu)都支持這3種結(jié)構(gòu)(包括V4版本),而以前的版本只支持字節(jié)和字;當數(shù)據(jù)類型定義為無符號型時,N位數(shù)據(jù)值使用正常的二進制格式表示范圍為02N-1的非負整數(shù);當數(shù)據(jù)類型定義為有符號型時,N位數(shù)據(jù)值使用2的補碼格式表示范圍為-2N-1+2N-1-1的整數(shù);3.4 體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型37 體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型注意:所有數(shù)據(jù)操作,例如ADD,都以字為單位;裝載和保存指令可以對字節(jié)、半字和字進行操作,當裝載字節(jié)或半字時自動實現(xiàn)零擴展或符號擴展;ARM指令的長度剛好

20、是1個字(分配為占用4個字節(jié)),Thumb指令的長度剛好是半字(占用2個字節(jié))。3.4 體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型38第3章 目錄q1.簡介q2.ARM7TDMIq3.ARM7TDMI的模塊和內(nèi)部框圖q4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型q5.處理器狀態(tài)q6.處理器模式q7.內(nèi)部寄存器q8. 程序狀態(tài)寄存器q9.異常q10.中斷延遲q11.復位q12.存儲器及存儲器映射I/Oq13.尋址方式簡介q14.ARM7指令簡介q15.協(xié)處理器接口q16.調(diào)試接口簡介q17.ETM接口簡介393.5 處理器狀態(tài) 處理器狀態(tài) ARM7TDMI處理器內(nèi)核使用V4T版本的ARM結(jié)構(gòu),該結(jié)構(gòu)包含32位ARM指令集和1

21、6位Thumb指令集。因此ARM7TDMI處理器有兩種操作狀態(tài):ARM狀態(tài):32位,這種狀態(tài)下執(zhí)行的是字方式的ARM指令;Thumb狀態(tài):16位,這種狀態(tài)下執(zhí)行半字方式的Thumb指令。注意:兩個狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容。403.5 處理器狀態(tài) 處理器狀態(tài) 使用BX指令將ARM7TDMI內(nèi)核的操作狀態(tài)在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,表示切換到AR

22、M狀態(tài)跳轉(zhuǎn)地址標號41第3章 目錄q1.簡介q2.ARM7TDMIq3.ARM7TDMI的模塊和內(nèi)部框圖q4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型q5.處理器狀態(tài)q6.處理器模式q7.內(nèi)部寄存器q8. 程序狀態(tài)寄存器q9.異常q10.中斷延遲q11.復位q12.存儲器及存儲器映射I/Oq13.尋址方式簡介q14.ARM7指令簡介q15.協(xié)處理器接口q16.調(diào)試接口簡介q17.ETM接口簡介423.6 處理器模式 簡介 ARM體系結(jié)構(gòu)支持7種處理器模式,分別為:用戶模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統(tǒng)模式,如下表所示。這樣的好處是可以更好的支持操作系統(tǒng)并提高工作效率。ARM7T

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

24、器模式 特權(quán)模式處理器模式說明備注 用戶 (usr)正常程序工作模式不能直接切換到其它模式 系統(tǒng) (sys)用于支持操作系統(tǒng)的特權(quán)任務(wù)等與用戶模式類似,但具有可以直接切換到其它模式等特權(quán) 快中斷 (fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時進入此模式 中斷 (irq)用于通用中斷處理IRQ異常響應(yīng)時進入此模式 管理 (svc)操作系統(tǒng)保護代碼系統(tǒng)復位和軟件中斷響應(yīng)時進入此模式 中止 (abt)用于支持虛擬內(nèi)存和/或存儲器保護在ARM7TDMI沒有大用處 未定義 (und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時進入此模式 除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部寄存器和一些

25、片內(nèi)外設(shè)在硬件設(shè)計上只允許(或者可選為只允許)特權(quán)模式下訪問。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。 未定義 (und) 中止 (abt) 管理 (svc) 中斷 (irq) 快中斷 (fiq) 系統(tǒng) (sys)453.6 處理器模式 異常模式處理器模式說明備注 用戶 (usr)正常程序工作模式不能直接切換到其它模式 系統(tǒng) (sys)用于支持操作系統(tǒng)的特權(quán)任務(wù)等與用戶模式類似,但具有可以直接切換到其它模式等特權(quán) 快中斷 (fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時進入此模式 中斷 (irq)用于通用中斷處理IRQ異常響應(yīng)時進入此模式 管理 (svc)

26、操作系統(tǒng)保護代碼系統(tǒng)復位和軟件中斷響應(yīng)時進入此模式 中止 (abt)用于支持虛擬內(nèi)存和/或存儲器保護在ARM7TDMI沒有大用處 未定義 (und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時進入此模式 未定義 (und) 中止 (abt) 管理 (svc) 中斷 (irq) 快中斷 (fiq) 這五種模式稱為異常模式。它們除了可以通過程序切換進入外,也可以由特定的異常進入。當特定的異常出現(xiàn)時,處理器進入相應(yīng)的模式。每種異常模式都有一些獨立的寄存器,以避免異常退出時用戶模式的狀態(tài)不可靠。463.6 處理器模式 用戶和系統(tǒng)模式處理器模式說明備注 用戶 (usr)正常程序工作模式不能直接切換到其

27、它模式 系統(tǒng) (sys)用于支持操作系統(tǒng)的特權(quán)任務(wù)等與用戶模式類似,但具有可以直接切換到其它模式等特權(quán) 快中斷 (fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時進入此模式 中斷 (irq)用于通用中斷處理IRQ異常響應(yīng)時進入此模式 管理 (svc)操作系統(tǒng)保護代碼系統(tǒng)復位和軟件中斷響應(yīng)時進入此模式 中止 (abt)用于支持虛擬內(nèi)存和/或存儲器保護在ARM7TDMI沒有大用處 未定義 (und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時進入此模式 這兩種模式都不能由異常進入,而且它們使用完全相同的寄存器組。 系統(tǒng)模式是特權(quán)模式,不受用戶模式的限制。操作系統(tǒng)在該模式下訪問用戶模式的寄存器就

28、比較方便,而且操作系統(tǒng)的一些特權(quán)任務(wù)可以使用這個模式訪問一些受控的資源。 系統(tǒng) (sys) 用戶 (usr)47第3章 目錄q1.簡介q2.ARM7TDMIq3.ARM7TDMI的模塊和內(nèi)部框圖q4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型q5.處理器狀態(tài)q6.處理器模式q7.內(nèi)部寄存器q8. 程序狀態(tài)寄存器q9.異常q10.中斷延遲q11.復位q12.存儲器及存儲器映射I/Oq13.尋址方式簡介q14.ARM7指令簡介q15.協(xié)處理器接口q16.調(diào)試接口簡介q17.ETM接口簡介483.7 內(nèi)部寄存器 簡介 在ARM7TDMI處理器內(nèi)部有37個用戶可見的寄存器。 在不同的工作模式和處理器狀態(tài)下,程序員可以

29、訪問的寄存器也不盡相同。49寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(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)R14R14_svcR14_abtR14_undR14_

30、irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)各模式下的寄存器50寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(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_fiqR

31、13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiq

32、R12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37個寄存器,分成兩大類:31個通用32位寄存器;6個狀態(tài)寄存器。51寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(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_fiqR

33、13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用戶用戶無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系統(tǒng)系統(tǒng)SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R

34、4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定義未定義SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中斷中斷SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中斷快中斷ARM狀態(tài)各模式下可以訪問的寄

35、存器52寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(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)R14R14_svcR14_abtR14_undR14_irqR14_fiq

36、R15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0 在匯編語言中寄存器R0R13為保存數(shù)據(jù)或地址值的通用寄存器。它們是完全通用的寄存器,不會被體系結(jié)構(gòu)作為特殊用途,并且可用于任何使用通用寄存器的指令。53寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存

37、器和程序計數(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)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_un

38、dSPSR_irqSPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7為未分組的寄存器,也就是說對于任何處理器模式,這些寄存器都對應(yīng)于相同的32位物理寄存器。54寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v

39、3)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)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R14_fiqR14_irqR14_undR14_abtR14_sv

40、cR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R14為分組寄存器。它們所對應(yīng)的物理寄存器取決于當前的處理器模式,幾乎所有允許使用通用寄存器的指令都允許使用分組寄存器55寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(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

41、_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_fiq一般的通用寄存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R12有兩個分組的物理寄存器。一個用于除F

42、IQ模式之外的所有寄存器模式,另一個用于FIQ模式。這樣在發(fā)生FIQ中斷后,可以加速FIQ的處理速度。56寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(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

43、_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器 寄存器R13、R14分別有6個分組的物理寄存器。一個用于用戶和系統(tǒng)模式,其余5個分別用于5種異常模式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR1357寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用

44、寄存器和程序計數(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)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_

45、undSPSR_irqSPSR_fiq堆棧指針寄存器R13(SP) 寄存器R13常作為堆棧指針(SP)。在ARM指令集當中,沒有以特殊方式使用R13的指令或其它功能,只是習慣上都這樣使用。但是在Thumb指令集中存在使用R13的指令。58寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(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)R1

46、1R11_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_fiq鏈接寄存器R14(LR) R14為鏈接寄存器(LR),在結(jié)構(gòu)上有兩個特殊功能:在每種模式下,模式自身的R14版本用于保存子程序返回地址;當發(fā)生異常時,將R14對應(yīng)的異常模式版本設(shè)置為異常返回地址(有些異常有一個小的固定偏移量)。59L

47、able程序A程序BR143.7 內(nèi)部寄存器 R14寄存器與子程序調(diào)用BL Lable地址A?MOV PC,LRR14(地址A)Lable?1.程序A執(zhí)行過程中調(diào)用程序B;操作流程2.程序跳轉(zhuǎn)至標號Lable,執(zhí)行程序B。同時硬件將“BL Lable”指令的下一條指令所在地址存入R14;3.程序B執(zhí)行最后,將R14寄存器的內(nèi)容放入PC,返回程序A;603.7 內(nèi)部寄存器 R14寄存器與異常發(fā)生 異常發(fā)生時,程序要跳轉(zhuǎn)至異常服務(wù)程序,對返回地址的處理與子程序調(diào)用類似,都是由硬件完成的。區(qū)別在于有些異常有一個小常量的偏移。613.7 內(nèi)部寄存器 R14寄存器注意要點 當發(fā)生異常嵌套時,這些異常之間

48、可能會發(fā)生沖突。例如:如果用戶在用戶模式下執(zhí)行程序時發(fā)生了IRQ中斷,用戶模式寄存器不會被破壞。但是如果允許在IRQ模式下的中斷處理程序重新使能IRQ中斷,并且發(fā)生了嵌套的IRQ中斷時,外部中斷處理程序保存在R14_irq中的任何值都將被嵌套中斷的返回地址所覆蓋。623.7 內(nèi)部寄存器 R14寄存器注意要點R14R14_irq用戶模式下的程序IRQ模式下的程序AareturnB.XA地址A地址A1.執(zhí)行用戶模式下的程序;2.發(fā)生IRQ中斷,硬件將某個地址存入IRQ模式下的R14_irq寄存器,用戶模式下的R14沒有被破壞;3. IRQ服務(wù)程序A執(zhí)行完畢,將R14_irq寄存器的內(nèi)容減去某個常量

49、后存入PC,返回之前被中斷的程序;未被破壞633.7 內(nèi)部寄存器 R14寄存器注意要點R14R14_irq用戶模式下的程序IRQ模式下的程序AaB.XA地址A地址A1.執(zhí)行用戶模式下的程序;2.發(fā)生IRQ中斷,硬件將某個地址存入IRQ模式下的R14_irq寄存器,用戶模式下的R14沒有被破壞;3. IRQ服務(wù)程序A執(zhí)行完畢,將R14_irq寄存器的內(nèi)容減去某個常量后存入PC,返回之前被中斷的程序;未被破壞IRQ模式下的程序BareturnB.XA地址B地址B4. 如果在IRQ處理程序中打開IRQ中斷,并且再次發(fā)生IRQ中斷,或者調(diào)用子程序;5. 硬件將返回地址保存在R14_irq寄存器中,原來

50、保存的返回地址將被覆蓋,造成錯誤;被破壞6. 在程序B返回到程序A,然后在返回到用戶模式下被中斷的程序時,發(fā)生錯誤,將不能正確返回;returnreturn 解決辦法是確保R14的對應(yīng)版本在發(fā)生中斷嵌套時不再保存任何有意義的值(將R14入棧),或者切換到其它處理器模式下。64ARM 和Thumb的區(qū)別 Thumb代碼所需要的存儲空間約為ARM代碼的60%-70% Thumb使用的指令數(shù)比ARM代碼多約30%-40% 若使用32位存儲器,ARM代碼比Thumb代碼快約40% 若使用16位存儲器,Thumb代碼比ARM快約40%-50%65寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶

51、系統(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)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_

52、abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序計數(shù)器R15(PC) 寄存器R15為程序計數(shù)器(PC),它指向正在取指的地址??梢哉J為它是一個通用寄存器,但是對于它的使用有許多與指令相關(guān)的限制或特殊情況。如果R15使用的方式超出了這些限制,那么結(jié)果將是不可預(yù)測的。663.7 內(nèi)部寄存器 讀R15的限制 正常操作時,從R15讀取的值是處理器正在取指的地址,即當前正在執(zhí)行指令的地址加上8個字節(jié)(兩條ARM指令的長度)。由于ARM指令總是以字為單位,所以R15寄存器的最低兩位總是為0。LDR R0,PC?PCPC-4PC-8正在執(zhí)行正在譯碼正在取指流水線狀態(tài)地址程序代碼67

53、3.7 內(nèi)部寄存器 讀R15的限制 當使用STR或STM指令保存R15時,會有一個例外。這些指令可能將當前指令地址加8字節(jié)或加12字節(jié)保存(將來可能還有其它數(shù)字)。偏移量是8還是12取決于具體的ARM芯片,但是對于一個確定的芯片,這個值是一個常量。 所以最好避免使用STR和STM指令來保存R15,如果很難做到,那么應(yīng)當在程序中計算出該芯片的偏移量。683.7 內(nèi)部寄存器 讀R15的限制計算偏移量程序代碼:SUBR1,PC,#4;R1=下面STR指令的地址STRPC,R0;保存STR指令地址+偏移量LDRR0,R0;然后重裝SUBR0,R0,R1;計算偏移量693.7 內(nèi)部寄存器 寫R15的限制

54、 正常操作時,寫入R15 的值被當作一個指令地址,程序從這個地址處繼續(xù)執(zhí)行(相當于執(zhí)行一次無條件跳轉(zhuǎn))。 703.7 內(nèi)部寄存器 寫R15的限制 由于ARM指令以字節(jié)為邊界,因此寫入R15的值最低兩位通常為0b00。具體的規(guī)則取決于內(nèi)核結(jié)構(gòu)的版本:在ARM結(jié)構(gòu)V3版及以下版本中,寫入R15的值的最低兩位被忽略,因此跳轉(zhuǎn)地址由指令的實際目標地址(寫入R15的值)和0 xFFFFFFFC相與得到;在ARM結(jié)構(gòu)V4版及以上版本中,寫入R15的值的最低兩位為0,如果不是,結(jié)果將不可預(yù)測。71寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計數(shù)器R0

55、(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)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irq

56、SPSR_fiq程序狀態(tài)寄存器CPSR 寄存器CPSR為程序狀態(tài)寄存器,在異常模式中,另外一個寄存器“程序狀態(tài)保存寄存器(SPSR)”可以被訪問。每種異常都有自己的SPSR,在因為異常事件而進入異常時它保存CPSR的當前值,異常退出時可通過它恢復CPSR。723.7 內(nèi)部寄存器 Thumb狀態(tài)寄存器 Thumb狀態(tài)寄存器集是ARM狀態(tài)集的子集,程序員可以直接訪問的寄存器為:8個通用寄存器R0R7;程序計數(shù)器(PC);堆棧指針(SP);鏈接寄存器(LR);有條件訪問程序狀態(tài)寄存器( CPSR)。73Thumb狀態(tài)各模式下的寄存器CPSRCPSR狀態(tài)寄存器R15PCR14_fiqR14_irqR1

57、4_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序計數(shù)器快中斷中斷未定義中止管理系統(tǒng)用戶各模式下實際訪問的寄存器寄存器在匯編中的名稱寄存器類別注意:括號內(nèi)為ATPCS中寄存器的命名,可以使用RN匯編偽指令將寄存器定義多個名字。其中ADS1.2的匯編程序直接支持這些名稱,但注意a1a4,v1v4必須用小寫。74Thumb狀態(tài)下的通用寄存器CPSRCPSR狀態(tài)寄存器R15P

58、CR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序計數(shù)器快中斷中斷未定義中止管理系統(tǒng)用戶各模式下實際訪問的寄存器寄存器在匯編中的名稱寄存器類別R7R6R5R4R3R2R1R0 在匯編語言中寄存器R0R7為保存數(shù)據(jù)或地址值的通用寄存器。對于任何處理器模式,它們中的每一個都對應(yīng)于相同的32為物理寄存器。它們是完全通用的寄存器,不會被體系結(jié)構(gòu)

59、作為特殊的用途,并且可用于任何使用通用寄存器的指令。75Thumb狀態(tài)下的堆棧指針寄存器(SP)CPSRCPSR狀態(tài)寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序計數(shù)器快中斷中斷未定義中止管理系統(tǒng)用戶各模式下實際訪問的寄存器寄存器在匯編中的名稱寄存器類別 堆棧指針SP對應(yīng)ARM狀態(tài)的寄存器R13。每個異常模式都有其自身

60、的SP分組版本,SP通常指向各異常模式所專用的堆棧。 注意:在發(fā)生異常時,處理器自動進入ARM狀態(tài)。R13_fiqR13_irqR13_undR13_abtR13_svcR1376Thumb狀態(tài)下的鏈接寄存器R14(LR)CPSRCPSR狀態(tài)寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序計數(shù)器快中斷中斷未定義中止管理系

溫馨提示

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

評論

0/150

提交評論