ARM體系結構及編程模型_第1頁
ARM體系結構及編程模型_第2頁
ARM體系結構及編程模型_第3頁
ARM體系結構及編程模型_第4頁
ARM體系結構及編程模型_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第二章 ARM體系結構及編程模型10/12/2022主講張道德1提綱13245ARM技術的應應用領域域及特點點ARM處理器的的寄存器器組織ARM處理器的的工作模模式ARM微處理器器系列67第二章ARM體系結構構及編程程模型ARM異常處理理ARM處理器的的工作狀狀態(tài)ARM處理器的的存儲器器格式2ARMAdvancedRISC MachinesARM(AdvancedRISC Machines),既可以認認為是一一個公司司的名字字,也可可以認為為是對一一類微處處理器的的通稱,還可以以認為是是一種技技術的名名字。ARM技術的應應用領域域及特點點1991年ARM公司成立立于英國國劍橋,主要出出售芯片

2、片設計技技術的授授權。3ARM公公司的的Chipless模式世界各大大半導體體生產商商從ARM公司購買買其設計計的ARM微處理器器核,根根據各自自不同的的應用領領域,加加入適當當?shù)耐鈬鷩娐?,從而形形成自己己的ARM微處理器器芯片進進入市場場。ARM技術的應應用領域域及特點點基于ARM技術的微微處理器器應用約約占據了了32位RISC微處理理器75以上的的市場份份額,ARM技術正在在逐步滲滲入到我我們生活活的各個個方面。我國的中興集成成電路、大唐電訊訊、中芯芯國際和和上海華華虹,以以及國外外的一些些公司如如德州儀儀器、意意法半導導體、Philips、Intel、Samsung等都推出出了自己己設

3、計的的基于ARM核的處理理器。4ARM微處理器器的應用用領域工業(yè)控制制領域:作為32的RISC架構,基基于ARM核的微控控制器芯芯片不但但占據了了高端微微控制器器市場的的大部分分市場份份額,同同時也逐逐漸向低低端微控控制器應應用領域域擴展,ARM微控制器器的低功功耗、高高性價比比,向傳傳統(tǒng)的8位/16位微控制制器提出出了挑戰(zhàn)戰(zhàn)。ARM技術的應應用領域域及特點點到目前為為止,ARM微處理器器及技術術的應用用已經廣廣泛深入入到國民民經濟的的各個領領域5ARM微處理器器的應用用領域ARM技術的應應用領域域及特點點網絡應用用:隨著著寬帶技技術的推推廣,采采用ARM技術的ADSL芯片正逐逐步獲得得競爭優(yōu)

4、優(yōu)勢。此此外,ARM在語音及及視頻處處理上進進行了優(yōu)優(yōu)化,并并獲得廣廣泛支持持,也對對DSP的應用領領域提出出了挑戰(zhàn)戰(zhàn)。消費類電電子產品品:ARM技術在目目前流行行的數(shù)字字音頻播播放器、數(shù)字機機頂盒和和游戲機機中得到到廣泛采采用。成像和安安全產品品:現(xiàn)在在流行的的數(shù)碼相相機和打打印機中中絕大部部分采用用ARM技術。手手機中的的32位SIM智能卡也也采用了了ARM技術。6ARM微處理器器的特點點低功耗、低成本本、高性性能采用RISC指令集ARM技術的應應用領域域及特點點低功耗、低成本本、高性性能使用大量量的寄存存器ARM/THUMB指令支持持三/五級流水水線7ARM微處理器器的特點點采用RISC

5、體系結構構ARM技術的應應用領域域及特點點采用RISC架構的ARM處理器一一般具有有如下特特點:固定長度度的指令令格式,指令歸歸整、簡簡單、基基 本尋尋址方式式有23種;使用單周周期指令令,便于于流水線線操作執(zhí)執(zhí)行;大量使用用寄存器器,數(shù)據據處理指指令只對對寄存器器進行操操作,只只有加載載/存儲指令令可以訪訪問存儲儲器,以以提高指指令的執(zhí)執(zhí)行效率率。8ARM微處理器器的特點點大量使用用寄存器器ARM技術的應應用領域域及特點點ARM處理器共共有37個寄存器器,被分分為若干干個組,這些寄寄存器包包括:31個通用寄寄存器,包括程程序計數(shù)數(shù)器(PC指針),均為32位的寄存存器;6個狀態(tài)寄寄存器,用以標

