嵌入式系統(tǒng)講義-第2章_第1頁
嵌入式系統(tǒng)講義-第2章_第2頁
嵌入式系統(tǒng)講義-第2章_第3頁
嵌入式系統(tǒng)講義-第2章_第4頁
嵌入式系統(tǒng)講義-第2章_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章ARM體系結(jié)構(gòu)1嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第1頁!ARM:AdvancedRISCMachine1、CISC體系結(jié)構(gòu)(ComplexInstructionSetComputer復(fù)雜指令集計算機)傳統(tǒng)計算機性能的提高體現(xiàn)在兩個方面:提高集成度(增加芯片的晶體管數(shù)量);增加指令集的復(fù)雜程度。帶來的問題:指令越來越多,越來越長,從1字節(jié)發(fā)展到近30字節(jié)。實現(xiàn)復(fù)雜指令占用了大量的芯片面積和容量。20%與80%的問題

20%的簡單指令使用率占80%,而80%的復(fù)雜指令使用率只占20%復(fù)雜指令影響VLSI處理器的實現(xiàn)指令長度不一致,復(fù)雜指令的存在使控制邏輯的設(shè)計實現(xiàn)不規(guī)整,執(zhí)行速度無法提高,實現(xiàn)高性能VLSI芯片很困難。軟硬件設(shè)計的抵消問題

增加的指令降低軟件復(fù)雜度,但使用復(fù)雜指令執(zhí)行時間長,程序總體執(zhí)行時間未必減少。2.1ARM體系結(jié)構(gòu)簡介2嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第2頁!2、RISC體系結(jié)構(gòu)(ReducedInstructionSetComputer精簡指令集計算機)設(shè)計思想:精簡指令集的復(fù)雜度,簡化指令的硬件設(shè)計,硬件只執(zhí)行很有限的最常用的指令,復(fù)雜的操作由簡單指令合成。效果:RISC處理器比同等規(guī)模的CISC處理器快50%~75%,更易設(shè)計實現(xiàn),成本大幅度降低。RISC體系結(jié)構(gòu)特點:

指令格式和長度固定,容易設(shè)計實現(xiàn);代碼優(yōu)化編譯效率更高;指令單周期完成;便于流水線操作;芯片面積顯著減小,易于集成更多功能。最成功的代表:ARM系列處理器3嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第3頁!3、ARM處理器系列ARM處理器目前包括以下幾個系列:ARM7系列ARM9系列ARM9E系列ARM10E系列ARM11系列(最近已推出)Intel的StrongARM和Xscale4嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第4頁!(2)、ARM9TDMI系列介紹特點:32K的Cache五級流水線支持更高時鐘速率,到400MHz其余與ARM7系列類似性能是ARM7系列的2倍,超過Pentiumi5865嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第5頁!ARM三級流水線簡介ARM7使用3級流水線機制:取指:讀取程序存儲器中的指令,放入指令流水線中。譯碼:對指令進行譯碼,為下一周期準(zhǔn)備數(shù)據(jù)路徑需要的控制信號。此時指令占據(jù)譯碼邏輯而不占據(jù)數(shù)據(jù)路徑。執(zhí)行:指令占據(jù)數(shù)據(jù)路徑,寄存器堆被讀取,操作數(shù)被放到ALU中并進行運算,運算結(jié)果被放到目的寄存器中并改變程序狀態(tài)寄存器的條件標(biāo)志。6嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第6頁!2.2、典型ARM芯片與單片機的比較三星公司ARM芯片與89C51指令效率比較S3C44B0XS3C241089C51時鐘頻率66MHz266MHz24MHz總線寬度32位32位8位執(zhí)行速率66M條指令/秒266M條指令/秒約0.5M條指令/秒地址空間4GBytes1GBytes64KBytes指令綜合效率S3C44B0X是89C51的200~400倍7嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第7頁!

S3C2410X主要資源:

內(nèi)核帶有16K高速指令緩存和16K數(shù)據(jù)緩存117個I/O口,32位數(shù)據(jù)總線和32位地址總線分開LCD控制器(最大支持256色STN,使用LCD專用DMA)3通道UART,速率可到115.2kbits/s,1通道紅外接口IrDA

2通道的同步IO(SPI),速率達幾十Mbits;4通道DMA支持多種類型的存儲器(FLASH、DRAM、SDRAM、SRAM

)4通道的PWM定時器和1通道內(nèi)部定時器具有看門狗定時器1個實時時鐘,具備日歷功能8通道10位ADC和觸摸屏接口1通道IIC總線接口1通道IIS總線接口24個外部中斷源

內(nèi)部有26個中斷源8嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第8頁!2.4ARM處理器工作模式ARM處理器核使用CPSR(當(dāng)前程序狀態(tài)寄存器)的低5位定義當(dāng)前工作模式:9嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第9頁!ARM處理器工作模式說明用戶模式:用戶程序運行時所在的模式。在此模式下應(yīng)用程序不能訪問受操作系統(tǒng)保護的系統(tǒng)資源,也不能改變ARM核的模式,即不能進行模式切換,除非異常(包括中斷)發(fā)生時自動切換到其它模式。特權(quán)模式:除用戶模式外的其他六種模式稱為特權(quán)模式。這些模式主要處理程序異常和軟件中斷。在這些模式下軟件可以自由切換工作模式。異常模式:特權(quán)模式中除系統(tǒng)模式外的其他5種模式。即FIQ、IRQ、SVC、Abort、Undefine模式。特權(quán)模式由異常模式和系統(tǒng)模式組成異常模式處理中斷和異常的發(fā)生。異常(ARM處理器將中斷也視為一種異常情況)發(fā)生時,處理器自動進入相應(yīng)模式,每種異常模式都有一些不同的寄存器,稱為影子寄存器。供相應(yīng)的異常處理程序使用。這樣保證進入異常模式時使用的寄存器與正常的用戶模式不同,不會改變正常情況下的用戶寄存器,即不破壞正常程序的運行。系統(tǒng)模式與用戶模式使用同樣的寄存器,但與異常模式使用的寄存器不同。系統(tǒng)模式供操作系統(tǒng)使用,操作系統(tǒng)可以在其他任意模式間切換,使用系統(tǒng)的所有資源,因為操作系統(tǒng)應(yīng)該有最高的特權(quán)。10嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第10頁!2.5.2ARM狀態(tài)下的寄存器組織通用寄存器和程序計數(shù)器用戶系統(tǒng)管理中止未定義普通中斷快速中斷R0~R7R8R8_fiqR9R9_fiqR10R10_fiqR11(FP)R11_fiqR12(IP)R12_fiqR13(SP)R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)狀態(tài)寄存器CPSR無SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq1.簡介11嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第11頁!1)程序計數(shù)器R15(PC)

R15專用于程序指令計數(shù),指示即將執(zhí)行的代碼位置。因此該計數(shù)器不能隨意更改。由于ARM的指令長度都是32位(4字節(jié)),而程序計數(shù)器的計數(shù)值以字節(jié)為單位,所以PC每次變化4字節(jié)才能取得一個完整有效的指令,PC的最低2位始終都是0才滿足這一條件。注意:

ARM體系采用多級流水線技術(shù),所以PC指向的指令地址并不是當(dāng)前正在執(zhí)行的指令,而是準(zhǔn)備取得的指令。對于3級流水線的ARM核,PC指向的是比當(dāng)前指令高兩條的指令位置,即地址高8個字節(jié);對于5級流水線的ARM核,PC指向的是比當(dāng)前指令高三條的指令位置,即地址高12個字節(jié)。12嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第12頁!1)條件碼說明:N——負(fù)數(shù)標(biāo)志;如果數(shù)據(jù)指令運行結(jié)果為負(fù),則N=1;如果非負(fù)則N=0Z——零標(biāo)志;如果結(jié)果為0,則Z=1;如果非0,則Z=0C——進位/借位標(biāo)志;對于加減法運算,結(jié)果有進位或借位時C=1,否則C=0;對于移位指令,C為移位操作中最后移出的位的值。V——溢出指令;運算結(jié)果有溢出時V=1,否則V=02)控制位說明:

CPSR的最低8位是控制位。異常發(fā)生時將改變控制位的值。在特權(quán)模式下程序員也可以通過軟件來改變控制位。(1)中斷禁止位I:I=1,禁止IRQ中斷;F=1,禁止FIQ中斷(2)工作狀態(tài)位T:T=0表示運行于ARM狀態(tài);T=1表示運行于Thumb狀態(tài)(3)模式位M[4:0]:表示處理器工作于7中模式中的哪一種3)其他位:目前未用13嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第13頁!異常類型向量地址優(yōu)先級異常中斷含義復(fù)位(Reset)0x000000001外部復(fù)位引腳有效時系統(tǒng)產(chǎn)生復(fù)位異常中斷,程序從頭開始執(zhí)行,也可以由軟件復(fù)位直接產(chǎn)生未定義指令(UndefinedInstruction)0x000000046當(dāng)前指令無效時產(chǎn)生軟件中斷(SWI)0x000000086由軟件(用戶)自行定義指令預(yù)取中止(PrefechAbort)0x0000000C5當(dāng)程序存儲器故障無法取得有效指令時產(chǎn)生數(shù)據(jù)訪問中止(DataAbort)0x000000102當(dāng)數(shù)據(jù)存儲器故障無法取得有效數(shù)據(jù)時產(chǎn)生外部中斷請求(IRQ)0x000000184當(dāng)處理器的外部中斷請求引腳有效并且該中斷未被禁止時產(chǎn)生。系統(tǒng)的外設(shè)一般通過該種方式工作快速中斷請求(FIQ)0x0000001C3當(dāng)處理器的外部快速中斷請求引腳有效并且該中斷未被禁止時產(chǎn)生。系統(tǒng)的外設(shè)可以通過該種方式工作14嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第14頁!2.6.2ARM的異常中斷返回過程

復(fù)位異常處理由硬件自動完成,之后將從頭開始程序的執(zhí)行,沒有返回過程;其他的異常中斷在完成異常處理程序后將返回被中斷了的正常程序處繼續(xù)執(zhí)行,要求異常處理程序能精確地恢復(fù)異常發(fā)生時的用戶狀態(tài)。從異常中斷處理程序中返回時需要執(zhí)行以下4個基本操作:(1)所有修改過的用戶寄存器必須從處理程序的保護堆棧中恢復(fù)(出棧)。(2)將SPSR_<mode>寄存器內(nèi)容復(fù)制到CPSR中,使得CPSR從相應(yīng)的SPSR中恢復(fù),這樣就恢復(fù)了被中斷的程序狀態(tài)。(3)將R14(LR)中的值復(fù)制到PC中,使程序從被中斷了的正常程序處開始執(zhí)行。(4)最后清除CPSR中的中斷禁止標(biāo)志位I和/或F。以上過程需要程序員用軟件編程來完成。2.6.3異常中斷向量表該表中的地址位于程序存儲器的最前端,每種模式對應(yīng)一個地址,每個地址的長度是32位。在發(fā)生異常時,處理器將相應(yīng)的地址值自動賦給PC,完成次跳轉(zhuǎn),這是一種硬件機制;在每個相應(yīng)的地址中保存著一條跳轉(zhuǎn)指令,指向異常處理程序的起始位置,這個跳轉(zhuǎn)指令和異常處理程序由程序員編程來完成,由軟件實現(xiàn)。中斷向量表中地址0x00000014不用。15嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第15頁!2.7ARM存儲數(shù)據(jù)類型及格式簡介1.ARM支持的數(shù)據(jù)類型8位有符號和無符號字節(jié)16位有符號和無符號半字,以2字節(jié)為邊界對齊32位有符號和無符號字,以4字節(jié)為邊界對齊2.存儲器組織小端格式16嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第16頁!(1)、ARM7TDMI系列介紹

