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

下載本文檔

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

文檔簡介

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

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

3ARM處理器的3大特點是:傳統(tǒng)的CISC指令集計算機隨著計算RISC指令集和相關(guān)的譯碼機制比復雜指令集計算機(CISC)的設計更簡單。這種簡單性得到了:高指令吞吐率;出色的實時中斷響應;體積小、性價比高的處理器宏單元。16位Thumb指令集,允許軟件16位編碼使占用的存儲器空間節(jié)省高達35%,然而保留了32位系統(tǒng)所有的優(yōu)勢。4RISC指令集和相關(guān)的譯碼機制比復雜指令集計算機(CISC)ARM還提供了兩個前沿特性——嵌入式ICE—RT邏輯和嵌入式跟蹤宏核系列,用于輔助嵌入式處理器核的、高集成的SoC器件的調(diào)試。允許在代碼的任何部分——甚至在ROM中設置斷點。ARM當前有5個產(chǎn)品系列:ARM7、ARM9、ARM9E、ARM10和SecurCore。進一步的產(chǎn)品來自于合作伙伴,例如IntelXScale微體系結(jié)構(gòu)和StrongARM產(chǎn)品。5ARM還提供了兩個前沿特性——嵌入式ICE—RT邏輯和嵌入式1.ARM的RISC型處理器結(jié)構(gòu)中央控制器沒有采用微程序的方式。采用了硬接線PLA的方式。減少復雜功能的指令,選用使用頻度最高的指令;簡化處理器的結(jié)構(gòu),減少處理器的集成度;采用32位定長指令。除了單機器周期執(zhí)行1條指令外,每條指令具有多種操作功能,提高了指令使用效率。采用流水線結(jié)構(gòu),使每一條指令平均在一個機器周期內(nèi)完成,以提高處理器的速度。采用多寄存器的結(jié)構(gòu),使指令的操作盡可能在寄存器之間進行。采用Load/Store結(jié)構(gòu),即只有Load/Store(加載/存儲)指令可與存儲器打交道,減少訪問存儲器的頻度,節(jié)約指令執(zhí)行時間。為了進一步提高指令和數(shù)據(jù)的存/取速度,有的還增加指令快存I—Cache和數(shù)據(jù)快存D—Cache;61.ARM的RISC型處理器結(jié)構(gòu)中央控制器沒有采用微程序的方2.Thumb指令集新型ARM體系結(jié)構(gòu)在32位指令集的基礎上又定義了16位的Thumb指令集,可以使程序存儲器更小。Thumb指令集比通常的8位和16位CISC/RISC處理器具有更好的代碼密度,而芯片面積只增加6%。72.Thumb指令集新型ARM體系結(jié)構(gòu)在32位指令集的基礎上3.多處理器狀態(tài)模式ARM可以支持7種處理器模式:用戶模式快中斷模式中斷模式管理模式中止模式系統(tǒng)模式未定義模式除了用戶模式外,其余的均為特權(quán)模式。這是ARM的特色之一。多處理器模式可以大大提高ARM處理器的效率,并方便操作系統(tǒng)的設計。83.多處理器狀態(tài)模式ARM可以支持7種處理器模式:84.嵌入式在線仿真調(diào)試ARM體系結(jié)構(gòu)的處理器芯片都嵌入了在線仿真ICE—RT邏輯由于ICE—RT邏輯的支持,便于通過JTAG來仿真調(diào)試ARM體系結(jié)構(gòu)芯片,從而可以省去價格昂貴的在線仿真器。在處理器核中還集成了嵌入式跟蹤宏單元(ETM),ETM可以用于監(jiān)控內(nèi)部總線,實時跟蹤指令和數(shù)據(jù)的執(zhí)行。94.嵌入式在線仿真調(diào)試ARM體系結(jié)構(gòu)的處理器芯片都嵌入了在線5.靈活和方便的接口ARM體系結(jié)構(gòu)具有協(xié)處理器接口,這樣,既可以使基本的ARM處理器內(nèi)核盡可能小,又可以方便地擴充各種功能。ARM允許接16個協(xié)處理器。ARM處理器核具有片上總線AMBA(AdvancedMicrocontrollerBusArchitecture)。AMBA定義了3組總線:先進高性能總線AHB(AdvancedHighperformanceBus);先進系統(tǒng)總線ASB(AdvancedSystemBus);先進外圍總線APB(AdvancedPeripheralBus)。通過AMBA可以方便地擴充各種處理器及I/O,這樣,可以把DSP、其他處理器和I/O接口(如UART、定時器和接口等)都集成在一塊芯片中。105.靈活和方便的接口ARM體系結(jié)構(gòu)具有協(xié)處理器接口,這樣,既6、低電壓低功耗的設計由于ARM體系結(jié)構(gòu)的處理器主要用于手持式嵌入式系統(tǒng)之中,ARM體系結(jié)構(gòu)在設計中十分注意低功耗問題。CMOS電路的功耗關(guān)系: Pc=(1/2)·f·VDD2·∑Ag·CLg式中,f為時鐘頻率;VDD為工作電源電壓;Ag是邏輯門在1個時鐘周期內(nèi)翻轉(zhuǎn)的次數(shù)(通常為2);CLg為門的負載電容。因此,ARM體系結(jié)構(gòu)的設計采用了以下措施:降低電源電壓,可工作在3.0V以下。減少門的翻轉(zhuǎn)次數(shù),當某個功能電路不需要時,禁止門翻轉(zhuǎn)。減少門的數(shù)目,即降低芯片的集成度。降低時鐘頻率(但也會損失系統(tǒng)的性能)。116、低電壓低功耗的設計由于ARM體系結(jié)構(gòu)的處理器主要用于手持2.1.2ARM處理器結(jié)構(gòu)1.ARM體系結(jié)構(gòu)是ARM體系結(jié)構(gòu):32位ALU;31個32位通用寄存器6個狀態(tài)寄存器32×8位乘法器32×32位桶形移位寄存器指令譯碼及控制邏輯指令流水線數(shù)據(jù)/地址寄存器。 如圖4—1所示122.1.2ARM處理器結(jié)構(gòu)1.ARM體系結(jié)構(gòu)12FIG4-113FIG4-1132.ARM的流水線結(jié)構(gòu)計算機中的1條指令的執(zhí)行可以分若干個階段:①取指,從存儲器中取出指令(fetch);②譯碼,指令譯碼(dec);③取操作數(shù),假定從寄存器組中取操作數(shù)(reg);④執(zhí)行運算(ALU);⑤存儲器訪問,操作數(shù)與存儲器有關(guān)(mem);⑥結(jié)果寫回寄存器(res)。各個階段的操作相對都是獨立的。因此,采用流水線的重疊技術(shù)可以大大提高系統(tǒng)性能。142.ARM的流水線結(jié)構(gòu)計算機中的1條指令的執(zhí)行可以分若干個階ARM體系結(jié)構(gòu)的單周期3級流水線

圖4—5ARM單周期3級流水線取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行時間12315ARM體系結(jié)構(gòu)的單周期3級流水線圖4—5ARM單周期3.ARM存儲器結(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)還帶有存儲器管理單元MMU。圖4—8ARM外接RAM和ROM163.ARM存儲器結(jié)構(gòu)ARM架構(gòu)的處理器,有的帶有指令Cach圖4—8ARM外接RAM和ROMROMoeRAMoeRAMwe3RAMwe2RAMwe1RAMwe0A1、A0沒有接入片內(nèi)地址線,他們是確定RAMwe3~RAMwe0的依據(jù)。17圖4—8ARM外接RAM和ROMROMoeRAMoeRA4.ARMI/O結(jié)構(gòu)ARM架構(gòu)中的處理器核和處理器內(nèi)核一般都沒有I/O部件和模塊,ARM架構(gòu)處理器的I/O可通過AMBA(先進微控制總線架構(gòu))總線來擴充。ARM架構(gòu)中的I/O直接存儲器存取DMA中斷結(jié)構(gòu)。

184.ARMI/O結(jié)構(gòu)ARM架構(gòu)中的處理器核和處理器內(nèi)(1) 存儲器映射I/O一般的I/O(如串行接口)有若干個寄存器:發(fā)送數(shù)據(jù)寄存器(只寫);數(shù)據(jù)接收寄存器(只讀);控制寄存器、狀態(tài)寄存器(只讀);中斷允許寄存器; 等。這些寄存器都需要相應的I/O端口地址。ARM采用了存儲器映射I/O的方式,即把I/O端口地址作為特殊的存儲器地址。