6、標識CPU的工作狀狀態(tài)及程程序的運運行狀態(tài)態(tài),均為為32位。9ARM微處理器器的特點點高效的指指令系統(tǒng)統(tǒng)ARM技術的應應用領域域及特點點ARM微處理器器支持兩兩種指令令集:ARM指令集和和Thumb指令集。ARM指令為32位的長度度,Thumb指令為16位長度。Thumb指令集為為ARM指令集的的功能子子集,但但與等價價的ARM代碼相比比較,可可節(jié)省3040以上的的存儲空空間,同同時具備備32位代碼的的所有優(yōu)優(yōu)點。10ARM微處理器器的特點點其他技術術ARM技術的應應用領域域及特點點除此以外外,ARM體系結構構還采用用了一些些特別的的技術,在保證證高性能能的前提提下盡量量縮小芯芯片的面面積,并

7、并降低功功耗:所有的ARM指令都可可根據前前面的執(zhí)執(zhí)行結果果決定是是否被執(zhí)執(zhí)行,從從而提高高指令的的執(zhí)行效效率。可用加載載/存儲指令令批量傳傳輸數(shù)據據,以提提高數(shù)據據的傳輸輸效率。可在一條條數(shù)據處處理指令令中同時時完成邏邏輯處理理和移位位處理。在循環(huán)處處理中使使用地址址的自動動增減來來提高運運行效率率。11ARM微處理器器系列ARM微處理器器系列ARM7系列ARM9系列ARM9E系列ARM10E系列SecurCore系列Intel的Xscale其中,ARM7、ARM9、ARM9E和ARM10為4個通用處處理器系系列,每每一個系系列提供供一套相相對獨特特的性能能來滿足足不同應應用領域域的需求求。

8、SecurCore系列專門門為安全全要求較較高的應應用而設設計。12ARM7微處理器器系列ARM7系列是低低功耗的的32位RISC處理器,最適合合用于對對價位和和功耗要要求較高高的消費費類應用用。ARM7系列有如如下特點點:具有嵌入入式ICERT邏輯,調調試開發(fā)發(fā)方便;極低的功功耗,適適合對功功耗要求求較高的的應用,如便攜攜式產品品;能夠提供供0.9MIPS/MHz的三級流流水線結結構;兼容16位的Thumb指令集,代碼密密度高;對操作系系統(tǒng)的支支持廣泛泛,如Windows CE、Linux、Palm OS等;指令系統(tǒng)統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容容,便于于用戶的的產品

9、升升級換代代;主頻最高高可達130M,高速的運運算處理理能力能能勝任絕絕大多數(shù)數(shù)的復雜雜應用。ARM微處理器器系列13ARM7微處理器器系列ARM微處理器器系列主要應用用領域:工業(yè)控控制、Internet設備、網網絡和調調制解調調器設備備、移動動電話等等多種多多媒體和和嵌入式式應用。ARM7系列微處處理器包包括如下下幾種類類型的核核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使使用最廣廣泛的32位嵌入式式RISC處理器,屬低端端ARM處理器核核。TDMI的基本含含義為:T:支持16位壓縮指指令集Thumb;D:支持片上上Debug;M:內

10、嵌硬件件乘法器器(Multiplier)I:嵌入式ICE,支持片上上斷點和和調試點點;14ARM9微處理器器系列ARM微處理器器系列ARM9系列微處處理器在在高性能能和低功功耗特性性方面提提供最佳佳的表現(xiàn)現(xiàn)。具有有以下特特點:5級流水線線,指令令執(zhí)行效效率更高高。提供1.1MIPS/MHz的哈佛結結構。支持32位ARM指令集和和16位Thumb指令集。支持32位的高速速AMBA總線接口口。全性能的的MMU,支持Windows CE、Linux、Palm OS等多種主主流嵌入入式操作作系統(tǒng)。MPU支持實時時操作系系統(tǒng)。支持數(shù)據據Cache和指令Cache,具有更高高的指令令和數(shù)據據處理能能力。1

11、5ARM9微處理器器系列ARM9系列微處處理器主主要應用用于無線線設備、儀器儀儀表、安安全系統(tǒng)統(tǒng)、機頂頂盒、高高端打印印機、數(shù)數(shù)字照相相機和數(shù)數(shù)字攝像像機等。ARM微處理器器系列ARM9系列微處處理器包包含ARM920T、ARM922T和ARM940T三種類型型,以適適用于不不同的應應用場合合。16ARM9E微處理器器系列ARM微處理器器系列ARM9E系列微處處理器的的主要特特點如下下:支持DSP指令集,適合于于需要高高速數(shù)字字信號處處理的場場合。5級流水線線,指令令執(zhí)行效效率更高高。支持32位ARM指令集和和16位Thumb指令集。支持32位的高速速AMBA總線接口口。支持VFP9浮點處理理

