嵌入式系統(tǒng) 課件 ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)_第1頁
嵌入式系統(tǒng) 課件 ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)_第2頁
嵌入式系統(tǒng) 課件 ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)_第3頁
嵌入式系統(tǒng) 課件 ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)_第4頁
嵌入式系統(tǒng) 課件 ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第2章ARM體系結(jié)構(gòu)

參考書:《ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)》馬忠梅,馬廣云,徐英慧,等北京航空航天大學(xué)出版社12.1ARM體系結(jié)構(gòu)概述2.1.1ARM體系結(jié)構(gòu)的特點(diǎn)0、概述:ARM公司ARM即AdvancedRISCMachines的縮寫。ARM公司是知識(shí)產(chǎn)權(quán)(IP)供應(yīng)商,成立于1990。ARM公司本身不生產(chǎn)芯片,靠轉(zhuǎn)讓設(shè)計(jì)許可,由合作伙伴公司來生產(chǎn)各具特色的芯片。ARM作為32位嵌入式RISC微處理器業(yè)界的領(lǐng)先供應(yīng)商,商業(yè)模式的強(qiáng)大之處在于它在世界范圍有超過100個(gè)合作伙伴——包括半導(dǎo)體工業(yè)的著名公司,從而保證了大量的開發(fā)工具和豐富的第三方資源,它們共同保證了基于ARM處理器核的設(shè)計(jì)可以很快投入市場。2ARM處理器的3大特點(diǎn)是:耗電少,成本低,功能強(qiáng);16/32位雙指令集;全球眾多合作伙伴保證供應(yīng)。ARM體系結(jié)構(gòu)基于精簡指令集計(jì)算機(jī)(RISC)原理。傳統(tǒng)的CISC指令集計(jì)算機(jī)隨著計(jì)算機(jī)的發(fā)展引入了各種各樣的復(fù)雜指令,使得指令集和為實(shí)現(xiàn)這些指令的計(jì)算機(jī)體系結(jié)構(gòu)越來越復(fù)雜,已經(jīng)不堪重負(fù)。經(jīng)過大量的研究和分析,發(fā)現(xiàn)在CISC的指令集中,各種指令的使用頻度相差懸殊。大概有20%的指令被反復(fù)使用,使用量約占整個(gè)程序的80%;而有80%左右的指令則很少使用,其使用量約占整個(gè)程序的20%。 這就是所謂的20%—80%規(guī)律。