19(1) 存儲器映射I/O19(2)直接存儲器存取DMAARM架構(gòu)的處理器一般都沒有DMA部件,只有在一些高檔的ARM架構(gòu)處理器中具有DMA的功能。

(3)中斷IRQ和快速中斷FIQ一般的ARM沒有DMA功能,為了能提高I/O處理能力,系統(tǒng)安排了快速中斷FIQ(FastInterrupt),而對普通I/O的中斷源仍安排了一般中斷IRQ。要提高中斷響應的速度,在設計中可以采用以下辦法:提供大量后備寄存器,在中斷響應及返回時,作為保護現(xiàn)場和恢復現(xiàn)場的上下文切換(ContextSwitching)之用。采用片內(nèi)RAM結(jié)構(gòu),這樣可以加速異常處理(包括中斷)的進入時間。Cache和地址變換后備緩沖器TLB(TranslationLookasideBuffer)采用鎖住(Lockeddown)方式以確保臨界代碼段不受“不命中”所產(chǎn)生的影響。20(2)直接存儲器存取DMAARM架構(gòu)的處理器一般都沒有D5.ARM協(xié)處理器接口ARM可以通過增加協(xié)處理器來支持一個通用的指令集的擴充;也可以通過未定義指令陷阱(Trap)來支持協(xié)處理器的軟件仿真。215.ARM協(xié)處理器接口ARM可以通過增加協(xié)處理器來支持一個通ARM可以擴展16個協(xié)處理器,每個協(xié)處理器可有16個寄存器。MMU和保護單元的系統(tǒng)控制都采用CPl5協(xié)處理器;JTAG調(diào)試中的協(xié)處理器為CPl4,即調(diào)試通信通道DCC(DebugCommunicationChannel)協(xié)處理器號功能15系統(tǒng)控制14調(diào)試控制器13~8保留7~4用戶3~0保留22ARM可以擴展16個協(xié)處理器,每個協(xié)處理器可有16個寄存器。6.ARM的AMBA接口ARM處理器內(nèi)核可通過內(nèi)部總線擴充Cache等部件,或通過協(xié)處理器接口擴充各種協(xié)處理器;也可以通過先進微控制器總線架構(gòu)AMBA(AdvancedMicrocontrollerBusArehitecture)來擴展不同體系架構(gòu)的宏單元及I/O部件。AMBA事實上已成為片上總線OCB(OnChipBus)標準。AMBA有如下3類總線:先進高性能總線AHB(AdvancedHigh-performanceBus);先進系統(tǒng)總線ASB(AdvancedSystemBus)先進外圍總線APB(AdvancedPeripheralBus)。 AMBA結(jié)構(gòu)如圖4—9所示。236.ARM的AMBA接口ARM處理器內(nèi)核可通過內(nèi)部總線24247.ARM的JTAG調(diào)試接口JTAG的基本知識什么是JTAG? JTAG是JointTestActionGroup的縮寫,基于IEEE1149.1標準。使用JTAG的優(yōu)點JTAG的建立使得集成電路固定在PCB上,只通過邊掃描便可以通過測試。在ARM7TDMI處理器中,可以通過JTAG直接控制ARM的內(nèi)部總線,I/O口等信息,從而達到調(diào)試的目的。257.ARM的JTAG調(diào)試接口JTAG的基本知識25JTAG調(diào)試接口的結(jié)構(gòu)如圖4—10所示。測試訪問端口TAP(TestAccessPort)控制器;旁路(Bypass)寄存器;指令寄存器;數(shù)據(jù)寄存器;與JTAG接口兼容的ARM架構(gòu)處理器。26JTAG調(diào)試接口的結(jié)構(gòu)如圖4—10所示。26處理器的每個引腳都有一個移位寄存單元,稱為邊界掃描單元BSC(BoundaryScanCell):BSC將JTAG電路與處理器核邏輯電路聯(lián)系起來,同時,隔離了處理器核邏輯電路與芯片引腳;所有邊界掃描單元的串聯(lián)構(gòu)成了邊界掃描寄存器BSR;BSR寄存器電路僅在進行JTAG測試時有效,在處理器核正常工作時無效(直通)。27處理器的每個引腳都有一個移位寄存單元,稱為邊界掃描單元BSC芯核邏輯BSCBSCBSCBSCBSCBSC28芯核邏輯BSCBSCBSCBSCBSCBSC28

(1)JTAG的控制寄存器測試訪問端口TAP控制器:對嵌入在ARM處理器核內(nèi)部的測試功能電路進行訪問控制,它是一個同步狀態(tài)機。通過測試模式選擇TMS和時鐘信號TCK來控制狀態(tài)的轉(zhuǎn)換,實現(xiàn)IEEEll49.1標準所確定的測試邏輯電路的工作時序。指令寄存器:它是串行移位寄存器,通過它可以串行輸入執(zhí)行各種操作指令。數(shù)據(jù)寄存器組:它是一組串行移位寄存器。操作指令被串行裝入由當前指令所選擇的數(shù)據(jù)寄存器,隨著操作的進行,測試結(jié)果被串行移出。其中:器件ID寄存器:讀出在芯片內(nèi)固化的ID號。旁路寄存器:1位移位寄存器,用1個時鐘的延遲把TDI連至TDO,使測試者在同一電路板測試循環(huán)內(nèi)訪問其他器件。邊界掃描寄存器(掃描鏈):截取ARM處理器核與芯片引腳之間所有信號,組成專用的寄存器鏈。29(1)JTAG的控制寄存器測試訪問端口TAP控制器:

(2)JTAG測試信號TRST 測試復位輸入信號,測試接口初始化。TCK 測試時鐘,在TCK時鐘的同步作用下,通過TDI和TDO引腳串行移入/移出數(shù)據(jù)或指令,同時也為測試訪問端口TAP控制器的狀態(tài)機提供時鐘。TMS 測試模式選擇信號,在TCK同步下控制測試接口狀態(tài)機的操作。TDI 測試數(shù)據(jù)輸入線,其串行輸入數(shù)據(jù)送至邊界掃描寄存器或指令寄存器(由TAP控制器的當前狀態(tài)及已保存在指令寄存器中的指令來控制)。TDO 測試數(shù)據(jù)輸出線,把從邊界掃描鏈采樣的數(shù)據(jù)傳播至串行測試電路中的下一個芯片JTAG可以對同一塊電路板上多塊芯片進行測試。連接方法如下:TRST、TCK和TMS信號并行接至各個芯片;前1塊芯片的TDO接至下1塊芯片的TDI。30(2)JTAG測試信號TRST 測試復位輸入信號,(3)TAP狀態(tài)機測試訪問端口TAP控制器是一個16狀態(tài)的有限狀態(tài)機,為JTAG提供控制邏輯,控制進入JTAG結(jié)構(gòu)中各種寄存器內(nèi)數(shù)據(jù)的掃描與操作。狀態(tài)轉(zhuǎn)移圖如圖4—11所示,在TCK同步時鐘上升沿的TMS引腳的邏輯電壓決定狀態(tài)轉(zhuǎn)移的過程。任一狀態(tài)下,讓TMS=1可以經(jīng)5個TCK回到復位狀態(tài)。由TDI引腳輸入到器件的掃描信號有2個狀態(tài)變化路徑:用于指令移入至指令寄存器,或用于數(shù)據(jù)移入至相應的數(shù)據(jù)寄存器(該數(shù)據(jù)寄存器由當前指令確定)。狀態(tài)圖中的每個狀態(tài)都是TAP控制器進行數(shù)據(jù)處理所需要的,這些處理包括向引腳施加激勵信號、捕獲輸入數(shù)據(jù)、加載指令以及將邊界掃描寄存器中數(shù)據(jù)移入/移出31(3)TAP狀態(tài)機測試訪問端口TAP控制器是一個16狀狀態(tài)轉(zhuǎn)換發(fā)生在TCK同步時鐘脈沖的上升沿32狀態(tài)轉(zhuǎn)換發(fā)生在TCK同步時鐘脈沖的上升沿32(4)JTAG接口控制指令控制指令用于控制JTAG接口各種操作,包括公用(Public)指令和私有(Private)指令。最基本的公用指令有:BYPASS旁路片上系統(tǒng)邏輯指令,用于未被測試的芯片,即把TDI與TDO旁路(1個時鐘延遲)。EXTEST片外電路測試指令,用于測試電路板上芯片之間的互連。如圖4—11中的引腳狀態(tài)被捕獲在captureDR;并在shiftDR狀態(tài)時,通過TDO引腳把寄存器中數(shù)據(jù)移出,同時新的數(shù)據(jù)通過TDI引腳移入,該數(shù)據(jù)在更新updateDR狀態(tài)中用于邊界掃描寄存器輸出。IDCODE讀芯片ID碼指令,用于識別電路板上的芯片。此時,ID寄存器在TDI與TDO引腳之間,在captureDR狀態(tài)中,芯片的ID復制至ID寄存器,然后在shiftDR狀態(tài)中移出。INTEST片內(nèi)測試指令,邊界掃描寄存器位于TDI與TDO引腳之間,處理器核邏輯輸入和輸出狀態(tài)被邊界掃描寄存器捕獲和控制。以上是ARM架構(gòu)最基本的公用指令,各種處理器核可以根據(jù)需要進行擴展。33(4)JTAG接口控制指令控制指令用于控制JTAG接口2.1.3ARM處理器內(nèi)核ARM體系結(jié)構(gòu)的處理器內(nèi)核有ARM7TDMI、ARM8、ARM9TDMI、ARM10TDMI及ARM11TDMI等。ARM7TDMI處理器內(nèi)核ARM7TDMI處理器是ARM7處理器系列成員之一,是目前應用很廣的32位高性能嵌入式RISC處理器。TDMI后綴的含義:T 具有16位壓縮指令集Thumb;D 支持在片調(diào)試(Debug),允許處理器響應調(diào)試請求暫停;M 增強型乘法器(Multiplier),比以前處理器性能更高,產(chǎn)生全64位結(jié)果;I 提供嵌入式ICE硬件,支持片上斷點調(diào)試。ARM7處理器核采用了3級流水線結(jié)構(gòu),指令執(zhí)行分為取指、譯碼和執(zhí)行等3個階段。ARM7TDMI的體系結(jié)構(gòu)圖如圖4—12所示。342.1.3ARM處理器內(nèi)核ARM體系結(jié)構(gòu)的處理器內(nèi)核有A113個掃描單元:包括ARM核所有I/O引腳、地址數(shù)據(jù)總線引腳和輸入輸出控制引腳。33個掃描單元:數(shù)據(jù)總線[D31:D0]和一個端點控制信號38個掃描單元:通過控制ICE宏單元,實現(xiàn)對ARM執(zhí)行指令的斷點、觀察點的控制。35113個掃描單元:33個掃描單元:38個掃描單元:35ARM7TDMI內(nèi)核的JTAG掃描鏈結(jié)構(gòu)(主要包括3條掃描鏈)ScanChain0:有113個掃描單元,包括ARM核的所有I/O,地址數(shù)據(jù)總線和輸入輸出控制信號.這條鏈上的信號復雜,不易控制,但是,包含的信息豐富,可以通過這條鏈得到ARM7TDMI所有的內(nèi)核信息。36ARM7TDMI內(nèi)核的JTAG掃描鏈結(jié)構(gòu)(主要包括3條掃描鏈ScanChain1:有33個掃描單元,包括ARM核的數(shù)據(jù)總線和一個斷點控制信號。這是一條很有用的鏈,通過控制這條鏈,可以控制ARM核執(zhí)行指定的指令,從而實現(xiàn)對ARM的內(nèi)部寄存器,協(xié)處理器以及外部存儲器的讀寫操作。ScanChain2:有38個掃描單元,通過控制EmbeddedICE宏單元,實現(xiàn)對ARM執(zhí)行指令的斷點、觀察點控制。EmbeddedICE是集成在ARM內(nèi)核的中的嵌入式ICE防真器。通過對EmbeddedICE的控制,對EmbeddedICE中寄存器的讀取,可以獲得ARM內(nèi)核的狀態(tài),為程序設置斷點或讀取Debug通信通道。37ScanChain1:有33個掃描單元,包括ARM核的數(shù)據(jù)2.2.1數(shù)據(jù)類型ARM處理器支持下列數(shù)據(jù)類型:Byte 字節(jié),8位;(A31……A0)32位地址均有效.Halfword半字,16位(半字必須與2字節(jié)邊界對準)(A31……A1,0)偶數(shù)地址,A0為0;Word 字,32位(字必須與4字節(jié)邊界對準)。(A31……A2,0,0)地址是4的倍數(shù),A1,A0均為0.2.2ARM編程模型圖4—18ARM數(shù)據(jù)類型存儲圖見ARM的存儲結(jié)構(gòu)382.2.1數(shù)據(jù)類型2.2ARM編程模型圖4—18ARM體系結(jié)構(gòu)支持表4—3所列的7種處理器模式。表4—3處理器模式處理器模式說明用戶user正常程序執(zhí)行模式FIOfiq支持高速數(shù)據(jù)傳送或通道處理IRQirq用于通用中斷處理管理svc操作系統(tǒng)保護模式系統(tǒng)復位后的缺省模式中止abt實現(xiàn)虛擬存儲器和/或存儲器保護未定義und支持硬件協(xié)處理器的軟件仿真系統(tǒng)sys運行特權(quán)操作系統(tǒng)任務2.2.2處理器模式異常模式特權(quán)模式39ARM體系結(jié)構(gòu)支持表4—3所列的7種處理器模式。表4—3模式的改變在軟件控制下可以改變模式;外部中斷或異常處理也可以引起模式發(fā)生改變。大多數(shù)應用程序在用戶模式下執(zhí)行。當處理器工作在用戶模式時,正在執(zhí)行的程序不能訪問某些被保護的系統(tǒng)資源;用戶模式下不能改變模式,除非異常(Exception)發(fā)生。這允許操作系統(tǒng)來控制系統(tǒng)資源的使用。除用戶模式外的其他6種模式稱為特權(quán)模式。特權(quán)模式服務于中斷或異常;特權(quán)模式可以訪問被保護的資源;特權(quán)模式下可以改變模式。關(guān)于模式的說明:40模式的改變關(guān)于模式的說明:40系統(tǒng)模式。不能由任何其他模式進入該模式;它與用戶模式擁有完全相同的寄存器。然而它是特權(quán)模式,不受用戶模式的限制。它供需要訪問系統(tǒng)資源的操作系統(tǒng)任務使用,但希望避免使用與異常模式有關(guān)的附加寄存器。避免使用附加寄存器保證了當任何異常出現(xiàn)時,都不會使任務的狀態(tài)不可靠。除用戶模式和系統(tǒng)模式之外的5種模式稱作異常模式。當特定的異常出現(xiàn)時,進入相應的模式。每種模式都有某些附加的寄存器,以避免異常出現(xiàn)時用戶模式的狀態(tài)不可靠。41系統(tǒng)模式。412.2.3處理器工作狀態(tài)ARM處理器有兩種工作狀態(tài):ARM:這種狀態(tài)下執(zhí)行32位字對準的ARM指令;取指時程序計數(shù)器的PC.1和PC.0均為0Thumb:這種狀態(tài)下執(zhí)行半字對準的16位Thumb指令。取指時程序計數(shù)器的PC.0為0,而使用PC.1位選擇另一個半字。ARM處理器可以在兩種工作狀態(tài)之間切換。ARM和Thumb之間狀態(tài)的切換不影響處理器的模式或寄存器的內(nèi)容。422.2.3處理器工作狀態(tài)ARM處理器有兩種工作狀態(tài):42ARM處理器在ARM和Thumb兩種工作狀態(tài)之間切換的方法:① 進入Thumb狀態(tài)。當操作數(shù)寄存器的狀態(tài)位(位[0])為1時,執(zhí)行BX指令進入Thumb狀態(tài)。如果處理器在Thumb狀態(tài)進入異常,則當異常處理(IRQ、FIQ、Undef、Abort和SWI)返回時,自動轉(zhuǎn)換到Thumb狀態(tài)。② 進入ARM狀態(tài)。當操作數(shù)寄存器的狀態(tài)位(位[0])為0時,執(zhí)行BX指令進入ARM狀態(tài)。處理器進行異常處理(IRQ、FIQ、Reset、Undef、Abort和SWI)時,把PC放入異常模式鏈接寄存器中,從異常向量地址開始執(zhí)行也可以進入ARM狀態(tài)。43ARM處理器在ARM和Thumb兩種工作狀態(tài)之間切換的方法:ARM處理器總共有37個寄存器:31個通用寄存器,包括程序計數(shù)器PC。這些寄存器是32位的。6個狀態(tài)寄存器。這些寄存器也是32位的,但只使用了其中的12位。37個寄存器不能被同時看到,處理器狀態(tài)和工作模式?jīng)Q定哪些寄存器編程者可見。2.2.4寄存器組織44ARM處理器總共有37個寄存器: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)模式使用的一般寄存器已被異常模式特定的另一寄存器所替代45SPSR_fiqSPSR_irqSPSR_undSPSR_a1.通用寄存器通用寄存器(R0~R15)可分成3類:(1)不分組寄存器R0~R7R0~R7是不分組寄存器,在所有的處理器模式下,它們每一個都訪問同樣的32位物理寄存器。它們是真正的通用寄存器,沒有體系結(jié)構(gòu)所隱含的特殊用途。(2)分組寄存器R8~R14R8~R14是分組寄存器。它們每一個訪問的物理寄存器取決于當前的處理器模式。每種處理器模式有專用的分組寄存器用于快速異常處理。若要訪問特定的物理寄存器而不依賴于當前的處理器模式,則要使用規(guī)定的名字。461.通用寄存器通用寄存器(R0~R15)可分成3類:46寄存器R8~R12各有兩組物理寄存器。一組為FIQ模式,另一組為除FIQ以外的其他模式。第1組訪問R8_fiq~R12_fiq,第二組訪問R8_usr~R12_usr。獨立的FIQ模式允許快速中斷處理。寄存器R13、R14各有6個分組的物理寄存器。1個用于用戶模式和系統(tǒng)模式,而其他5個分別用于5種異常模式。訪問時需要指定其模式名。名字形式如下:R13_<mode>R14_<mode>其中,<mode>可以從usr、svc、abt、und、irq和fiq6種模式中選取一個。