12、協(xié)處理理器。全性能的的MMU,支持眾多多主流嵌嵌入式操操作系統(tǒng)統(tǒng)。支持數(shù)據據Cache和指令Cache,具有更高高的處理理能力。主頻最高高可達300M。17ARM9E微處理器器系列ARM9E系列微處處理器主主要應用用于下一一代無線線設備、數(shù)字消消費品、成像設設備、工工業(yè)控制制、存儲儲設備和和網絡設設備等領領域。ARM微處理器器系列ARM9E系列微處處理器包包含ARM926EJ-S、ARM946E-S和ARM966E-S三種類型型,以適適用于不不同的應應用場合合。18ARM10E微處理器器系列ARM微處理器器系列ARM10E系列微處處理器的的主要特特點如下下:支持DSP指令集,適合于于需要高高速

13、數(shù)字字信號處處理的場場合。6級流水線線,指令令執(zhí)行效效率更高高。支持32位ARM指令集和和16位Thumb指令集。支持32位的高速速AMBA總線接口口。支持VFP10浮點處理理協(xié)處理理器。全性能的的MMU,支持眾多多主流嵌嵌入式操操作系統(tǒng)統(tǒng)。支持數(shù)據據Cache和指令Cache,具有更高高的處理理能力主頻最高高可達400M。內嵌并行行讀/寫操作部部件。19ARM10E微處理器器系列ARM10E系列微處處理器主主要應用用于下一一代無線線設備、數(shù)字消消費品、成像設設備、工工業(yè)控制制、通信信和信息息系統(tǒng)等等領域。ARM微處理器器系列ARM10E系列微處處理器包包含ARM1020E、ARM1022E和

14、ARM1026EJ-S三種類型型,以適適用于不不同的應應用場合合。20SecurCore微處理器器系列ARM微處理器器系列SecurCore系列微處處理器除除了具有有ARM體系結構構各種主主要特點點外,還還在系統(tǒng)統(tǒng)安全方方面具有有如下的的特點:帶有靈活活的保護護單元,確保操操作系統(tǒng)統(tǒng)和應用用數(shù)據的的安全。采用軟內內核技術術,防止止外部對對其進行行掃描探探測。可集成用用戶自己己的安全全特性和和其他協(xié)協(xié)處理器器。21SecurCore微處理器器系列SecurCore系列微處處理器主主要應用用于一些些對安全全性要求求較高的的應用產產品及應應用系統(tǒng)統(tǒng),如電電子商務務、電子子政務、電子銀銀行業(yè)務務、網絡

15、絡和認證證系統(tǒng)等等領域。ARM微處理器器系列SecurCore系列微處處理器包包含SecurCoreSC100、SecurCoreSC110、SecurCoreSC200和SecurCoreSC210四種類型型,以適適用于不不同的應應用場合合。22StrongARM微處理器器系列ARM微處理器器系列IntelStrongARM處理器是是便攜式式通訊產產品和消消費類電電子產品品的理想想選擇,已成功功應用于于多家公公司的掌掌上電腦腦系列產產品。IntelStrongARMSA-1100處理器是是采用ARM體系結構構高度集集成的32位RISC微處理器器。它融融合了Intel公司的設設計和處處理技術術

16、以及ARM體系結構構的電源源效率,采用在在軟件上上兼容ARMv4體系結構構、同時時采用具具有Intel技術優(yōu)點點的體系系結構。23Xscale處理器ARM微處理器器系列Xscale處理器是是基于ARMv5TE體系結構構的解決決方案,是一款款全性能能、高性性價比、低功耗耗的處理理器。它它支持16位的Thumb指令和DSP指令集,已使用用在數(shù)字字移動電電話、個個人數(shù)字字助理和和網絡產產品等場場合。Xscale處理器是是Intel目前主要要推廣的的一款ARM微處理器器。24ARM微處理器器的工作作狀態(tài)ARM微處理器器的工作作狀態(tài)從編程的的角度看看,ARM微處理器器的工作作狀態(tài)一一般有兩兩種,并并可在

17、兩兩種狀態(tài)態(tài)之間切切換:ARM狀態(tài),此此時處理理器執(zhí)行行32位的字對對齊的ARM指令;Thumb狀態(tài),此此時處理理器執(zhí)行行16位的、半半字對齊齊的Thumb指令。25ARM與與THUMBTHUMB指令是ARM指令的子子集ARM微處理器器的工作作狀態(tài)可以相互互調用,只要遵遵循一定定的調用用規(guī)則Thumb指令與ARM指令的時時間效率率和空間間效率關關系為:存儲空間間約為ARM代碼的6070指令數(shù)比比ARM代碼多約約3040存儲器為為32位時ARM代碼比Thumb代碼快約約40存儲器為為16位時Thumb比ARM代碼快約約4050使用Thumb代碼,存存儲器的的功耗會會降低約約3026狀態(tài)切換換方法