T—Thumb16位壓縮指令集

D—支持片上Debug調(diào)試,使處理器能夠響應(yīng)調(diào)試請求

M—增強型Multiplier,產(chǎn)生64位結(jié)果

I—EmbeddedICE硬件,支持片上斷點和觀察點特點:具有協(xié)處理器MMU接口8K的CacheJTAG接口三級流水線主頻到100MHz性能超過48617嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第17頁!(3)、ARM10TDMI系列介紹特點:高端處理器64K的Cache六級流水線更高時鐘速率,1GHz其余與ARM9系列類似性能是ARM9系列的2倍18嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第18頁!19嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第19頁!S3C2410與89C51功能資源比較

89C51主要資源:P0、P2復(fù)用地址數(shù)據(jù)口P1可用作8位I/O口3個外部中斷口1個UART口片內(nèi)8KFLASH256bytesRAM20嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第20頁!2.3ARM處理器工作狀態(tài)ARM處理器核可工作于兩種狀態(tài):ARM狀態(tài):32位指令長度THUMB狀態(tài):16位指令長度代碼存儲時,按各自的指令長度存儲;程序執(zhí)行時,處理器可在兩種狀態(tài)之間轉(zhuǎn)換,并且在THUMB狀態(tài)下先將16位指令解壓成32位指令再執(zhí)行。因此THUMB狀態(tài)不損失任何性能,但代碼長度減少了很多。注意:ARM狀態(tài)和THUMB狀態(tài)之間的切換不影響處理器的模式或寄存器的內(nèi)容ARM處理器在開始執(zhí)行代碼時只能處于ARM狀態(tài)21嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第21頁!ARM處理器支持7種工作模式,每種工作模式可訪問的寄存器不同:CPSR[4:0]模式用途可訪問的寄存器10000User(用戶)正常用戶模式,程序正常執(zhí)行時應(yīng)在該模式下PC、R14~R0、CPSR10001FIQ快速中斷快速中斷模式,支持高速數(shù)據(jù)傳送或通道處理PC、R14_fiq~R8_fiq、R7~R0、CPSR、SPSR_fiq10010IRQ普通中斷普通中斷模式PC、R14_irq~R13_irq、R12~R0、CPSR、SPSR_irq10011SVC管理模式(或操作系統(tǒng)保護模式,處理軟件中斷SWI)PC、R14_svc~R13_svc、R12~R0、CPSR、SPSR_svc10111Abort(中止)處理存儲器故障,實現(xiàn)虛擬存儲器和存儲器保護PC、R14_abt~R13_abt、R12~R0、CPSR、SPSR_abt11011Undefine(未定義)處理未定義的指令陷阱,支持硬件協(xié)處理器的軟件仿真PC、R14_und~R13_und、R12~R0、CPSR、SPSR_und11111SYS系統(tǒng)運行特權(quán)操作系統(tǒng)任務(wù)PC、R14~R0、CPSR22嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第22頁!2.5ARM寄存器組成2.5.1概述ARM處理器共有37個寄存器,分為兩類:通用寄存器和狀態(tài)寄存器31個通用寄存器程序計數(shù)器(PC)、R0~R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R13_fiq、R14_fiq;6個狀態(tài)寄存器CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq、