47寄存器R8~R12各有兩組物理寄存器。一組為FIQ模式,另一寄存器R13通常用作堆棧指針,稱作SP。每種異常模式都有自己的分組R13。通常R13應當被初始化成指向異常模式分配的堆棧。在異常處理程序的入口將用到的其他寄存器的值保存到堆棧中。返回時,重新將這些值加載到寄存器。這種異常處理方法保證了異常出現(xiàn)后不會導致執(zhí)行程序的狀態(tài)不可靠。48寄存器R13通常用作堆棧指針,稱作SP。48寄存器R14用作子程序鏈接寄存器,也稱為鏈接寄存器LR(LinkRegister)。當執(zhí)行帶鏈接轉(zhuǎn)移(BL)指令時,R14得到R15的拷貝。在其他情況下,將R14當做通用寄存器。類似地,當中斷或異常出現(xiàn)時,或中斷或異常程序執(zhí)行BL指令時,相應的分組寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用來保存R15的返回值。49寄存器R14用作子程序鏈接寄存器,也稱為鏈接寄存器LR(Li應用提示:FIQ模式有7個分組的寄存器R8~R14映射為R8_fiq~R14_fiq。在ARM狀態(tài)下,F(xiàn)IQ處理中使用R8~R14沒必要保存。User、IRQ、Supervisor、Abort和Undefined模式每一種都包含兩個分組的寄存器R13和R14的映射,允許每種模式都有自己的堆棧和鏈接寄存器。50應用提示:50(3)程序計數(shù)器R15寄存器R15用作程序計數(shù)器PC。在ARM狀態(tài),位[1:0]為0,位[31:2]保存PC。在Thumb狀態(tài)下,位[0]為0,位[31:1]保存PC。程序計數(shù)器用于特殊場合。① 讀程序計數(shù)器。指令讀出的R15的值是指令地址加上8個字節(jié)。由于ARM指令始終是字對準的,所以讀出結(jié)果值的位[1:0]總是0(在Thumb狀態(tài)下,情況有所變化)。讀PC主要用于快速地對臨近的指令和數(shù)據(jù)進行位置無關(guān)尋址,包括程序中的位置無關(guān)轉(zhuǎn)移。②

寫程序計數(shù)器。寫R15的通常結(jié)果是將寫到R15中的值作為指令地址,并以此地址發(fā)生轉(zhuǎn)移。由于ARM指令要求字對準,通常希望寫到R15中值的位[1:0]=0b00。51(3)程序計數(shù)器R15512.程序狀態(tài)寄存器在所有處理器模式下都可以訪問當前程序狀態(tài)寄存器CPSR(CurrentProgramStatusRegister)。CPSR包含條件碼標志、中斷禁止位、當前處理器模式以及其他狀態(tài)和控制信息。每種異常模式都有一個程序狀態(tài)保存寄存器SPSR(SavedProgramStatusRegister)。當異常出現(xiàn)時,SPSR用于保存CPSR的狀態(tài)。CPSR和SPSR的格式如下:M0M1M2M3M4TFIDNM(RAZ)VCZN31302928876543210條件碼狀態(tài)標志位中斷禁止控制位Thumb控制位模式控制位保留位,用做以后的擴展522.程序狀態(tài)寄存器M0M1M2M3M4TFIDNM(RAZ)(1)條件碼標志N、Z、C、V(Negative、Zero、Carry、overflow)位稱作條件碼標志(ConditionCodeFlag),經(jīng)常以標志(Flag)引用。CPSR中的條件碼標志可由大多數(shù)指令檢測以決定指令是否執(zhí)行。通常條件碼標志通過執(zhí)行下述指令進行修改比較指令(CMN、CMP、TEQ、TST)一些算術(shù)運算、邏輯運算和傳送指令,它們的目的寄存器不是R15。這些指令中大多數(shù)同時有標志保留變量和標志設置變量,后者通過在指令助記符后加上字符“S”來選定。加“S”表示進行標志設置。53(1)條件碼標志53(2)控制位程序狀態(tài)寄存器PSR(ProgramStatusRegister)的最低8位I、F、T和M[4:0]用作控制位。當異常出現(xiàn)時改變控制位。處理器在特權(quán)模式下時也可由軟件改變。中斷禁止位:I置1,則禁止IRQ中斷;F置1,則禁止FIQ中斷。T位:T=0,指示執(zhí)行ARM指令;T=l,指示執(zhí)行Thumb指令。模式位:MO、M1、M2、M3和M4(M[4:0])是模式位,這些位決定處理器的工作模式,如表4—4所列。54(2)控制位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模式位55M[4:0]模式可訪問的寄存器l0000用戶PC、R143.Thumb狀態(tài)的寄存器集Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下的寄存器集的子集。程序員可以直接訪問8個通用寄存器(R0~R7)、PC、SP、LR和CPSR。每一種特權(quán)模式都有一組SP、LR和SPSR。如下圖:563.Thumb狀態(tài)的寄存器集56Thumb狀態(tài)的R0~R7與ARM狀態(tài)的R0~R7是一致的。Thumb狀態(tài)的CPSR和SPSR與ARM狀態(tài)的CPSR和SPSR是一致的。Thumb狀態(tài)的SP映射到ARM狀態(tài)的R13。Thumb狀態(tài)的LR映射到ARM狀態(tài)的R14。Thumb狀態(tài)的PC映射到ARM狀態(tài)的PC(R15)。在Thumb狀態(tài)下,寄存器R8~R15(高寄存器)并不是標準寄存器集的一部分。匯編語言編程者能夠有限制地訪問它,可以將其用做快速暫存存儲器,可以將R0~R7(低寄存器)中寄存器的值傳送到R8~R15(高寄存器)57Thumb狀態(tài)的R0~R7與ARM狀態(tài)的R0~R7是一致的。58582.2.5異常異常由內(nèi)部或外部源產(chǎn)生并引起處理器處理一個事件,例如外部中斷或試圖執(zhí)行未定義指令都會引起異常。在處理異常之前,處理器狀態(tài)必須保留,以便在異常處理程序完成后,原來的程序能夠重新執(zhí)行。同一時刻可能出現(xiàn)多個異常。ARM支持7種類型的異常。異常出現(xiàn)后,強制從異常類型對應的固定存儲器地址開始執(zhí)行程序。這些固定的地址稱為異常向量(ExceptionVectors)。表4—5列出了異常的類型以及處理這些異常的處理器模式。592.2.5異常表4—5列出了異常的類型以及處理這些異異常類型模式正常地址高向量地址復位管理0x000000000xFFFF0000未定義指令未定義0x000000040xFFFF0004軟件中斷(SWl)管理0x000000080xFFFF0008預取中止(取指令存儲器中止)中止0x0000000C0xFFFF000C數(shù)據(jù)中止(數(shù)據(jù)訪問存儲器中止)中止0x000000100xFFFF0010IRQ(中斷)IRQ0x000000180xFFFF0018FIQ(快速中斷)FIQ0x000000lC0xFFFF001C表4—5異常處理模式60異常類型模式正常地址高向量地址復位管理0x0000000當異常出現(xiàn)時,異常模式分組的R14和SPSR用于保存狀態(tài)。R14保存程序計數(shù)器PC(R15);SPSR保存當前狀態(tài)寄存器CPSR;當處理異常返回時,把SPSR傳送到CPSR,R14傳送到PC。這可用兩種方法自動完成:使用帶“S”的數(shù)據(jù)處理指令,將PC作為目的寄存器;使用帶恢復CPSR的多加載指令。61當異常出現(xiàn)時,異常模式分組的R14和SPSR用于保存狀態(tài)。6關(guān)于異常的說明:① 復位。處理器上一旦有復位輸入,ARM處理器立刻停止執(zhí)行當前指令。復位后,ARM處理器在禁止中斷的管理模式下,從地址0x00000000或OxFFFF0000開始執(zhí)行指令。② 未定義指令異常。當ARM處理器執(zhí)行協(xié)處理器指令時,它必須等待任一外部協(xié)處理器應答后,才能真正執(zhí)行這條指令。若協(xié)處理器沒有響應,就會出現(xiàn)未定義指令異常。若試圖執(zhí)行未定義的指令,也會出現(xiàn)未定義指令異常。未定義指令異??捎糜谠跊]有物理協(xié)處理器(硬件)的系統(tǒng)上,對協(xié)處理器進行軟件仿真,或在軟件仿真時進行指令擴展。62關(guān)于異常的說明:62軟件中斷異常。 軟件中斷異常指令SWI(SoftWareInterrupt)進入管理模式,以請求特定的管理(操作系統(tǒng))函數(shù)。④ 預取中止異常(取指令存儲器中止)。存儲器系統(tǒng)發(fā)出存儲器中止(Abort)信號。響應取指激活的中止,標記所取的指令無效。若處理器試圖執(zhí)行無效指令,則產(chǎn)生預取中止異常。若指令未執(zhí)行(例如指令在流水線中發(fā)生了轉(zhuǎn)移),則不發(fā)生預取中止。63軟件中斷異常。63⑤ 數(shù)據(jù)中止異常(數(shù)據(jù)訪問存儲器中止)。存儲器系統(tǒng)發(fā)出存儲器中止信號。響應數(shù)據(jù)訪問(加載或存儲)激活中止,標記數(shù)據(jù)為無效。在后面的任何指令或異常改變CPU狀態(tài)之前,數(shù)據(jù)中止異常發(fā)生。⑥ 中斷請求(IRQ)異常。通過處理器上的IRQ輸入引腳,由外部產(chǎn)生IRQ異常。IRQ異常的優(yōu)先級比FIQ異常的低。當進入FIQ處理時,會屏蔽掉IRQ異常。⑦ 快速中斷請求(FIQ)異常。通過處理器上的FIQ輸入引腳,由外部產(chǎn)生FIQ異常。FIQ被設計成支持數(shù)據(jù)傳送和通道處理,并有足夠的私有寄存器,從而在這樣的應用中可避免對寄存器保存的需求,減少了上下文切換的總開銷。64⑤ 數(shù)據(jù)中止異常(數(shù)據(jù)訪問存儲器中止)。存儲器系統(tǒng)發(fā)出存儲器表4—6異常優(yōu)先級優(yōu)先級異常1(最高)復位2數(shù)據(jù)中止3FIQ4IRQ5指令預取中止6(最低)未定義指令、SWI異常的優(yōu)先級:65表4—6異常優(yōu)先級優(yōu)先級異常1(最高)復位2數(shù)據(jù)中止2.2.6存儲器和存儲器映射I/0ARM體系結(jié)構(gòu)允許使用現(xiàn)有的存儲器和I/O器件進行各種各樣的存儲器系統(tǒng)設計。1.地址空間ARM體系結(jié)構(gòu)使用232個8位字節(jié)的單一、線性地址空間。將字節(jié)地址作為無符號數(shù)看待,范圍為0~232—1。將地址空間看作由230個32位的字組成。每個字的地址是字對準的,故地址可被4整除。字對準地址是A的字由地址為A、A+1、A+2和A+3的4個字節(jié)組成。地址空間也看作由231個16位的半字組成,每個半字的地址是半字對準的,故地址可被2整除。半字對準地址是A的半字由地址為A和A+1的2個字節(jié)組成。662.2.6存儲器和存儲器映射I/066地址計算通常由普通的整數(shù)指令完成。這意味著若計算的地址在地址空間中上溢或下溢,通常就會環(huán)繞,計算結(jié)果縮減模232。然而,為了減少以后地址空間擴展的不兼容,程序應該編寫成使地址的計算結(jié)果位于0~232—1的范圍內(nèi)。大多數(shù)轉(zhuǎn)移指令通過把指令指定的偏移量加到PC的值上來計算目的地址,然后把結(jié)果寫回到PC。計算公式如下: 目的地址=當前指令的地址+8+偏移量 如果計算結(jié)果在地址空間中上溢或下溢,則指令因地址環(huán)繞從而是不可預知的。因此,向前轉(zhuǎn)移不應當超出地址0xFFFFFFFF,向后轉(zhuǎn)移不應當超出地址Ox00000000。每條指令執(zhí)行之后,根椐指令正常的順序執(zhí)行,則: 目的地址=當前指令的地址+4 若計算從地址空間的頂部溢出,那么從技術(shù)上講,結(jié)果是不可預知的。換句話說,程序在執(zhí)行完地址OxFFFFFFFC的指令后,不應當依據(jù)順序執(zhí)行來執(zhí)行地址Ox00000000的指令。67地址計算通常由普通的整數(shù)指令完成。這意味著若計算的地址在地址2.存儲器格式對于字對準的地址A,地址空間規(guī)則要求:地址位于A的字由地址為A、A+1、A+2和A+3的字節(jié)組成;地址位于A的半字由地址為A和A+1的字節(jié)組成;地址位于A+2的半字由地址為A+2和A+3的字節(jié)組成;地址位于A的字由地址為A和A+2的半字組成。682.存儲器格式68存儲系統(tǒng)使用兩種映射方法:小端對齊方式存儲系統(tǒng)(低字節(jié)在前高字節(jié)在后):字對準地址中的字節(jié)或半字是該地址中字的最低有效字節(jié)或半字;半字對準地址中的字節(jié)是該地址中的半字的最低有效字節(jié)。地址A+1的字節(jié)地址A+2的字節(jié)地址A的字節(jié)地址A的半字地址A+2的半字地址A的字3124231615870地址A+3的字節(jié)小端對齊方式存儲系統(tǒng)69存儲系統(tǒng)使用兩種映射方法:地址A+1的字節(jié)地址A+2的字節(jié)地大端對齊方式存儲系統(tǒng)(高字節(jié)在前低字節(jié)在后)