18、ARM指令集和和Thumb指令集均均有切換換處理器器狀態(tài)的的指令,并可在在兩種工工作狀態(tài)態(tài)之間切切換,ARM微處理器器的工作作狀態(tài)在開始執(zhí)執(zhí)行代碼碼時,處處于ARM狀態(tài)。27進入Thumb狀態(tài)當操作數(shù)數(shù)寄存器器的狀態(tài)態(tài)位(位位0)為1時,可以以采用執(zhí)執(zhí)行BX指令的方方法,使使微處理理器從ARM狀態(tài)切換換到Thumb狀態(tài)。當處理器器處于Thumb狀態(tài)時發(fā)發(fā)生異常常(如IRQ、FIQ、Undef、Abort、SWI等),則則異常處處理返回回時,自自動切換換到Thumb狀態(tài)。ARM微處理器器的工作作狀態(tài)28切換到ARM狀態(tài)當操作數(shù)數(shù)寄存器器的狀態(tài)態(tài)位為0時,執(zhí)行行BX指令時可可以使微微處理器器從Th

19、umb狀態(tài)切換換到ARM狀態(tài)。ARM微處理器器的工作作狀態(tài)在處理器器進行異異常處理理時,把把PC指針放入入異常模模式鏈接接寄存器器中,并并從異常常向量地地址開始始執(zhí)行程程序,也也可以使使處理器器切換到到ARM狀態(tài)。29處理器模模式ARM微處理器器的工作作模式usr:ARM處理器正正常的程程序執(zhí)行行狀態(tài)fiq:用于高速速數(shù)據傳傳輸或通通道處理理irq:用于通用用的中斷斷處理svc:操作系統(tǒng)統(tǒng)使用的的保護模模式abt:用于虛擬擬存儲及及存儲保保護sys:運行具有有特權的的操作系系統(tǒng)任務務und:當出現(xiàn)未定定義指令令終止時時進入該該模式30用戶模式式和特權權模式ARM微處理器器的工作作模式除了用戶戶

20、模式之之外的其其他6種處理器器模式稱稱為特權權模式特權模式式下,程程序可以以訪問所所有的系系統(tǒng)資源源,也可可以任意意地進行行處理器器模式的的切換。特權模式式中,除除系統(tǒng)模模式外,其他5種模式又又稱為異異常模式式大多數(shù)的的用戶程程序運行行在用戶戶模式下下,此時時,應用用程序不不能夠訪訪問一些些受操作作系統(tǒng)保保護的系系統(tǒng)資源源,應用用程序也也不能直直接進行行處理器器模式的的切換。用戶模式式下,當當需要進進行處理理器模式式切換時時,應用用程序可可以產生生異常處處理,在在異常處處理中進進行處理理器模式式的切換換。31模式切換換ARM微處理器器的工作作模式處理器模模式可以以通過軟軟件進行行切換,也可以以

21、通過外外部中斷斷或者異異常處理理過程進進行切換換。當應用程程序發(fā)生生異常中中斷時,處理器器進入相相應的異異常模式式。在每每一種異異常模式式下都有有一組寄寄存器,供相應應的異常常處理程程序使用用,這樣樣就可以以保證在在進入異異常模式式時,用用戶模式式下的寄寄存器不不被破壞壞。系統(tǒng)模式式并不是是通過異異常進入入的,它它和用戶戶模式具具有完全全一樣的的寄存器器。但是是系統(tǒng)模模式屬于于特權模模式,可可以訪問問所有的的系統(tǒng)資資源,也也可以直直接進行行處理器器模式切切換。它它主要供供操作系系統(tǒng)任務務使用。通常操操作系統(tǒng)統(tǒng)的任務務需要訪訪問所有有的系統(tǒng)統(tǒng)資源,同時該該任務仍仍然使用用用戶模模式的寄寄存器組組

22、,而不不是使用用異常模模式下相相應的寄寄存器組組,這樣樣可以保保證當異異常中斷斷發(fā)生時時任務狀狀態(tài)不被被破壞。32ARM微處理器器的存儲儲器格式式ARM體系結構構所支持持的最大大尋址空空間為4GB(232字節(jié))ARM微處理器器的存儲儲器格式式ARM體系結構構將存儲儲器看作作是從零零地址開開始的字字節(jié)的線線性組合合。從零零字節(jié)到到三字節(jié)節(jié)放置第第一個存存儲的字字數(shù)據,從第四四個字節(jié)節(jié)到第七七個字節(jié)節(jié)放置第第二個存存儲的字字數(shù)據,依次排排列。ARM體系結構構可以用用兩種方方法存儲儲字數(shù)據據,稱之之為大端端格式和和小端格格式33ARM體系結構構的存儲儲器格式式大端格式式ARM微處理器器的存儲儲器格式