不同模式下可以訪問的寄存器不同。處理器在每一時刻只能處于一種工作模式,編程時也只能使用相應(yīng)的寄存器。23嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第23頁!2.ARM狀態(tài)的通用寄存器通用寄存器指R0~R15,分為3類:不分組寄存器(UnbankedRegisters)R0~R7分組寄存器(BankedRegisters)R8~R14程序計數(shù)器R15(PC)1)不分組寄存器(UnbankedRegisters)R0~R7在所有的模式下共用,每種模式下訪問的都是同一組物理寄存器。但需要注意當(dāng)程序從正常狀態(tài)下進入異常模式或在不同模式間切換時,如果使用該組寄存器,首先要對寄存器的值做保護,以免破壞先前模式下的數(shù)據(jù)。保護的常用方法是使用堆棧。2)分組寄存器(BankedRegisters)R8~R14(1)R8~R12寄存器:FIQ模式和FIQ模式以外的其他模式不同。實際上是兩組不同的物理寄存器。這樣做目的是在FIQ模式時加快快速中斷處理的速度,不需要執(zhí)行寄存器保護工作。(2)R13(StackPointer)和R14(LinkRegister)寄存器:共有6組不同的物理寄存器。系統(tǒng)模式和用戶模式使用同一組物理寄存器,其他模式各有自己的一組物理寄存器。這種設(shè)計的目的是為了堆棧操作方便。24嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第24頁!2.ARM程序狀態(tài)寄存器有兩種程序狀態(tài)寄存器:CPSR、SPSRCPSR是所有模式都共用的;每種異常模式又都有一個對應(yīng)的SPSR,當(dāng)異常發(fā)生時用來保存CPSR的狀態(tài),當(dāng)異常處理結(jié)束返回正常工作狀態(tài)時恢復(fù)CPSR。ARM的數(shù)據(jù)指令在執(zhí)行時可以影響CPSR的條件碼,根據(jù)條件碼的變化決定指令的流向,也可以通過比較指令和測試指令直接設(shè)置CPSR的條件碼。25嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第25頁!2.6ARM的異常中斷

ARM系統(tǒng)中使用異常來處理程序執(zhí)行時的意外事件,包括中斷、存儲器故障、未定義指令、復(fù)位等。所有的異常事件都按中斷的處理機制來解決。異常中斷發(fā)生時,程序執(zhí)行完當(dāng)前的指令后將跳轉(zhuǎn)到異常中斷處理程序中運行,運行完成后將返回正常的程序繼續(xù)執(zhí)行原理的程序。進入異常中斷處理程序時,要保存被中斷了的程序的執(zhí)行現(xiàn)場(主要是相關(guān)的寄存器),在從異常中斷處理程序返回時要恢復(fù)被中斷的程序的執(zhí)行現(xiàn)場。每種異常中斷都具有各自的備份寄存器組。 ARM的異常分3類:

(1)指令執(zhí)行引起的直接異常 軟件中斷、未定義指令和預(yù)取指中止引起該種異常

(2)指令執(zhí)行引起的間接異常 數(shù)據(jù)中止引起該異常

(3)外部產(chǎn)生的與指令流無關(guān)的異常 復(fù)位、IRQ和FIQ引起該異常26嵌入式系統(tǒng)講義——第2章共29頁,您現(xiàn)在瀏覽的是第26頁!2.6.1ARM的異常中斷響應(yīng)過程

復(fù)位異常將立即終止正在執(zhí)行的指令,其他的異常中斷將在完成當(dāng)前指令后轉(zhuǎn)到異常處理程序進行處理。ARM處理器對異常中斷的響應(yīng)過程如下:(1)將CPSR的內(nèi)容保存到即將進入模式的SPSR中,實現(xiàn)對處理器當(dāng)前狀態(tài)、中斷屏蔽位和各條件標(biāo)志位的保存。(2)設(shè)置CPSR的相應(yīng)位。設(shè)置模式控制位M[4:0],使處理器進入相應(yīng)的工作模式。設(shè)置中斷標(biāo)志位I=1,禁止IRQ中斷當(dāng)進入Reset或FIQ

溫馨提示

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

評論

0/150

提交評論