:字對準地址中的字節(jié)或半字是該地址中字的最高有效字節(jié)或半字;半字對準地址中的字節(jié)是該地址中的半字的最高有效字節(jié)。對于字對準地址A,圖4-22表明了地址A中的字,地址A和地址A+2中的半字,以及地址A、A+1、A+2和A+3中的字節(jié)在每種存儲系統(tǒng)中是如何互相映射的。地址A+2的字節(jié)地址A+1的字節(jié)地址A+3的字節(jié)地址A+2的半字地址A的半字地址A的字3124231615870地址A的字節(jié)大端對齊方式存儲系統(tǒng)70大端對齊方式存儲系統(tǒng)(高字節(jié)在前低字節(jié)在后):地址A+2的3.非對準的存儲器訪問問題ARM體系結(jié)構(gòu)通常希望所有的存儲器訪問能適當?shù)貙?。用于字訪問的地址通常應當字對準;用于半字訪問的地址通常應當半字對準;未按上述方式對準的存儲器訪問稱作非對準的存儲器訪問。若在ARM態(tài)執(zhí)行期間,將沒有字對準的地址寫到PC(R15)中,那么結(jié)果地址的位[1:0]被忽略。若在Thumb態(tài)執(zhí)行期間,將沒有半字對準的地址寫到PC(R15)中,則地址的位[0]通常忽略。當執(zhí)行無效代碼時,從R15讀值的結(jié)果對ARM狀態(tài)執(zhí)行來說總是位[1:0]為0,對Thumb狀態(tài)執(zhí)行來說總是位[0]為0。713.非對準的存儲器訪問問題714.存儲器映射I/OARM系統(tǒng)的輸入輸出空間與存儲器空間統(tǒng)一編址;完成I/O功能的標準方法是使用存儲器地址映射I/O地址。從存儲器映射I/O地址加載(讀入)用于輸入。向存儲器映射I/O地址存儲用于輸出。思考題:

分析比較8086CPU、8051CPU、和ARM在程序空間、數(shù)據(jù)空間和輸入/輸出空間結(jié)構(gòu)上的異同點?724.存儲器映射I/O思考題: 分析比較8086CPU、805第2章ARM體系結(jié)構(gòu)

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

75ARM處理器的3大特點是:傳統(tǒng)的CISC指令集計算機隨著計算RISC指令集和相關(guān)的譯碼機制比復雜指令集計算機(CISC)的設計更簡單。這種簡單性得到了:高指令吞吐率;出色的實時中斷響應;體積小、性價比高的處理器宏單元。16位Thumb指令集,允許軟件16位編碼使占用的存儲器空間節(jié)省高達35%,然而保留了32位系統(tǒng)所有的優(yōu)勢。76RISC指令集和相關(guān)的譯碼機制比復雜指令集計算機(CISC)ARM還提供了兩個前沿特性——嵌入式ICE—RT邏輯和嵌入式跟蹤宏核系列,用于輔助嵌入式處理器核的、高集成的SoC器件的調(diào)試。允許在代碼的任何部分——甚至在ROM中設置斷點。ARM當前有5個產(chǎn)品系列:ARM7、ARM9、ARM9E、ARM10和SecurCore。進一步的產(chǎn)品來自于合作伙伴,例如IntelXScale微體系結(jié)構(gòu)和StrongARM產(chǎn)品。77ARM還提供了兩個前沿特性——嵌入式ICE—RT邏輯和嵌入式1.ARM的RISC型處理器結(jié)構(gòu)中央控制器沒有采用微程序的方式。采用了硬接線PLA的方式。減少復雜功能的指令,選用使用頻度最高的指令;簡化處理器的結(jié)構(gòu),減少處理器的集成度;采用32位定長指令。除了單機器周期執(zhí)行1條指令外,每條指令具有多種操作功能,提高了指令使用效率。采用流水線結(jié)構(gòu),使每一條指令平均在一個機器周期內(nèi)完成,以提高處理器的速度。采用多寄存器的結(jié)構(gòu),使指令的操作盡可能在寄存器之間進行。采用Load/Store結(jié)構(gòu),即只有Load/Store(加載/存儲)指令可與存儲器打交道,減少訪問存儲器的頻度,節(jié)約指令執(zhí)行時間。為了進一步提高指令和數(shù)據(jù)的存/取速度,有的還增加指令快存I—Cache和數(shù)據(jù)快存D—Cache;781.ARM的RISC型處理器結(jié)構(gòu)中央控制器沒有采用微程序的方2.Thumb指令集新型ARM體系結(jié)構(gòu)在32位指令集的基礎上又定義了16位的Thumb指令集,可以使程序存儲器更小。Thumb指令集比通常的8位和16位CISC/RISC處理器具有更好的代碼密度,而芯片面積只增加6%。792.Thumb指令集新型ARM體系結(jié)構(gòu)在32位指令集的基礎上3.多處理器狀態(tài)模式ARM可以支持7種處理器模式:用戶模式快中斷模式中斷模式管理模式中止模式系統(tǒng)模式未定義模式除了用戶模式外,其余的均為特權(quán)模式。這是ARM的特色之一。多處理器模式可以大大提高ARM處理器的效率,并方便操作系統(tǒng)的設計。803.多處理器狀態(tài)模式ARM可以支持7種處理器模式:84.嵌入式在線仿真調(diào)試ARM體系結(jié)構(gòu)的處理器芯片都嵌入了在線仿真ICE—RT邏輯由于ICE—RT邏輯的支持,便于通過JTAG來仿真調(diào)試ARM體系結(jié)構(gòu)芯片,從而可以省去價格昂貴的在線仿真器。在處理器核中還集成了嵌入式跟蹤宏單元(ETM),ETM可以用于監(jiān)控內(nèi)部總線,實時跟蹤指令和數(shù)據(jù)的執(zhí)行。814.嵌入式在線仿真調(diào)試ARM體系結(jié)構(gòu)的處理器芯片都嵌入了在線5.靈活和方便的接口ARM體系結(jié)構(gòu)具有協(xié)處理器接口,這樣,既可以使基本的ARM處理器內(nèi)核盡可能小,又可以方便地擴充各種功能。ARM允許接16個協(xié)處理器。ARM處理器核具有片上總線AMBA(AdvancedMicrocontrollerBusArchitecture)。AMBA定義了3組總線:先進高性能總線AHB(AdvancedHighperformanceBus);先進系統(tǒng)總線ASB(AdvancedSystemBus);先進外圍總線APB(AdvancedPeripheralBus)。通過AMBA可以方便地擴充各種處理器及I/O,這樣,可以把DSP、其他處理器和I/O接口(如UART、定時器和接口等)都集成在一塊芯片中。825.靈活和方便的接口ARM體系結(jié)構(gòu)具有協(xié)處理器接口,這樣,既6、低電壓低功耗的設計由于ARM體系結(jié)構(gòu)的處理器主要用于手持式嵌入式系統(tǒng)之中,ARM體系結(jié)構(gòu)在設計中十分注意低功耗問題。CMOS電路的功耗關(guān)系: Pc=(1/2)·f·VDD2·∑Ag·CLg式中,f為時鐘頻率;VDD為工作電源電壓;Ag是邏輯門在1個時鐘周期內(nèi)翻轉(zhuǎn)的次數(shù)(通常為2);CLg為門的負載電容。因此,ARM體系結(jié)構(gòu)的設計采用了以下措施:降低電源電壓,可工作在3.0V以下。減少門的翻轉(zhuǎn)次數(shù),當某個功能電路不需要時,禁止門翻轉(zhuǎn)。減少門的數(shù)目,即降低芯片的集成度。降低時鐘頻率(但也會損失系統(tǒng)的性能)。836、低電壓低功耗的設計由于ARM體系結(jié)構(gòu)的處理器主要用于手持2.1.2ARM處理器結(jié)構(gòu)1.ARM體系結(jié)構(gòu)是ARM體系結(jié)構(gòu):32位ALU;31個32位通用寄存器6個狀態(tài)寄存器32×8位乘法器32×32位桶形移位寄存器指令譯碼及控制邏輯指令流水線數(shù)據(jù)/地址寄存器。 如圖4—1所示842.1.2ARM處理器結(jié)構(gòu)1.ARM體系結(jié)構(gòu)12FIG4-185FIG4-1132.ARM的流水線結(jié)構(gòu)計算機中的1條指令的執(zhí)行可以分若干個階段:①取指,從存儲器中取出指令(fetch);②譯碼,指令譯碼(dec);③取操作數(shù),假定從寄存器組中取操作數(shù)(reg);④執(zhí)行運算(ALU);⑤存儲器訪問,操作數(shù)與存儲器有關(guān)(mem);⑥結(jié)果寫回寄存器(res)。各個階段的操作相對都是獨立的。因此,采用流水線的重疊技術(shù)可以大大提高系統(tǒng)性能。862.ARM的流水線結(jié)構(gòu)計算機中的1條指令的執(zhí)行可以分若干個階ARM體系結(jié)構(gòu)的單周期3級流水線

圖4—5ARM單周期3級流水線取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行時間12387ARM體系結(jié)構(gòu)的單周期3級流水線圖4—5ARM單周期3.ARM存儲器結(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)還帶有存儲器管理單元MMU。圖4—8ARM外接RAM和ROM883.ARM存儲器結(jié)構(gòu)ARM架構(gòu)的處理器,有的帶有指令Cach圖4—8ARM外接RAM和ROMROMoeRAMoeRAMwe3RAMwe2RAMwe1RAMwe0A1、A0沒有接入片內(nèi)地址線,他們是確定RAMwe3~RAMwe0的依據(jù)。89圖4—8ARM外接RAM和ROMROMoeRAMoeRA4.ARMI/O結(jié)構(gòu)ARM架構(gòu)中的處理器核和處理器內(nèi)核一般都沒有I/O部件和模塊,ARM架構(gòu)處理器的I/O可通過AMBA(先進微控制總線架構(gòu))總線來擴充。ARM架構(gòu)中的I/O直接存儲器存取DMA中斷結(jié)構(gòu)。