23、式在這種格格式中,字數(shù)據據的高字字節(jié)存儲儲在低地地址中,而字數(shù)數(shù)據的低低字節(jié)則則存放在在高地址址中34ARM體系結構構的存儲儲器格式式小端格式式ARM微處理器器的存儲儲器格式式與大端存存儲格式式相反,在小端端存儲格格式中,低地址址中存放放的是字字數(shù)據的的低字節(jié)節(jié),高地地址存放放的是字字數(shù)據的的高字節(jié)節(jié)35指令長度度及數(shù)據據類型ARM微處理器器的指令令長度可可以是32位(在ARM狀態(tài)下),也可可以為16位(在Thumb狀態(tài)下)。ARM微處理器器的存儲儲器格式式ARM微處理器器中支持持字節(jié)(8位)、半半字(16位)、字字(32位)三種種數(shù)據類類型,其其中,字字需要4字節(jié)對齊齊(地址址的低兩兩位為0

24、)、半字字需要2字節(jié)對齊齊(地址址的最低低位為0)36非對齊的的存儲訪訪問操作作在ARM中,如果果存儲單單元的地地址沒有有遵守對對齊規(guī)則則,則稱稱為非對對齊的存存儲訪問問操作。ARM微處理器器的存儲儲器格式式非對齊的的指令預預取操作作非對齊的的數(shù)據訪訪問操作作37非對齊的的指令預預取操作作當處理器器處于ARM狀態(tài)期間間,如果果寫入到到寄存器器PC中的值是是非字對對齊的,要么指指令執(zhí)行行的結果果不可預預知,要要么地址址值中最最低兩位位被忽略略。ARM微處理器器的存儲儲器格式式當處理器器處于THUMB狀態(tài)期間間,如果果寫入到到寄存器器PC中的值是是非半字字對齊的的,要么么指令執(zhí)執(zhí)行的結結果不可可預

25、知,要么地地址值中中最低位位被忽略略。38非對齊的的數(shù)據訪訪問操作作對于Load/Store操作,如如果是非非對齊的的數(shù)據訪訪問操作作,系統(tǒng)統(tǒng)定義了了三種可可能的結結果:ARM微處理器器的存儲儲器格式式執(zhí)行的結結果不可可預知忽略字單單元地址址的低兩兩位的值值,即訪訪問地址址為(addressAND0XFFFFFFFC)的字單元元;忽略略半字單單元地址址的最低低位的值值,即訪訪問地址址為(addressAND0XFFFFFFFE)的半字單單元。忽略字單單元地址址的低兩兩位的值值;或忽忽略半字字單元地地址的最最低位的的值;由由存儲系系統(tǒng)實現(xiàn)現(xiàn)這種忽忽略。也也就是說說,這時時該地址址值原封封不動地地

26、送到存存儲系統(tǒng)統(tǒng)。當發(fā)生非非對齊的的數(shù)據訪訪問時,到底采采用上述述三種方方法中的的哪一種種,是由由各指令令指定的的。39寄存器組組織ARM微處理器器共有37個32位寄存器器,其中中31個為通用用寄存器器,6個為狀態(tài)態(tài)寄存器器。但是是這些寄寄存器不不能被同同時訪問問,具體體哪些寄寄存器是是可編程程訪問的的,取決決微處理理器的工工作狀態(tài)態(tài)及具體體的運行行模式。但在任任何時候候,通用用寄存器器R14R0、程序計數(shù)數(shù)器PC、一個或兩兩個狀態(tài)態(tài)寄存器器都是可可訪問的的。ARM微處理器器的寄存存器格式式40ARM狀態(tài)下的的寄存器器組織通用寄存存器:通通用寄存存器包括括R0R15,可以分為為三類:未分組寄寄

27、存器R0R7分組寄存存器R8R14程序計數(shù)數(shù)器PC(R15)ARM微處理器器的寄存存器格式式41ARM狀狀態(tài)下的的寄存器器組織ARM微處理器器的寄存存器格式式42未分組寄寄存器R0R7ARM微處理器器的寄存存器格式式在所有的的運行模模式下,未分組組寄存器器都指向向同一個個物理寄寄存器,他們未未被系統(tǒng)統(tǒng)用作特特殊的用用途,因因此,在在中斷或或異常處處理進行行運行模模式轉換換時,由由于不同同的處理理器運行行模式均均使用相相同的物物理寄存存器,可可能會造造成寄存存器中數(shù)數(shù)據的破破壞,這這一點在在進行程程序設計計時應引引起注意意。43分組寄存存器R8R12ARM微處理器器的寄存存器格式式每次所訪訪問的