3RISC指令集和相關(guān)的譯碼機(jī)制比復(fù)雜指令集計(jì)算機(jī)(CISC)的設(shè)計(jì)更簡單。這種簡單性得到了:高指令吞吐率;出色的實(shí)時(shí)中斷響應(yīng);體積小、性價(jià)比高的處理器宏單元。16位Thumb指令集,允許軟件16位編碼使占用的存儲(chǔ)器空間節(jié)省高達(dá)35%,然而保留了32位系統(tǒng)所有的優(yōu)勢。4ARM還提供了兩個(gè)前沿特性——嵌入式ICE—RT邏輯和嵌入式跟蹤宏核系列,用于輔助嵌入式處理器核的、高集成的SoC器件的調(diào)試。允許在代碼的任何部分——甚至在ROM中設(shè)置斷點(diǎn)。ARM當(dāng)前有5個(gè)產(chǎn)品系列:ARM7、ARM9、ARM9E、ARM10和SecurCore。進(jìn)一步的產(chǎn)品來自于合作伙伴,例如IntelXScale微體系結(jié)構(gòu)和StrongARM產(chǎn)品。51.ARM的RISC型處理器結(jié)構(gòu)中央控制器沒有采用微程序的方式。采用了硬接線PLA的方式。減少復(fù)雜功能的指令,選用使用頻度最高的指令;簡化處理器的結(jié)構(gòu),減少處理器的集成度;采用32位定長指令。除了單機(jī)器周期執(zhí)行1條指令外,每條指令具有多種操作功能,提高了指令使用效率。采用流水線結(jié)構(gòu),使每一條指令平均在一個(gè)機(jī)器周期內(nèi)完成,以提高處理器的速度。采用多寄存器的結(jié)構(gòu),使指令的操作盡可能在寄存器之間進(jìn)行。采用Load/Store結(jié)構(gòu),即只有Load/Store(加載/存儲(chǔ))指令可與存儲(chǔ)器打交道,減少訪問存儲(chǔ)器的頻度,節(jié)約指令執(zhí)行時(shí)間。為了進(jìn)一步提高指令和數(shù)據(jù)的存/取速度,有的還增加指令快存I—Cache和數(shù)據(jù)快存D—Cache;62.Thumb指令集新型ARM體系結(jié)構(gòu)在32位指令集的基礎(chǔ)上又定義了16位的Thumb指令集,可以使程序存儲(chǔ)器更小。Thumb指令集比通常的8位和16位CISC/RISC處理器具有更好的代碼密度,而芯片面積只增加6%。73.多處理器狀態(tài)模式ARM可以支持7種處理器模式:用戶模式快中斷模式中斷模式管理模式中止模式系統(tǒng)模式未定義模式除了用戶模式外,其余的均為特權(quán)模式。這是ARM的特色之一。多處理器模式可以大大提高ARM處理器的效率,并方便操作系統(tǒng)的設(shè)計(jì)。84.嵌入式在線仿真調(diào)試ARM體系結(jié)構(gòu)的處理器芯片都嵌入了在線仿真ICE—RT邏輯由于ICE—RT邏輯的支持,便于通過JTAG來仿真調(diào)試ARM體系結(jié)構(gòu)芯片,從而可以省去價(jià)格昂貴的在線仿真器。在處理器核中還集成了嵌入式跟蹤宏單元(ETM),ETM可以用于監(jiān)控內(nèi)部總線,實(shí)時(shí)跟蹤指令和數(shù)據(jù)的執(zhí)行。95.靈活和方便的接口ARM體系結(jié)構(gòu)具有協(xié)處理器接口,這樣,既可以使基本的ARM處理器內(nèi)核盡可能小,又可以方便地?cái)U(kuò)充各種功能。ARM允許接16個(gè)協(xié)處理器。ARM處理器核具有片上總線AMBA(AdvancedMicrocontrollerBusArchitecture)。AMBA定義了3組總線:先進(jìn)高性能總線AHB(AdvancedHighperformanceBus);先進(jìn)系統(tǒng)總線ASB(AdvancedSystemBus);先進(jìn)外圍總線APB(AdvancedPeripheralBus)。通過AMBA可以方便地?cái)U(kuò)充各種處理器及I/O,這樣,可以把DSP、其他處理器和I/O接口(如UART、定時(shí)器和接口等)都集成在一塊芯片中。106、、低低電電壓壓低低功功耗耗的的設(shè)設(shè)計(jì)計(jì)由于于ARM體體系系結(jié)結(jié)構(gòu)構(gòu)的的處處理理器器主主要要用用于于手手持持式式嵌嵌入入式式系系統(tǒng)統(tǒng)之之中中,,ARM體體系系結(jié)結(jié)構(gòu)構(gòu)在在設(shè)設(shè)計(jì)計(jì)中中十十分分注注意意低低功功耗耗問問題題。。CMOS電電路路的的功功耗耗關(guān)關(guān)系系::Pc=(1/2)··f··VDD2·∑Ag··CLg式中,,f為為時(shí)鐘鐘頻率率;VDD為工作作電源源電壓壓;Ag是是邏輯輯門在在1個(gè)個(gè)時(shí)鐘鐘周期期內(nèi)翻翻轉(zhuǎn)的的次數(shù)數(shù)(通通常為為2);CLg為門門的負(fù)負(fù)載電電容。。因此此,ARM體系系結(jié)構(gòu)構(gòu)的設(shè)設(shè)計(jì)采采用了了以下下措施施:降低電電源電電壓,,可工工作在在3..0V以下下。減少門門的翻翻轉(zhuǎn)次次數(shù),,當(dāng)某某個(gè)功功能電電路不不需要要時(shí),,禁止止門翻翻轉(zhuǎn)。。減少門門的數(shù)數(shù)目,,即降降低芯芯片的的集成成度。。降低時(shí)時(shí)鐘頻頻率(但也也會(huì)損損失系系統(tǒng)的的性能能)。。112.1.2ARM處處理器器結(jié)構(gòu)構(gòu)1.ARM體系系結(jié)構(gòu)構(gòu)是ARM體體系結(jié)結(jié)構(gòu)::32位位ALU;;31個(gè)個(gè)32位通通用寄寄存器器6個(gè)狀態(tài)態(tài)寄存器器32×8位乘法法器32×32位桶桶形移位位寄存器器指令譯碼碼及控制制邏輯指令流水水線數(shù)據(jù)/地地址寄存存器。如圖4——1所示示12FIG4-1132.ARM的流流水線結(jié)結(jié)構(gòu)計(jì)算機(jī)中中的1條條指令的的執(zhí)行可可以分若若干個(gè)階階段:①取指指,從存存儲(chǔ)器中中取出指指令(fetch);;②譯碼碼,指令令譯碼(dec);③取操操作數(shù),,假定從從寄存器器組中取取操作數(shù)數(shù)(reg);;④執(zhí)行運(yùn)算算(ALU);⑤存儲(chǔ)器訪訪問,操作數(shù)數(shù)與存儲(chǔ)器有有關(guān)(mem);⑥結(jié)果寫回回寄存器(res)。各個(gè)階段的操操作相對都是是獨(dú)立的。因因此,采用流流水線的重疊疊技術(shù)可以大大大提高系統(tǒng)統(tǒng)性能。14ARM體系結(jié)結(jié)構(gòu)的單周期期3級(jí)流水線線圖4—5ARM單周周期3級(jí)流流水線取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行時(shí)間123153.ARM存存儲(chǔ)器結(jié)構(gòu)ARM架構(gòu)的的處理器,有有的帶有指令令Cache和數(shù)據(jù)Cache,但但片內(nèi)不帶有有片內(nèi)RAM和片內(nèi)ROM,因此此,系統(tǒng)所需需的RAM和和ROM須通通過總線外接接。系統(tǒng)所需的RAM和ROM(包括Flash)都通過總線線連接,由于于系統(tǒng)的地址址范圍較大(232=4GB),有的片內(nèi)內(nèi)還帶有存儲(chǔ)儲(chǔ)器管理單元元MMU。圖4—8ARM外接接RAM和ROM16圖4—8ARM外接接RAM和ROMROMoeRAMoeRAMwe3RAMwe2RAMwe1RAMwe0A1、A0沒沒有接入片內(nèi)內(nèi)地址線,他他們是確定RAMwe3~RAMwe0的依據(jù)。174.ARMI//O結(jié)構(gòu)ARM架構(gòu)構(gòu)中的處理理器核和處處理器內(nèi)核核一般都沒沒有I/O部件和模模塊,ARM架構(gòu)處處理器的I/O可通通過AMBA(先進(jìn)進(jìn)微控制總總線架構(gòu)))總線來擴(kuò)擴(kuò)充。ARM架構(gòu)構(gòu)中的I//O直接存儲(chǔ)器器存取DMA中斷結(jié)構(gòu)。。18(1)存存儲(chǔ)器映射射I/O一般的I//O(如串串行接口)有若干個(gè)個(gè)寄存器::發(fā)送數(shù)據(jù)寄寄存器(只只寫);數(shù)據(jù)接收寄寄存器(只只讀);控制寄存器器、狀態(tài)寄寄存器(只只讀);中斷允許寄寄存器;等。這些寄寄存器都需需要相應(yīng)的的I/O端端口地址。。ARM采用用了存儲(chǔ)器器映射I//O的方式式,即把I/O端口口地址作為為特殊的存存儲(chǔ)器地址址。19(2)直直接存儲(chǔ)儲(chǔ)器存取DMAARM架構(gòu)構(gòu)的處理器器一般都沒沒有DMA部件,只只有在一些些高檔的ARM架構(gòu)構(gòu)處理器中中具有DMA的功能能。(3)中中斷IRQ和快速中中斷FIQ一般的ARM沒有DMA功能能,為了能能提高I//O處理能能力,系統(tǒng)統(tǒng)安排了快快速中斷FIQ(FastInterrupt),而而對普通I/O的中中斷源仍安安排了一般般中斷IRQ。要提高中斷斷響應(yīng)的速速度,在設(shè)設(shè)計(jì)中可以以采用以下下辦法:提供大量后后備寄存器器,在中斷斷響應(yīng)及返返回時(shí),作作為保護(hù)現(xiàn)現(xiàn)場和恢復(fù)復(fù)現(xiàn)場的上上下文切換換(ContextSwitching)之用。采用片內(nèi)RAM結(jié)構(gòu)構(gòu),這樣可可以加速異異常處理(包括中斷斷)的進(jìn)入入時(shí)間。Cache和地址變換換后備緩沖沖器TLB(TranslationLookasideBuffer)采用鎖鎖住(Lockeddown)方式式以確保臨臨界代碼段段不受“不不命中”所所產(chǎn)生的影影響。205.ARM協(xié)處理器器接口ARM可以以通過增加加協(xié)處理器器來支持一一個(gè)通用的的指令集的的擴(kuò)充;也可以通過過未定義指指令陷阱(Trap)來支持持協(xié)處理器器的軟件仿仿真。21ARM可以以擴(kuò)展16個(gè)協(xié)處理理器,每個(gè)個(gè)協(xié)處理器器可有16個(gè)寄存器器。MMU和保保護(hù)單元的的系統(tǒng)控制制都采用CPl5協(xié)協(xié)處理器;;JTAG調(diào)調(diào)試中的協(xié)協(xié)處理器為為CPl4,即調(diào)試試通信通道道DCC(DebugCommunicationChannel)協(xié)處理器號(hào)功能15系統(tǒng)控制14調(diào)試控制器13~8保留7~4用戶3~0保留226.ARM的AMBA接接口ARM處理理器內(nèi)核可可通過內(nèi)部部總線擴(kuò)充充Cache等部件件,或通過過協(xié)處理器器接口擴(kuò)充充各種協(xié)處處理器;也可以通過過先進(jìn)微控控制器總線線架構(gòu)AMBA(AdvancedMicrocontrollerBusArehitecture)來擴(kuò)展展不同體系系架構(gòu)的宏宏單元及I/O部件件。AMBA事事實(shí)上已成成為片上總總線OCB(OnChipBus)標(biāo)準(zhǔn)。。AMBA有有如下3類類總線:先進(jìn)高性能能總線AHB(AdvancedHigh-performanceBus);先進(jìn)系統(tǒng)總總線ASB(AdvancedSystemBus)先進(jìn)外圍總總線APB(AdvancedPeripheralBus)。AMBA結(jié)結(jié)構(gòu)如圖4—9所示示。23247.ARM的JTAG調(diào)試接接口JTAG的的基本知識(shí)識(shí)什么是JTAG??JTAG是是JointTestActionGroup的的縮寫,基基于IEEE1149.1標(biāo)標(biāo)準(zhǔn)。使用JTAG的優(yōu)點(diǎn)點(diǎn)JTAG的的建立使得得集成電路路固定在PCB上,,只通過邊邊掃描便可可以通過測測試。在ARM7TDMI處處理理器器中中,,可可以以通通過過JTAG直直接接控控制制ARM的的內(nèi)內(nèi)部部總總線線,,I/O口口等等信信息息,,從從而而達(dá)達(dá)到到調(diào)調(diào)試試的的目目的的。。25JTAG調(diào)調(diào)試試接接口口的的結(jié)結(jié)構(gòu)構(gòu)如如圖4——10所示示。。測試試訪訪問問端端口口TAP(TestAccessPort)控控制制器器;;旁路路(Bypass)寄寄存存器器;;指令令寄寄存存器器;;數(shù)據(jù)據(jù)寄寄存存器器;;與JTAG接接口口兼兼容容的的ARM架架構(gòu)構(gòu)處處理理器器。。26處理理器器的的每每個(gè)個(gè)引引腳腳都都有有一一個(gè)個(gè)移移位位寄寄存存單單元元,,稱稱為為邊邊界界掃掃描描單單元元BSC(BoundaryScanCell)::BSC將將JTAG電電路路與與處處理理器器核核邏邏輯輯電電路路聯(lián)聯(lián)系系起起來來,,同同時(shí)時(shí),,隔隔離離了了處處理理器器核核邏邏輯輯電電路路與與芯芯片片引引腳腳;;所有邊界界掃描單單元的串串聯(lián)構(gòu)成成了邊界界掃描寄寄存器BSR;BSR寄存器電電路僅在在進(jìn)行JTAG測試時(shí)時(shí)有效,,在處理理器核正正常工作作時(shí)無效效(直通)。27芯核邏輯BSCBSCBSCBSCBSCBSC28(1)JTAG的控制制寄存器器測試訪問問端口TAP控控制器::對嵌入入在ARM處理理器核內(nèi)內(nèi)部的測測試功能能電路進(jìn)進(jìn)行訪問問控制,,它是一一個(gè)同步步狀態(tài)機(jī)機(jī)。通過過測試模模式選擇擇TMS和時(shí)鐘鐘信號(hào)TCK來來控制狀狀態(tài)的轉(zhuǎn)轉(zhuǎn)換,實(shí)實(shí)現(xiàn)IEEEll49.1標(biāo)標(biāo)準(zhǔn)所確確定的測測試邏輯輯電路的的工作時(shí)時(shí)序。指令寄存存器:它它是串行行移位寄寄存器,,通過它它可以串串行輸入入執(zhí)行各各種操作作指令。。數(shù)據(jù)寄存存器組::它是一一組串行行移位寄寄存器。。操作指指令被串串行裝入入由當(dāng)前前指令所所選擇的的數(shù)據(jù)寄寄存器,,隨著操操作的進(jìn)進(jìn)行,測測試結(jié)果果被串行行移出。。其中::器件ID寄存器器:讀出出在芯片片內(nèi)固化化的ID號(hào)。旁路寄存存器:1位移位位寄存器器,用1個(gè)時(shí)鐘鐘的延遲遲把TDI連至至TDO,使測測試者在在同一電電路板測測試循環(huán)環(huán)內(nèi)訪問問其他器器件。邊界掃描描寄存器器(掃描描鏈)::截取ARM處處理器核核與芯片片引腳之之間所有有信號(hào),,組成專專用的寄寄存器鏈鏈。29(2)JTAG測試試信號(hào)TRST測試復(fù)位位輸入信信號(hào),測測試接口口初始化化。TCK測試時(shí)時(shí)鐘,,在TCK時(shí)鐘鐘的同同步作作用下下,通通過TDI和TDO引腳腳串行行移入入/移移出數(shù)數(shù)據(jù)或或指令令,同同時(shí)也也為測測試訪訪問端端口TAP控制制器的的狀態(tài)態(tài)機(jī)提提供時(shí)時(shí)鐘。。TMS測試模模式選選擇信信號(hào),,在在TCK同同步下下控制制測試試接口口狀態(tài)態(tài)機(jī)的的操作作。TDI測試數(shù)數(shù)據(jù)輸輸入線線,其其串行行輸入入數(shù)據(jù)據(jù)送至至邊界界掃描描寄存存器或或指令令寄存存器(由TAP控控制器器的當(dāng)當(dāng)前狀狀態(tài)及及已保保存在在指令令寄存存器中中的指指令來來控制制)。。TDO測試數(shù)數(shù)據(jù)輸輸出線線,把把從邊邊界掃掃描鏈鏈采樣樣的數(shù)數(shù)據(jù)傳傳播至至串行行測試試電路路中的的下一一個(gè)芯芯片JTAG可可以對對同一一塊電電路板板上多多塊芯芯片進(jìn)進(jìn)行測測試。。連接接方法法如下下:TRST、、TCK和和TMS信信號(hào)并并行接接至各各個(gè)芯芯片;;前1塊塊芯片片的TDO接至至下1塊芯芯片的的TDI。。30(3)TAP狀態(tài)態(tài)機(jī)測試訪訪問端端口TAP控制制器是是一個(gè)個(gè)16狀態(tài)態(tài)的有有限狀狀態(tài)機(jī)機(jī),為為JTAG提供供控制制邏輯輯,控控制進(jìn)進(jìn)入JTAG結(jié)結(jié)構(gòu)中中各種種寄存存器內(nèi)內(nèi)數(shù)據(jù)據(jù)的掃掃描與與操作作。狀態(tài)轉(zhuǎn)轉(zhuǎn)移圖圖如圖圖4——11所示示,在TCK同同步時(shí)時(shí)鐘上上升沿沿的TMS引腳腳的邏邏輯電電壓決決定狀狀態(tài)轉(zhuǎn)轉(zhuǎn)移的的過程程。任一狀狀態(tài)下下,讓讓TMS=1可可以經(jīng)經(jīng)5個(gè)個(gè)TCK回回到復(fù)復(fù)位狀狀態(tài)。。由TDI引引腳輸輸入到到器件件的掃掃描信信號(hào)有有2個(gè)個(gè)狀態(tài)態(tài)變化化路徑徑:用用于指指令移移入至至指令令寄存存器,,或用用于數(shù)數(shù)據(jù)移移入至至相應(yīng)應(yīng)的數(shù)數(shù)據(jù)寄寄存器器(該該數(shù)據(jù)據(jù)寄存存器由由當(dāng)前前指令令確定定)。。狀態(tài)圖圖中的的每個(gè)個(gè)狀態(tài)態(tài)都是是TAP控控制器器進(jìn)行行數(shù)據(jù)據(jù)處理理所需需要的的,這這些處處理包包括向向引腳腳施加加激勵(lì)勵(lì)信號(hào)號(hào)、捕捕獲輸輸入數(shù)數(shù)據(jù)、、加載載指令令以及及將邊邊界掃掃描寄寄存器器中數(shù)數(shù)據(jù)移移入//移出出31狀態(tài)轉(zhuǎn)轉(zhuǎn)換發(fā)發(fā)生在在TCK同同步時(shí)時(shí)鐘脈脈沖的的上升升沿32(4)JTAG接接口控控制指指令控制指指令用用于控控制JTAG接接口各各種操操作,,包括括公用(Public)指指令和和私有(Private)指令令。最最基本本的公公用指指令有有:BYPASS旁路片上系系統(tǒng)邏邏輯指指令,,用于于未被被測試試的芯芯片,,即把把TDI與與TDO旁旁路(1個(gè)個(gè)時(shí)鐘鐘延遲遲)。。EXTEST片片外電電路測測試指指令,,用于于測試試電路路板上上芯片片之間間的互互連。。如圖圖4——11中的的引腳腳狀態(tài)態(tài)被捕獲在captureDR;并并在shiftDR狀態(tài)時(shí)時(shí),通過TDO引腳腳把寄存器器中數(shù)據(jù)移移出,同時(shí)時(shí)新的數(shù)據(jù)據(jù)通過TDI引腳移移入,該數(shù)數(shù)據(jù)在更新updateDR狀態(tài)中用用于邊界掃掃描寄存器器輸出。IDCODE讀讀芯片ID碼指令,,用于識(shí)別別電路板上上的芯片。。此時(shí),ID寄存器器在TDI與TDO引腳之間間,在captureDR狀態(tài)中,,芯片的ID復(fù)制至至ID寄存存器,然后后在shiftDR狀態(tài)中中移出。INTEST片片內(nèi)測試指指令,邊界界掃描寄存存器位于TDI與TDO引腳腳之間,處處理器核邏邏輯輸入和和輸出狀態(tài)態(tài)被邊界掃掃描寄存器器捕獲和控控制。以上是ARM架構(gòu)最最基本的公公用指令,,各種處理理器核可以以根據(jù)需要要進(jìn)行擴(kuò)展展。332.1.3ARM處理器器內(nèi)核ARM體系系結(jié)構(gòu)的處處理器內(nèi)核核有ARM7TDMI、ARM8、ARM9TDMI、、ARM10TDMI及ARM11TDMI等等。ARM7TDMI處處理器內(nèi)核核ARM7TDMI處理理器是ARM7處理器器系列成成員之一一,是目目前應(yīng)用用很廣的的32位位高性能能嵌入式式RISC處理理器。TDMI后綴的的含義::T 具有有16位位壓縮指指令集Thumb;D 支持持在片調(diào)調(diào)試(Debug),,允許許處理器器響應(yīng)調(diào)調(diào)試請求求暫停;;M 增強(qiáng)強(qiáng)型乘法法器(Multiplier),比比以前處處理器性性能更高高,產(chǎn)生生全64位結(jié)果果;I 提供供嵌入式式ICE硬件,,支持片片上斷點(diǎn)點(diǎn)調(diào)試。。ARM7處理器器核采用用了3級(jí)級(jí)流水線線結(jié)構(gòu),,指令執(zhí)執(zhí)行分為為取指、、譯碼和和執(zhí)行等等3個(gè)階階段。ARM7TDMI的體系系結(jié)構(gòu)圖如圖圖4—12所所示。34113個(gè)掃描單元:包括ARM核所有I/O引腳、地址數(shù)據(jù)總線引腳和輸入輸出控制引腳。33個(gè)掃描單元:數(shù)據(jù)總線[D31:D0]和一個(gè)端點(diǎn)控制信號(hào)38個(gè)掃描單元:通過控制ICE宏單元,實(shí)現(xiàn)對ARM執(zhí)行指令的斷點(diǎn)、觀察點(diǎn)的控制。35ARM7TDMI內(nèi)核的的JTAG掃掃描鏈結(jié)構(gòu)(主要包括33條掃描鏈))ScanChain0:有113個(gè)掃描單元元,包括ARM核的所有有I/O,地地址數(shù)據(jù)總線線和輸入輸出出控制信號(hào).這條鏈上的的信號(hào)復(fù)雜,不易控制,但是,包含含的信息豐富富,可以通過過這條鏈得到到ARM7TDMI所有有的內(nèi)核信息息。36ScanChain1:有33個(gè)掃描描單元,包括括ARM核的的數(shù)據(jù)總線和一個(gè)斷點(diǎn)控制信號(hào)號(hào)。這是一條很很有用的鏈,,通過控制這這條鏈,可以以控制ARM核執(zhí)行指定定的指令,從從而實(shí)現(xiàn)對ARM的內(nèi)部部寄存器,協(xié)協(xié)處理器以及及外部存儲(chǔ)器器的讀寫操作作。ScanChain2:有38個(gè)掃描描單元,通過過控制EmbeddedICE宏單元,實(shí)現(xiàn)現(xiàn)對ARM執(zhí)執(zhí)行指令的斷斷點(diǎn)、觀察點(diǎn)點(diǎn)控制。EmbeddedICE是集成在ARM內(nèi)核的中中的嵌入式ICE防真器。通過過對EmbeddedICE的控制,對EmbeddedICE中寄存器的讀讀取,可以獲獲得ARM內(nèi)內(nèi)核的狀態(tài),,為程序設(shè)置置斷點(diǎn)或讀取取Debug通信通道。。372.2.1數(shù)數(shù)據(jù)類型型ARM處理器器支持下列數(shù)數(shù)據(jù)類型:Byte字字節(jié),8位;;(A31………A0)32位地址均均有效.Halfword半字字,16位(半字必須與與2字節(jié)邊界界對準(zhǔn))((A31………A1,0)偶數(shù)地址,A0為0;;Word字字,32位(字必須與4字節(jié)邊界對對準(zhǔn))。((A31………A2,0,0)地址是是4的倍數(shù),A1,A0均為0.2.2ARM編編程模模型圖4—18ARM數(shù)據(jù)類型存儲(chǔ)圖見ARM的存儲(chǔ)結(jié)構(gòu)38ARM體系系結(jié)構(gòu)構(gòu)支持持表4—3所列列的7種處處理器器模式式。表4——3處處理器器模式式處理器模式說明用戶user正常程序執(zhí)行模式FIOfiq支持高速數(shù)據(jù)傳送或通道處理IRQirq用于通用中斷處理管理svc操作系統(tǒng)保護(hù)模式系統(tǒng)復(fù)位后的缺省模式中止abt實(shí)現(xiàn)虛擬存儲(chǔ)器和/或存儲(chǔ)器保護(hù)未定義und支持硬件協(xié)處理器的軟件仿真系統(tǒng)sys運(yùn)行特權(quán)操作系統(tǒng)任務(wù)2.2.2處處理理器模模式異常模模式特權(quán)模模式39模式的的改變變在軟件件控制制下可可以改改變模模式;;外部中中斷或或異常常處理理也可可以引引起模模式發(fā)發(fā)生改改變。。大多數(shù)數(shù)應(yīng)用用程序序在用用戶模模式下下執(zhí)行行。當(dāng)處理理器工工作在在用戶戶模式式時(shí),,正在在執(zhí)行行的程程序不不能訪訪問某某些被被保護(hù)護(hù)的系系統(tǒng)資資源;;用戶模模式下下不能能改變變模式式,除除非異異常(Exception)發(fā)生生。這這允許許操作作系統(tǒng)統(tǒng)來控控制系系統(tǒng)資資源的的使用用。除用戶戶模式式外的的其他他6種種模式式稱為為特權(quán)模模式。特權(quán)模模式服服務(wù)于于中斷斷或異異常;;特權(quán)模模式可可以訪訪問被被保護(hù)護(hù)的資資源;;特權(quán)模模式下下可以以改變變模式式。關(guān)于模模式的的說明明:40系統(tǒng)模模式。。不能由由任何何其他他模式式進(jìn)入入該模模式;;它與用用戶模模式擁擁有完完全相相同的的寄存存器。。然而而它是是特權(quán)權(quán)模式式,不不受用用戶模模式的的限制制。它供需需要訪訪問系系統(tǒng)資資源的的操作作系統(tǒng)統(tǒng)任務(wù)務(wù)使用用,但但希望望避免免使用用與異異常模模式有有關(guān)的的附加加寄存存器。。避免免使用用附加加寄存存器保保證了了當(dāng)任任何異異常出出現(xiàn)時(shí)時(shí),都都不會(huì)會(huì)使任任務(wù)的的狀態(tài)態(tài)不可可靠。。除用戶戶模式式和系系統(tǒng)模模式之之外的的5種模式式稱作作異常常模式式。當(dāng)特定定的異異常出出現(xiàn)時(shí)時(shí),進(jìn)進(jìn)入相相應(yīng)的的模式式。每種模模式都都有某某些附附加的的寄存存器,,以避避免異異常出出現(xiàn)時(shí)時(shí)用戶戶模式式的狀狀態(tài)不不可靠靠。412.2.3處處理理器工工作狀狀態(tài)ARM處理理器有有兩種種工作作狀態(tài)態(tài):ARM:這這種狀狀態(tài)下下執(zhí)行行32位字字對準(zhǔn)準(zhǔn)的ARM指令令;取取指時(shí)時(shí)程序序計(jì)數(shù)數(shù)器的的PC.1和PC.0均均為0Thumb:這這種狀狀態(tài)下下執(zhí)行行半字字對準(zhǔn)準(zhǔn)的16位位Thumb指指令。。取指指時(shí)程程序計(jì)計(jì)數(shù)器器的PC.0為為0,,而使使用PC.1位位選擇擇另一一個(gè)半半字。。ARM處處理理器器可可以以在在兩兩種種工工作作狀狀態(tài)態(tài)之之間間切切換換。。ARM和和Thumb之之間間狀狀態(tài)態(tài)的的切切換換不不影影響響處處理理器器的的模模式式或或寄寄存存器器的的內(nèi)內(nèi)容容。。42ARM處處理理器器在在ARM和和Thumb兩兩種種工工作作狀狀態(tài)態(tài)之之間間切切換換的的方方法法::①進(jìn)入入Thumb狀狀態(tài)態(tài)。。當(dāng)當(dāng)操操作作數(shù)數(shù)寄寄存存器器的的狀狀態(tài)態(tài)位位(位位[0])為為1時(shí)時(shí),,執(zhí)執(zhí)行行BX指指令令進(jìn)進(jìn)入入Thumb狀狀態(tài)態(tài)。。如如果果處處理理器器在在Thumb狀狀態(tài)態(tài)進(jìn)進(jìn)入入異異常常,,則則當(dāng)當(dāng)異異常常處處理理(IRQ、、FIQ、、Undef、、Abort和和SWI)返返回回時(shí)時(shí),,自自動(dòng)動(dòng)轉(zhuǎn)轉(zhuǎn)換換到到Thumb狀狀態(tài)態(tài)。。②進(jìn)入入ARM狀狀態(tài)態(tài)。。當(dāng)當(dāng)操操作作數(shù)數(shù)寄寄存存器器的的狀狀態(tài)態(tài)位位(位位[0])為為0時(shí)時(shí),,執(zhí)執(zhí)行行BX指指令令進(jìn)進(jìn)入入ARM狀狀態(tài)態(tài)。。處處理理器器進(jìn)進(jìn)行行異異常常處處理理(IRQ、、FIQ、、Reset、、Undef、、Abort和和SWI)時(shí)時(shí),,把把PC放放入入異異常常模模式式鏈鏈接接寄寄存存器器中中,,從從異異常常向向量量地地址址開開始始執(zhí)執(zhí)行行也也可可以以進(jìn)進(jìn)入入ARM狀狀態(tài)態(tài)。。43ARM處處理器總總共有37個(gè)寄寄存器::31個(gè)通通用寄存存器,包包括程序序計(jì)數(shù)器器PC。。這些寄寄存器是是32位位的。6個(gè)狀態(tài)態(tài)寄存器器。這些些寄存器器也是32位的的,但只只使用了了其中的的12位位。37個(gè)寄存存器不能被被同時(shí)看到到,處理器器狀態(tài)和工工作模式?jīng)Q決定哪些寄寄存器編程程者可見。。2.2.4寄存存器組織44SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_svcCPRSCPRSCPRSCPRSCPRSCPRSCPRSR15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R14_fiqR14_irqR14_undR14_abtR14_svcR14R14R13_fiqR13_irqR13_undR13_abtR13_svcR13R13R12_fiqR12R12R12R12R12R12R11_fiqR11R11R11R11R11R11R10_fiqR10R10R10R10R10R10R9_fiqR9R9R9R9R9R9R8_fiqR8R8R8R8R8R8R7R7R7R7R7R7R7R6R6R6R6R6R6R6R5R5R5R5R5R5R5R4R4R4R4R4R4R4R3R3R3R3R3R3R3R2R2R2R2R2R2R2R1R1R1R1R1R1R1R0R0R0R0R0R0R0快中斷模式中斷模式未定義模式中止模式管理模式系統(tǒng)模式用戶模式異常模式特權(quán)模式**黃色表明用戶或或系統(tǒng)模式式使用的一一般寄存器器已被異常常模式特定定的另一寄寄存器所替替代451.通用寄寄存器通用寄存器器(R0~~R15)可分成3類:(1)不不分組寄存存器R0~~R7R0~R7是不分組組寄存器,,在所有的的處理器模模式下,它它們每一個(gè)個(gè)都訪問同同樣的32位物理寄寄存器。它它們是真正正的通用寄寄存器,沒沒有體系結(jié)結(jié)構(gòu)所隱含含的特殊用用途。(2)分分組寄存器器R8~R14R8~R14是分組組寄存器。。它們每一一個(gè)訪問的的物理寄存存器取決于于當(dāng)前的處處理器模式式。每種處處理器模式式有專用的的分組寄存存器用于快快速異常處處理。若要訪問特特定的物理理寄存器而而不依賴于于當(dāng)前的處處理器模式式,則要使使用規(guī)定的的名字。46寄存器R8~R12各有兩組組物理寄存存器。一組組為FIQ模式,另另一組為除除FIQ以以外的其他他模式。第第1組訪問問R8_fiq~R12_fiq,第第二組訪問問R8_usr~R12_usr。獨(dú)獨(dú)立的FIQ模式允允許快速中中斷處理。。寄存器R13、R14各有6個(gè)分組的的物理寄存存器。1個(gè)個(gè)用于用戶戶模式和系系統(tǒng)模式,,而其他5個(gè)分別用用于5種異異常模式。。訪問時(shí)需需要指定其其模式名。。名字形式式如下:R13_<mode>R14_<mode>其中,<mode>可以從usr、svc、abt、und、irq和fiq6種模式中中選取一個(gè)個(gè)。47寄存器R13通常用用作堆棧指指針,稱作作SP。每種異常模模式都有自自己的分組組R13。。通常R13應(yīng)當(dāng)被初初始化成指指向異常模模式分配的的堆棧。在異常處理理程序的入入口將用到到的其他寄寄存器的值值保存到堆堆棧中。返返回時(shí),重重新將這些些值加載到到寄存器。。這種異常常處理方法法保證了異異常出現(xiàn)后后不會(huì)導(dǎo)致致執(zhí)行程序序的狀態(tài)不不可靠。48寄存器R14用作子子程序鏈接接寄存器,,也稱為鏈鏈接寄存器器LR(LinkRegister)。當(dāng)執(zhí)行帶鏈鏈接轉(zhuǎn)移(BL)指指令時(shí),R14得得到R15的拷貝。。在其他情況況下,將R14當(dāng)做做通用寄存存器。類似地,當(dāng)當(dāng)中斷或異異常出現(xiàn)時(shí)時(shí),或中斷斷或異常程程序執(zhí)行BL指令時(shí)時(shí),相應(yīng)的的分組寄存存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用來保存存R15的返回值。49應(yīng)用提示:FIQ模式有有7個(gè)分組的的寄存器R8~R14映映射為R8_fiq~~R14_fiq。在在ARM狀態(tài)態(tài)下,F(xiàn)IQ處理中使用用R8~R14沒必要保保存。User、IRQ、Supervisor、Abort和和Undefined模模式每一種都都包含兩個(gè)分分組的寄存器器R13和R14的映射射,允許每種種模式都有自自己的堆棧和和鏈接寄存器器。50(3)程序序計(jì)數(shù)器R15寄存器R15用作程序計(jì)計(jì)數(shù)器PC。。在ARM狀狀態(tài),位[1:0]為0,位[31:2]保存存PC。在Thumb狀狀態(tài)下,位[0]為0,,位[31:1]保存PC。程序計(jì)計(jì)數(shù)器用于特特殊場合。①讀程序計(jì)數(shù)器器。指令讀出出的R15的的值是指令地地址加上8個(gè)個(gè)字節(jié)。由于于ARM指令令始終是字對對準(zhǔn)的,所以以讀出結(jié)果值值的位[1:0]總是0(在Thumb狀態(tài)下下,情況有所所變化)。讀讀PC主要用用于快速地對對臨近的指令令和數(shù)據(jù)進(jìn)行行位置無關(guān)尋尋址,包括程程序中的位置置無關(guān)轉(zhuǎn)移。。②寫程序計(jì)數(shù)器器。寫R15的通常結(jié)果果是將寫到R15中的值值作為指令地地址,并以此此地址發(fā)生轉(zhuǎn)轉(zhuǎn)移。由于ARM指令要要求字對準(zhǔn),,通常希望寫寫到R15中中值的位[1:0]=0b00。512.程序狀態(tài)態(tài)寄存器在所有處理器器模式下都可可以訪問當(dāng)前前程序狀態(tài)寄寄存器CPSR(CurrentProgramStatusRegister)。。CPSR包含含條件碼標(biāo)志志、中斷禁止止位、當(dāng)前處處理器模式以以及其他狀態(tài)態(tài)和控制信息息。每種異常模式式都有一個(gè)程程序狀態(tài)保存存寄存器SPSR(SavedProgramStatusRegister)。。當(dāng)異常出現(xiàn)現(xiàn)時(shí),SPSR用于保存存CPSR的的狀態(tài)。CPSR和SPSR的格格式如下:M0M1M2M3M4TFIDNM(RAZ)VCZN31302928876543210條件碼狀態(tài)標(biāo)志位中斷禁止控制位Thumb控制位模式控制位保留位,用做以后的擴(kuò)展52(1)條件碼碼標(biāo)志N、Z、C、、V(Negative、Zero、Carry、overflow)位稱作條條件碼標(biāo)志(ConditionCodeFlag),經(jīng)常以標(biāo)標(biāo)志(Flag)引用。。CPSR中中的條件碼標(biāo)標(biāo)志可由大多多數(shù)指令檢測測以決定指令令是否執(zhí)行。。通常條件碼標(biāo)標(biāo)志通過執(zhí)行行下述指令進(jìn)進(jìn)行修改比較指令(CMN、CMP、TEQ、TST)一些算術(shù)運(yùn)算算、邏輯運(yùn)算算和傳送指令令,它們的目目的寄存器不不是R15。。這些指令中中大多數(shù)同時(shí)時(shí)有標(biāo)志保留留變量和標(biāo)志志設(shè)置變量,,后者通過在在指令助記符符后加上字符符“S”來選選定。加“S”表示進(jìn)行行標(biāo)志設(shè)置。。53(2)控控制制位位程序序狀狀態(tài)態(tài)寄寄存存器器PSR(ProgramStatusRegister)的的最最低低8位位I、、F、、T和和M[4::0]用用作作控控制制位位。。當(dāng)異異常常出出現(xiàn)現(xiàn)時(shí)時(shí)改改變變控控制制位位。。處理理器器在在特特權(quán)權(quán)模模式式下下時(shí)時(shí)也也可可由由軟軟件件改改變變。。中斷禁止止位:I置1,,則禁止止IRQ中斷;;F置1,則禁禁止FIQ中斷斷。T位:T=0,,指示執(zhí)執(zhí)行ARM指令令;T==l,指指示執(zhí)行行Thumb指指令。模式位::MO、、M1、、M2、、M3和和M4(M[4:0])是模模式位,,這些位位決定處處理器的的工作模模式,如如表4——4所列列。54M[4:0]模式可訪問的寄存器l0000用戶PC、R14~R0、CPSR10001FIQPC、R14_fiq~R8_fiq、R7~R0、CPSR、SPSR_fiq10010IRQPC、R14_irq、R13_irq、R12~R0、CPSR、SPSR_irq10011管理PC、R14_svc、R13_svc、R12~R0、CPSR、SPSR_svc10111中止PC、R14_abt、R13_abt、R12~R0、CPSR、SPSR_abt11011未定義PC、R14_und、R13_und、R12~R0、CPSR、SPSR_und11111系統(tǒng)PC、R14~R0、CPSR表2—4模模式位553.Thumb狀態(tài)的的寄存器器集Thumb狀態(tài)態(tài)下的寄寄存器集集是ARM狀態(tài)態(tài)下的寄寄存器集集的子集集。程序序員可以以直接訪訪問8個(gè)個(gè)通用寄寄存器(R0~~R7)、PC、SP、LR和CPSR。。每一種種特權(quán)模模式都有有一組SP、LR和SPSR。如下下圖:56Thumb狀態(tài)態(tài)的R0~R7與ARM狀態(tài)態(tài)的R0~R7是一致致的。Thumb狀態(tài)態(tài)的CPSR和和SPSR與ARM狀狀態(tài)的CPSR和SPSR是是一致的的。Thumb狀態(tài)態(tài)的SP映射到到ARM狀態(tài)的的R13。Thumb狀態(tài)態(tài)的LR映射到到ARM狀態(tài)的的R14。Thumb狀態(tài)態(tài)的PC映射到到ARM狀態(tài)的的PC(R15)。在Thumb狀狀態(tài)下,,寄存器器R8~~R15(高寄寄存器)并不是是標(biāo)準(zhǔn)寄寄存器集集的一部部分。匯匯編語言言編程者者能夠有有限制地地訪問它它,可以以將其用用做快速速暫存存存儲(chǔ)器,,可以將將R0~~R7(低寄存存器)中中寄存器器的值傳傳送到R8~R15(高寄存存器)57582.2..5異異常常異常由內(nèi)內(nèi)部或外外部源產(chǎn)產(chǎn)生并引引起處理理器處理理一個(gè)事事件,例例如外部部中斷或或試圖執(zhí)執(zhí)行未定定義指令令都會(huì)引引起異常常。在處理異異常之前前,處理理器狀態(tài)態(tài)必須保保留,以以便在異異常處理理程序完完成后,,原來的的程序能能夠重新新執(zhí)行。。同一時(shí)刻刻可能出出現(xiàn)多個(gè)個(gè)異常。。ARM支支持7種種類型的的異常。。異常出出現(xiàn)后,,強(qiáng)制從從異常類類型對應(yīng)應(yīng)的固定定存儲(chǔ)器器地址開開始執(zhí)行行程序。。這些固固定的地地址稱為為異常向向量(ExceptionVectors)。。表4—5列出了了異常的的類型以以及處理理這些異異常的處處理器模模式。59異常類型模式正常地址高向量地址復(fù)位管理0x000000000xFFFF0000未定義指令未定義0x000000040xFFFF0004軟件中斷(SWl)管理0x000000080xFFFF0008預(yù)取中止(取指令存儲(chǔ)器中止)中止0x0000000C0xFFFF000C數(shù)據(jù)中止(數(shù)據(jù)訪問存儲(chǔ)器中止)中止0x000000100xFFFF0010IRQ(中斷)IRQ0x000000180xFFFF0018FIQ(快速中斷)FIQ0x000000lC0xFFFF001C表4—5異異常處理理模式60當(dāng)異常出出現(xiàn)時(shí),,異常模模式分組組的R14和SPSR用于保保存狀態(tài)態(tài)。R14保保存程序序計(jì)數(shù)器器PC((R15);SPSR保存當(dāng)當(dāng)前狀態(tài)態(tài)寄存器器CPSR;當(dāng)處理異異常返回回時(shí),把把SPSR傳送送到CPSR,,R14傳送到到PC。。這可用用兩種方方法自動(dòng)動(dòng)完成::使用帶““S”的的數(shù)據(jù)處處理指令令,將PC作為為目的寄寄存器;;使用帶恢恢復(fù)CPSR的的多加載載指令。。61關(guān)于異常常的說明明:① 復(fù)位位。處理器上上一旦有有復(fù)位輸輸入,ARM處處理器立立刻停止止執(zhí)行當(dāng)當(dāng)前指令令。復(fù)位位后,ARM處處理器在在禁止中中斷的管管理模式式下,從從地址0x00000000或OxFFFF0000開開始執(zhí)行行指令。。② 未定定義指令令異常。當(dāng)ARM處理理器執(zhí)行行協(xié)處理理器指令令時(shí),它它必須等等待任一一外部協(xié)協(xié)處理器器應(yīng)答后后,才能能真正執(zhí)執(zhí)行這條條指令。。若協(xié)處處理器沒沒有響應(yīng)應(yīng),就會(huì)會(huì)出現(xiàn)未未定義指指令異常常。若試試圖執(zhí)行行未定義義的指令令,也會(huì)會(huì)出現(xiàn)未未定義指指令異常常。未定定義指令令異??煽捎糜谠谠跊]有物物理協(xié)處處理器(硬件)的系統(tǒng)統(tǒng)上,對對協(xié)處理理器進(jìn)行行軟件仿仿真,或或在軟件件仿真時(shí)時(shí)進(jìn)行指指令擴(kuò)展展。62軟件中斷斷異常。。軟件中斷斷異常指指令SWI(SoftWareInterrupt)進(jìn)進(jìn)入管理理模式,,以請求求特定的的管理(操作系系統(tǒng))函函數(shù)。④ 預(yù)取取中止異異常(取指令令存儲(chǔ)器器中止)。存儲(chǔ)儲(chǔ)器系統(tǒng)統(tǒng)發(fā)出存存儲(chǔ)器中中止(Abort)信信號(hào)。響響應(yīng)取指指激活的的中止,,標(biāo)記所所取的指指令無效效。若處理器試圖執(zhí)行行無效指指令,則則產(chǎn)生預(yù)預(yù)取中止止異常。。若指令令未執(zhí)行行(例如如指令在在流水線線中發(fā)生生了轉(zhuǎn)移移),則則不發(fā)生生預(yù)取中中止。63⑤ 數(shù)據(jù)據(jù)中止異異常(數(shù)據(jù)訪訪問存儲(chǔ)儲(chǔ)器中止止)。存存儲(chǔ)器系系統(tǒng)發(fā)出出存儲(chǔ)器器中止信信號(hào)。響響應(yīng)數(shù)據(jù)據(jù)訪問(加載或或存儲(chǔ))激活中中止,標(biāo)標(biāo)記數(shù)據(jù)據(jù)為無效效。在后后面的任任何指令令或異常常改變CPU狀狀態(tài)之前前,數(shù)據(jù)據(jù)中止異異常發(fā)生生。⑥ 中斷斷請求(IRQ)異常常。通過處處理器上上的IRQ輸入入引腳,,由外部部產(chǎn)生IRQ異異常。IRQ異常常的優(yōu)先先級(jí)比FIQ異異常的低低。當(dāng)進(jìn)進(jìn)入FIQ處理理時(shí),會(huì)會(huì)屏蔽掉掉IRQ異常。。⑦快快速中中斷請請求(FIQ)異常常。通過過處理理器上上的FIQ輸入入引腳腳,由由外部部產(chǎn)生生FIQ異異常。。FIQ被被設(shè)計(jì)計(jì)成支支持?jǐn)?shù)數(shù)據(jù)傳傳送和和通道道處理理,并并有足足夠的的私有有寄存存器,,從而而在這這樣的的應(yīng)用用中可可避免免對寄寄存器器保存存的需需求,,減少少了上上下文文切換換的總總開銷銷。64表4—6異異常優(yōu)優(yōu)先級(jí)優(yōu)先級(jí)異常1(最高)復(fù)位2數(shù)據(jù)中止3FIQ4IRQ5指令預(yù)取中止6(最低)未定義指令、SWI異常的優(yōu)先先級(jí):652.2.6存儲(chǔ)儲(chǔ)器和存儲(chǔ)儲(chǔ)器映射I/0ARM體系系結(jié)構(gòu)允許許使用現(xiàn)有有的存儲(chǔ)器器和I/O器件進(jìn)行行各種各樣樣的存儲(chǔ)器器系統(tǒng)設(shè)計(jì)計(jì)。1.地址空空間ARM體系系結(jié)構(gòu)使用用232個(gè)8位字節(jié)節(jié)的單一、、線性地址址空間。將將字節(jié)地址址作為無符符號(hào)數(shù)看待待,范圍為為0~232—1。將地址空間間看作由230個(gè)32位的的字組成。。每個(gè)字的的地址是字字對準(zhǔn)的,,故地址可可被4整除除。字對準(zhǔn)準(zhǔn)地址是A的字由地地址為A、、A+1、、A+2和和A+3的的4個(gè)字節(jié)節(jié)組成。地址空間也也看作由231個(gè)16位的的半字組成成,每個(gè)半半字的地址址是半字對對準(zhǔn)的,故故地址可被被2整除。。半字對準(zhǔn)準(zhǔn)地址是A的半字由由地址為A和A+1的2個(gè)字字節(jié)組成。。66地址計(jì)算通通常由普通通的整數(shù)指指令完成。。這意味著著若計(jì)算的的地址在地地址空間中中上溢或下下溢,通常常就會(huì)環(huán)繞繞,計(jì)算結(jié)結(jié)果縮減模模232。然而,為為了減少以以后地址空空間擴(kuò)展的的不兼容,,程序應(yīng)該該編寫成使使地址的計(jì)計(jì)算結(jié)果位位于0~232—1的范范圍內(nèi)。大多數(shù)轉(zhuǎn)移移指令通過過把指令指指定的偏移移量加到PC的值上上來計(jì)算目目的地址,,然后把結(jié)結(jié)果寫回到到PC。計(jì)計(jì)算公式如如下:目的地址==當(dāng)前指令令的地址+8+偏移移量如果計(jì)算結(jié)結(jié)果在地址址空間中上上溢或下溢溢,則指令令因地址環(huán)環(huán)繞從而是是不可預(yù)知知的。因此此,向前轉(zhuǎn)轉(zhuǎn)移不應(yīng)當(dāng)當(dāng)超

溫馨提示

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

評論

0/150

提交評論