904.ARMI/O結(jié)構(gòu)ARM架構(gòu)中的處理器核和處理器內(nèi)(1) 存儲器映射I/O一般的I/O(如串行接口)有若干個寄存器:發(fā)送數(shù)據(jù)寄存器(只寫);數(shù)據(jù)接收寄存器(只讀);控制寄存器、狀態(tài)寄存器(只讀);中斷允許寄存器; 等。這些寄存器都需要相應的I/O端口地址。ARM采用了存儲器映射I/O的方式,即把I/O端口地址作為特殊的存儲器地址。

91(1) 存儲器映射I/O19(2)直接存儲器存取DMAARM架構(gòu)的處理器一般都沒有DMA部件,只有在一些高檔的ARM架構(gòu)處理器中具有DMA的功能。

(3)中斷IRQ和快速中斷FIQ一般的ARM沒有DMA功能,為了能提高I/O處理能力,系統(tǒng)安排了快速中斷FIQ(FastInterrupt),而對普通I/O的中斷源仍安排了一般中斷IRQ。要提高中斷響應的速度,在設計中可以采用以下辦法:提供大量后備寄存器,在中斷響應及返回時,作為保護現(xiàn)場和恢復現(xiàn)場的上下文切換(ContextSwitching)之用。采用片內(nèi)RAM結(jié)構(gòu),這樣可以加速異常處理(包括中斷)的進入時間。Cache和地址變換后備緩沖器TLB(TranslationLookasideBuffer)采用鎖住(Lockeddown)方式以確保臨界代碼段不受“不命中”所產(chǎn)生的影響。92(2)直接存儲器存取DMAARM架構(gòu)的處理器一般都沒有D5.ARM協(xié)處理器接口ARM可以通過增加協(xié)處理器來支持一個通用的指令集的擴充;也可以通過未定義指令陷阱(Trap)來支持協(xié)處理器的軟件仿真。935.ARM協(xié)處理器接口ARM可以通過增加協(xié)處理器來支持一個通ARM可以擴展16個協(xié)處理器,每個協(xié)處理器可有16個寄存器。MMU和保護單元的系統(tǒng)控制都采用CPl5協(xié)處理器;JTAG調(diào)試中的協(xié)處理器為CPl4,即調(diào)試通信通道DCC(DebugCommunicationChannel)協(xié)處理器號功能15系統(tǒng)控制14調(diào)試控制器13~8保留7~4用戶3~0保留94ARM可以擴展16個協(xié)處理器,每個協(xié)處理器可有16個寄存器。6.ARM的AMBA接口ARM處理器內(nèi)核可通過內(nèi)部總線擴充Cache等部件,或通過協(xié)處理器接口擴充各種協(xié)處理器;也可以通過先進微控制器總線架構(gòu)AMBA(AdvancedMicrocontrollerBusArehitecture)來擴展不同體系架構(gòu)的宏單元及I/O部件。AMBA事實上已成為片上總線OCB(OnChipBus)標準。AMBA有如下3類總線:先進高性能總線AHB(AdvancedHigh-performanceBus);先進系統(tǒng)總線ASB(AdvancedSystemBus)先進外圍總線APB(AdvancedPeripheralBus)。 AMBA結(jié)構(gòu)如圖4—9所示。956.ARM的AMBA接口ARM處理器內(nèi)核可通過內(nèi)部總線96247.ARM的JTAG調(diào)試接口JTAG的基本知識什么是JTAG? JTAG是JointTestActionGroup的縮寫,基于IEEE1149.1標準。使用JTAG的優(yōu)點JTAG的建立使得集成電路固定在PCB上,只通過邊掃描便可以通過測試。在ARM7TDMI處理器中,可以通過JTAG直接控制ARM的內(nèi)部總線,I/O口等信息,從而達到調(diào)試的目的。977.ARM的JTAG調(diào)試接口JTAG的基本知識25JTAG調(diào)試接口的結(jié)構(gòu)如圖4—10所示。測試訪問端口TAP(TestAccessPort)控制器;旁路(Bypass)寄存器;指令寄存器;數(shù)據(jù)寄存器;與JTAG接口兼容的ARM架構(gòu)處理器。98JTAG調(diào)試接口的結(jié)構(gòu)如圖4—10所示。26處理器的每個引腳都有一個移位寄存單元,稱為邊界掃描單元BSC(BoundaryScanCell):BSC將JTAG電路與處理器核邏輯電路聯(lián)系起來,同時,隔離了處理器核邏輯電路與芯片引腳;所有邊界掃描單元的串聯(lián)構(gòu)成了邊界掃描寄存器BSR;BSR寄存器電路僅在進行JTAG測試時有效,在處理器核正常工作時無效(直通)。99處理器的每個引腳都有一個移位寄存單元,稱為邊界掃描單元BSC芯核邏輯BSCBSCBSCBSCBSCBSC100芯核邏輯BSCBSCBSCBSCBSCBSC28

(1)JTAG的控制寄存器測試訪問端口TAP控制器:對嵌入在ARM處理器核內(nèi)部的測試功能電路進行訪問控制,它是一個同步狀態(tài)機。通過測試模式選擇TMS和時鐘信號TCK來控制狀態(tài)的轉(zhuǎn)換,實現(xiàn)IEEEll49.1標準所確定的測試邏輯電路的工作時序。指令寄存器:它是串行移位寄存器,通過它可以串行輸入執(zhí)行各種操作指令。數(shù)據(jù)寄存器組:它是一組串行移位寄存器。操作指令被串行裝入由當前指令所選擇的數(shù)據(jù)寄存器,隨著操作的進行,測試結(jié)果被串行移出。其中:器件ID寄存器:讀出在芯片內(nèi)固化的ID號。旁路寄存器:1位移位寄存器,用1個時鐘的延遲把TDI連至TDO,使測試者在同一電路板測試循環(huán)內(nèi)訪問其他器件。邊界掃描寄存器(掃描鏈):截取ARM處理器核與芯片引腳之間所有信號,組成專用的寄存器鏈。101(1)JTAG的控制寄存器測試訪問端口TAP控制器:

(2)JTAG測試信號TRST 測試復位輸入信號,測試接口初始化。TCK 測試時鐘,在TCK時鐘的同步作用下,通過TDI和TDO引腳串行移入/移出數(shù)據(jù)或指令,同時也為測試訪問端口TAP控制器的狀態(tài)機提供時鐘。TMS 測試模式選擇信號,在TCK同步下控制測試接口狀態(tài)機的操作。TDI 測試數(shù)據(jù)輸入線,其串行輸入數(shù)據(jù)送至邊界掃描寄存器或指令寄存器(由TAP控制器的當前狀態(tài)及已保存在指令寄存器中的指令來控制)。TDO 測試數(shù)據(jù)輸出線,把從邊界掃描鏈采樣的數(shù)據(jù)傳播至串行測試電路中的下一個芯片JTAG可以對同一塊電路板上多塊芯片進行測試。連接方法如下:TRST、TCK和TMS信號并行接至各個芯片;前1塊芯片的TDO接至下1塊芯片的TDI。102(2)JTAG測試信號TRST 測試復位輸入信號,(3)TAP狀態(tài)機測試訪問端口TAP控制器是一個16狀態(tài)的有限狀態(tài)機,為JTAG提供控制邏輯,控制進入JTAG結(jié)構(gòu)中各種寄存器內(nèi)數(shù)據(jù)的掃描與操作。狀態(tài)轉(zhuǎn)移圖如圖4—11所示,在TCK同步時鐘上升沿的TMS引腳的邏輯電壓決定狀態(tài)轉(zhuǎn)移的過程。任一狀態(tài)下,讓TMS=1可以經(jīng)5個TCK回到復位狀態(tài)。由TDI引腳輸入到器件的掃描信號有2個狀態(tài)變化路徑:用于指令移入至指令寄存器,或用于數(shù)據(jù)移入至相應的數(shù)據(jù)寄存器(該數(shù)據(jù)寄存器由當前指令確定)。狀態(tài)圖中的每個狀態(tài)都是TAP控制器進行數(shù)據(jù)處理所需要的,這些處理包括向引腳施加激勵信號、捕獲輸入數(shù)據(jù)、加載指令以及將邊界掃描寄存器中數(shù)據(jù)移入/移出103(3)TAP狀態(tài)機測試訪問端口TAP控制器是一個16狀狀態(tài)轉(zhuǎn)換發(fā)生在TCK同步時鐘脈沖的上升沿104狀態(tài)轉(zhuǎn)換發(fā)生在TCK同步時鐘脈沖的上升沿32(4)JTAG接口控制指令控制指令用于控制JTAG接口各種操作,包括公用(Public)指令和私有(Private)指令。最基本的公用指令有:BYPASS旁路片上系統(tǒng)邏輯指令,用于未被測試的芯片,即把TDI與TDO旁路(1個時鐘延遲)。EXTEST片外電路測試指令,用于測試電路板上芯片之間的互連。如圖4—11中的引腳狀態(tài)被捕獲在captureDR;并在shiftDR狀態(tài)時,通過TDO引腳把寄存器中數(shù)據(jù)移出,同時新的數(shù)據(jù)通過TDI引腳移入,該數(shù)據(jù)在更新updateDR狀態(tài)中用于邊界掃描寄存器輸出。IDCODE讀芯片ID碼指令,用于識別電路板上的芯片。此時,ID寄存器在TDI與TDO引腳之間,在captureDR狀態(tài)中,芯片的ID復制至ID寄存器,然后在shiftDR狀態(tài)中移出。INTEST片內(nèi)測試指令,邊界掃描寄存器位于TDI與TDO引腳之間,處理器核邏輯輸入和輸出狀態(tài)被邊界掃描寄存器捕獲和控制。以上是ARM架構(gòu)最基本的公用指令,各種處理器核可以根據(jù)需要進行擴展。105(4)JTAG接口控制指令控制指令用于控制JTAG接口2.1.3ARM處理器內(nèi)核ARM體系結(jié)構(gòu)的處理器內(nèi)核有ARM7TDMI、ARM8、ARM9TDMI、ARM10TDMI及ARM11TDMI等。ARM7TDMI處理器內(nèi)核ARM7TDMI處理器是ARM7處理器系列成員之一,是目前應用很廣的32位高性能嵌入式RISC處理器。TDMI后綴的含義:T 具有16位壓縮指令集Thumb;D 支持在片調(diào)試(Debug),允許處理器響應調(diào)試請求暫停;M 增強型乘法器(Multiplier),比以前處理器性能更高,產(chǎn)生全64位結(jié)果;I 提供嵌入式ICE硬件,支持片上斷點調(diào)試。ARM7處理器核采用了3級流水線結(jié)構(gòu),指令執(zhí)行分為取指、譯碼和執(zhí)行等3個階段。ARM7TDMI的體系結(jié)構(gòu)圖如圖4—12所示。1062.1.3ARM處理器內(nèi)核ARM體系結(jié)構(gòu)的處理器內(nèi)核有A113個掃描單元:包括ARM核所有I/O引腳、地址數(shù)據(jù)總線引腳和輸入輸出控制引腳。33個掃描單元:數(shù)據(jù)總線[D31:D0]和一個端點控制信號38個掃描單元:通過控制ICE宏單元,實現(xiàn)對ARM執(zhí)行指令的斷點、觀察點的控制。107113個掃描單元:33個掃描單元:38個掃描單元:35ARM7TDMI內(nèi)核的JTAG掃描鏈結(jié)構(gòu)(主要包括3條掃描鏈)ScanChain0:有113個掃描單元,包括ARM核的所有I/O,地址數(shù)據(jù)總線和輸入輸出控制信號.這條鏈上的信號復雜,不易控制,但是,包含的信息豐富,可以通過這條鏈得到ARM7TDMI所有的內(nèi)核信息。108ARM7TDMI內(nèi)核的JTAG掃描鏈結(jié)構(gòu)(主要包括3條掃描鏈ScanChain1:有33個掃描單元,包括ARM核的數(shù)據(jù)總線和一個斷點控制信號。這是一條很有用的鏈,通過控制這條鏈,可以控制ARM核執(zhí)行指定的指令,從而實現(xiàn)對ARM的內(nèi)部寄存器,協(xié)處理器以及外部存儲器的讀寫操作。ScanChain2:有38個掃描單元,通過控制EmbeddedICE宏單元,實現(xiàn)對ARM執(zhí)行指令的斷點、觀察點控制。EmbeddedICE是集成在ARM內(nèi)核的中的嵌入式ICE防真器。通過對EmbeddedICE的控制,對EmbeddedICE中寄存器的讀取,可以獲得ARM內(nèi)核的狀態(tài),為程序設置斷點或讀取Debug通信通道。109ScanChain1:有33個掃描單元,包括ARM核的數(shù)據(jù)2.2.1數(shù)據(jù)類型ARM處理器支持下列數(shù)據(jù)類型:Byte 字節(jié),8位;(A31……A0)32位地址均有效.Halfword半字,16位(半字必須與2字節(jié)邊界對準)(A31……A1,0)偶數(shù)地址,A0為0;Word 字,32位(字必須與4字節(jié)邊界對準)。(A31……A2,0,0)地址是4的倍數(shù),A1,A0均為0.2.2ARM編程模型圖4—18ARM數(shù)據(jù)類型存儲圖見ARM的存儲結(jié)構(gòu)1102.2.1數(shù)據(jù)類型2.2ARM編程模型圖4—18ARM體系結(jié)構(gòu)支持表4—3所列的7種處理器模式。表4—3處理器模式處理器模式說明用戶user正常程序執(zhí)行模式FIOfiq支持高速數(shù)據(jù)傳送或通道處理IRQirq用于通用中斷處理管理svc操作系統(tǒng)保護模式系統(tǒng)復位后的缺省模式中止abt實現(xiàn)虛擬存儲器和/或存儲器保護未定義und支持硬件協(xié)處理器的軟件仿真系統(tǒng)sys運行特權(quán)操作系統(tǒng)任務2.2.2處理器模式異常模式特權(quán)模式111ARM體系結(jié)構(gòu)支持表4—3所列的7種處理器模式。表4—3模式的改變在軟件控制下可以改變模式;外部中斷或異常處理也可以引起模式發(fā)生改變。大多數(shù)應用程序在用戶模式下執(zhí)行。當處理器工作在用戶模式時,正在執(zhí)行的程序不能訪問某些被保護的系統(tǒng)資源;用戶模式下不能改變模式,除非異常(Exception)發(fā)生。這允許操作系統(tǒng)來控制系統(tǒng)資源的使用。除用戶模式外的其他6種模式稱為特權(quán)模式。特權(quán)模式服務于中斷或異常;特權(quán)模式可以訪問被保護的資源;特權(quán)模式下可以改變模式。關(guān)于模式的說明:112模式的改變關(guān)于模式的說明:40系統(tǒng)模式。不能由任何其他模式進入該模式;它與用戶模式擁有完全相同的寄存器。然而它是特權(quán)模式,不受用戶模式的限制。它供需要訪問系統(tǒng)資源的操作系統(tǒng)任務使用,但希望避免使用與異常模式有關(guān)的附加寄存器。避免使用附加寄存器保證了當任何異常出現(xiàn)時,都不會使任務的狀態(tài)不可靠。除用戶模式和系統(tǒng)模式之外的5種模式稱作異常模式。當特定的異常出現(xiàn)時,進入相應的模式。每種模式都有某些附加的寄存器,以避免異常出現(xiàn)時用戶模式的狀態(tài)不可靠。113系統(tǒng)模式。412.2.3處理器工作狀態(tài)ARM處理器有兩種工作狀態(tài):ARM:這種狀態(tài)下執(zhí)行32位字對準的ARM指令;取指時程序計數(shù)器的PC.1和PC.0均為0Thumb:這種狀態(tài)下執(zhí)行半字對準的16位Thumb指令。取指時程序計數(shù)器的PC.0為0,而使用PC.1位選擇另一個半字。ARM處理器可以在兩種工作狀態(tài)之間切換。ARM和Thumb之間狀態(tài)的切換不影響處理器的模式或寄存器的內(nèi)容。1142.2.3處理器工作狀態(tài)ARM處理器有兩種工作狀態(tài):42ARM處理器在ARM和Thumb兩種工作狀態(tài)之間切換的方法:① 進入Thumb狀態(tài)。當操作數(shù)寄存器的狀態(tài)位(位[0])為1時,執(zhí)行BX指令進入Thumb狀態(tài)。如果處理器在Thumb狀態(tài)進入異常,則當異常處理(IRQ、FIQ、Undef、Abort和SWI)返回時,自動轉(zhuǎn)換到Thumb狀態(tài)。② 進入ARM狀態(tài)。當操作數(shù)寄存器的狀態(tài)位(位[0])為0時,執(zhí)行BX指令進入ARM狀態(tài)。處理器進行異常處理(IRQ、FIQ、Reset、Undef、Abort和SWI)時,把PC放入異常模式鏈接寄存器中,從異常向量地址開始執(zhí)行也可以進入ARM狀態(tài)。115ARM處理器在ARM和Th

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論