28、物物理寄存存器與處處理器當當前的運運行模式式有關R8R12:每個寄存存器對應應兩個不不同的物物理寄存存器當使用fiq模式時,訪問寄寄存器R8_fiqR12_fiq;當使用除除fiq模式以外外的其他他模式時時,訪問問寄存器器R8_usrR12_usr。44分組寄存存器R13R14ARM微處理器器的寄存存器格式式R13、R14:每個寄存存器對應應6個不同的的物理寄寄存器其中的一一個是用用戶模式式與系統(tǒng)統(tǒng)模式共共用,另另外5個物理寄寄存器對對應于其其他5種不同的的運行模模式采用以下下的記號號來區(qū)分分不同的的物理寄寄存器:R13_R14_mode為以下幾幾種之一一:usr、fiq、irq、svc、ab

29、t、und。45堆棧指針針R13ARM微處理器器的寄存存器格式式R13在ARM指令中常常用作堆堆棧指針針,但這這只是一一種習慣慣用法,用戶也也可使用用其他的的寄存器器作為堆堆棧指針針。在Thumb指令集中中,某些些指令強強制性的的要求使使用R13作為堆棧棧指針。由于處理理器的每每種運行行模式均均有自己己獨立的的物理寄寄存器R13,在初始化化部分,都要初初始化每每種模式式下的R13,這樣,當當程序的的運行進進入異常常模式時時,可以以將需要要保護的的寄存器器放入R13所指向的的堆棧,而當程程序從異異常模式式返回時時,則從從對應的的堆棧中中恢復。46子程序連連接寄存存器R14ARM微處理器器的寄存存

30、器格式式R14也稱作子子程序連連接寄存存器或連連接寄存存器LR。當執(zhí)行BL子程序調調用指令令時,可可以從R14中得到R15(程序計數(shù)數(shù)器PC)的備份。其他情情況下,R14用作通用用寄存器器。在每一種種運行模模式下,都可用用R14保存子程程序的返返回地址址,當用用BL或BLX指令調用用子程序序時,將將下一條條指令的的地址值值拷貝給給R14,執(zhí)行完子子程序后后,又將將R14的值拷貝貝回PC,即可完成成子程序序的調用用返回。BLSUB1SUB1:STMFDSP!,LR/*將R14存入堆棧棧*/LDMFDSP!,PC/*完成子程程序返回回 */47程序計數(shù)數(shù)器PC(R15)ARM微處理器器的寄存存器格

31、式式ARM狀態(tài)下,位1:0為0,位31:2用于保存存PC;Thumb狀態(tài)下,位0為0,位31:1用于保存存PC;R15雖然也可可用作通通用寄存存器,但但一般不不這么使使用,因因為對R15的使用有有一些特特殊的限限制,當當違反了了這些限限制時,程序的的執(zhí)行結結果是未未知的。由于ARM體系結構構采用了了多級流流水線技技術,對對于ARM指令集而而言,PC總是指向向當前指指令的下下兩條指指令的地地址,即即PC的值為當當前指令令的地址址值加8個字節(jié)。48程序狀態(tài)態(tài)寄存器器(CPSR/SPSR)CPSR(當前程序序狀態(tài)寄寄存器),CPSR可在任何何運行模式下下被訪問問,它包包括條件件標志位位、中斷斷禁止位

32、位、當前前處理器器模式標標志位,以及其其他一些些相關的的控制和和狀態(tài)位位。ARM微處理器器的寄存存器格式式每一種運運行模式式下又都都有一個個專用的的物理狀狀態(tài)寄存存器,稱稱為SPSR(備份的程程序狀態(tài)態(tài)寄存器器),異異常發(fā)生生時,SPSR用于保存存CPSR的值,從從異常退退出時則則可由SPSR來恢復CPSR。由于用戶戶模式和和系統(tǒng)模模式不屬屬于異常常模式,他們沒沒有SPSR,當在這兩兩種模式式下訪問問SPSR,結果是未未知的。49Thumb狀態(tài)下的的寄存器器組織Thumb狀態(tài)下的的寄存器器集是ARM狀態(tài)下寄寄存器集集的一個個子集ARM微處理器器的寄存存器格式式程序可以以直接訪訪問8個通用寄寄存

33、器(R7R0)、程序計數(shù)數(shù)器(PC)、堆棧指針針(SP)、連接寄存存器(LR)和CPSR。同樣,每每一種特特權模式式下都有有一組SP、LR和SPSR。50Thumb狀態(tài)下的的寄存器器組織圖圖ARM微處理器器的寄存存器格式式51Thumb狀態(tài)下的的寄存器器與ARM狀態(tài)下的的寄存器器關系ARM微處理器器的寄存存器格式式Thumb狀態(tài)下和和ARM狀態(tài)下的的R0R7是相同的的。Thumb狀態(tài)下和和ARM狀態(tài)下的的CPSR和所有的的SPSR是相同的的。Thumb狀態(tài)下的的SP對應于ARM狀態(tài)下的的R13。Thumb狀態(tài)下的的LR對應于ARM狀態(tài)下的的R14。Thumb狀態(tài)下的的程序計計數(shù)器對對應于ARM

34、狀態(tài)下R15。52Thumb狀態(tài)下的的寄存器器與ARM狀態(tài)下的的寄存器器關系圖圖ARM微處理器器的寄存存器格式式53訪問THUMB狀態(tài)下下的高位位寄存器器(Hi-registers)在Thumb狀態(tài)下,高位寄寄存器R8R15并不是標標準寄存存器集的的一部分分,但可可使用匯匯編語言言程序受受限制的的訪問這這些寄存存器,將將其用作作快速的的暫存器器。ARM微處理器器的寄存存器格式式使用帶特特殊變量量的MOV指令,數(shù)數(shù)據可以以在低位位寄存器器和高位位寄存器器之間進進行傳送送;高位位寄存器器的值可可以使用用CMP和ADD指令進行行比較或或加上低低位寄存存器中的的值。54程序狀態(tài)態(tài)寄存器器ARM微處理器

35、器的寄存存器格式式ARM體系結構構包含一一個當前前程序狀狀態(tài)寄存存器(CPSR)和五個備備份的程程序狀態(tài)態(tài)寄存器器(SPSRs)。備份的程程序狀態(tài)態(tài)寄存器器用來進進行異常常處理,其功能能包括:保存ALU中的當前前操作信信息控制允許許和禁止止中斷設置處理理器的運運行模式式55程序狀態(tài)態(tài)寄存器器的每一一位的安安排ARM微處理器器的寄存存器格式式56程序狀態(tài)態(tài)寄存器器的條件碼標標志N、Z、C、V均為條件件碼標志志位。它它們的內內容可被被算術或或邏輯運運算的結結果所改改變,并并且可以以決定某某條指令令是否被被執(zhí)行ARM微處理器器的寄存存器格式式在ARM狀態(tài)下,絕大多多數(shù)的指指令都是是有條件件執(zhí)行的的。

36、在Thumb狀態(tài)下,僅有分分支指令令是有條條件執(zhí)行行的。57標志位的的含義標志位含 義N當用兩個補碼表示的帶符號數(shù)進行運算時,N=1 表示運算的結果為負數(shù);N=0 表示運算的結果為正數(shù)或零;ZZ=1 表示運算的結果為零;Z=0表示運算的結果為非零;C加法運算結果進位時,C=1,減法運算借位時,C=0;移位操作的非加/減運算指令,C為移出的最后一位;其他的非加/減運算指令,C的值通常不改變。V加/減法運算指令,V=1表示符號位溢出。對于其他的非加/減運算指令,C的值通常不改變。Q在ARM v5及以上版本的E系列處理器中,Q標志指示DSP運算指令是否溢出。在其他版本中,Q標志位無定義。ARM微處理

37、器器的寄存存器格式式58程序狀態(tài)態(tài)寄存器器的控制位狀態(tài)寄存存器的低低8位(I、F、T和M4:0)稱為控制制位,發(fā)發(fā)生異常常時這些些位可以以被改變變。如果果處理器器運行特權模式式,這些位位也可以以由程序序修改。ARM微處理器器的寄存存器格式式中斷禁止止位I、F:I=1禁止IRQ中斷;F=1禁止FIQ中斷。T標志位:該位反反映處理理器的運運行狀態(tài)態(tài)ARM體系結構構v5及以上的的版本的的T系列處理理器,當當該位為為1時,程序序運行于于Thumb狀態(tài),否否則運行行于ARM狀態(tài)。ARM體系結構構v5及以上的的版本的的非T系列處理理器,當當該位為為1時,執(zhí)行行下一條條指令以以引起未未定義的的指令異異常;當

38、當該位為為0時,表示示運行于于ARM狀態(tài)。運行模式式位M4:0是模式位位,決定定處理器器的運行行模式59處理器運運行模式式及可以以訪問的的寄存器器M4:0處理器模式可訪問的寄存器0b10000用戶模式PC,CPSR,R0-R140b10001FIQ模式PC,CPSR, SPSR_fiq,R14_fiq-R8_fiq, R7R00b10010IRQ模式PC,CPSR, SPSR_irq,R14_irq, R13_irq, R12R00b10011管理模式PC,CPSR, SPSR_svc,R14_svc, R13_svc, R12R0,0b10111中止模式PC,CPSR, SPSR_abt,R

39、14_abt,R13_abt, R12R0,0b11011未定義模式PC,CPSR, SPSR_und,R14_und, R13_und, R12R0,0b11111系統(tǒng)模式PC,CPSR(ARM v4及以上版本), R14R0ARM微處理器器的寄存存器格式式60異常(Exceptions)當正常的的程序執(zhí)執(zhí)行流程程發(fā)生暫暫時的停停止時,稱之為為異常,例如處處理一個個外部的的中斷請請求。在在處理異異常之前前,當前前處理器器的狀態(tài)態(tài)必須保保留,這這樣當異異常處理理完成之之后,當當前程序序可以繼繼續(xù)執(zhí)行行。處理理器允許許多個異異常同時時發(fā)生,它們將將會按固固定的優(yōu)優(yōu)先級進進行處理理。ARM異常處理

40、理ARM體系結構構中的異異常,與與8位/16位體系結結構的中中斷有很很大的相相似之處處,但異異常與中中斷的概概念并不不完全等等同。61ARM體系結構構所支持持的異常常類型異常類型具體含義復位復位電平有效時,產生復位異常,程序跳轉到復位處理程序處執(zhí)行。未定義指令遇到不能處理的指令時,產生未定義指令異常。軟件中斷執(zhí)行SWI指令產生,用于用戶模式下的程序調用特權操作指令。指令預取中止處理器預取指令的地址不存在,或該地址不允許當前指令訪問,產生指令預取中止異常。數(shù)據中止處理器數(shù)據訪問指令的地址不存在,或該地址不允許當前指令訪問時,產生數(shù)據中止異常。IRQ外部中斷請求有效,且CPSR中的I位為0時,產生

41、IRQ異常。FIQ快速中斷請求引腳有效,且CPSR中的F位為0時,產生FIQ異常。ARM異常處理理62對異常的的響應ARM異常處理理當一個異異常出現(xiàn)現(xiàn)以后,ARM微處理器器會執(zhí)行行以下幾幾步操作作將下一條條指令的的地址存存入相應應連接寄寄存器LR,以便程序序在處理理異常返返回時能能從正確確的位置置重新開開始執(zhí)行行。將CPSR復制到相相應的SPSR中。根據異常常類型,強制設設置CPSR的運行模模式位。強制PC從相關的的異常向向量地址址取下一一條指令令執(zhí)行,從而跳跳轉到相相應的異異常處理理程序處處。63R14_= ReturnLinkSPSR_=CPSRCPSR4:0=ExceptionModeN

42、umberCPSR5 =0If = Reset or FIQthenCPSR6 =1CPSR7 =1PC= ExceptionVectorAddress異常響應應偽代碼碼ARM異常處理理處理器處處于Thumb狀態(tài),則則當異常常向量地地址加載載入PC時,處理理器自動動切換到到ARM狀態(tài)。ARM微處理器器對異常常的響應應過程用用偽碼可可以描述述為:在ARM狀態(tài)下執(zhí)執(zhí)行禁止快速速中斷禁止正常常中斷轉入異常常入口地地址64從異常返回ARM異常處理理異常處理理完畢之之后,ARM微處理器器會執(zhí)行行以下幾幾步操作作從異常常返回:將連接寄寄存器LR的值減去去相應的的偏移量量后送到到PC中。將SPSR復制回CP

43、SR中。若在進入入異常處處理時設設置了中中斷禁止止位,要要在此清清除??梢哉J為為應用程程序總是是從復位位異常處處理程序序開始執(zhí)執(zhí)行的,因此復復位異常常處理程程序不需需要返回回。65FIQ(FastInterruptRequest)FIQ異常是為為了支持持數(shù)據傳傳輸或者者通道處處理而設設計的。ARM異常處理理若將CPSR的F位置為1,則會禁禁止FIQ中斷,若若將CPSR的F位清零,處理器器會在指指令執(zhí)行行時檢查查FIQ的輸入。注意只只有在特特權模式式下才能能改變F位的狀態(tài)態(tài)??捎赏獠坎客ㄟ^對對處理器器上的nFIQ引腳輸入入低電平平產生FIQ。不管是在在ARM狀態(tài)還是是在Thumb狀態(tài)下進進入FI

44、Q模式,F(xiàn)IQ處理程序序均可以以執(zhí)行以以下指令令從FIQ模式返回回:SUBSPC,R14_fiq,#466IRQ(Interrupt Request)IRQ異常屬于于正常的的中斷請請求,可可通過對對處理器器的nIRQ引腳輸入入低電平平產生,IRQ的優(yōu)先級級低于FIQ,當程序執(zhí)執(zhí)行進入入FIQ異常時,IRQ可能被屏屏蔽。ARM異常處理理若將CPSR的I位置為1,則會禁禁止IRQ中斷,若若將CPSR的I位清零,處理器器會在指指令執(zhí)行行完之前前檢查IRQ的輸入。注意只只有在特特權模式式下才能能改變I位的狀態(tài)態(tài)。不管是在在ARM狀態(tài)還是是在Thumb狀態(tài)下進進入IRQ模式,IRQ處理程序序均可以以執(zhí)行以以下指令令從IRQ模

溫馨提示

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

評論

0/150

提交評論