秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

微型計算機原理及應用(第二版)章-課件8

上傳人:痛*** 文檔編號:253368403 上傳時間:2024-12-12 格式:PPT 頁數(shù):209 大小:2.61MB
收藏 版權(quán)申訴 舉報 下載
微型計算機原理及應用(第二版)章-課件8_第1頁
第1頁 / 共209頁
微型計算機原理及應用(第二版)章-課件8_第2頁
第2頁 / 共209頁
微型計算機原理及應用(第二版)章-課件8_第3頁
第3頁 / 共209頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《微型計算機原理及應用(第二版)章-課件8》由會員分享,可在線閱讀,更多相關(guān)《微型計算機原理及應用(第二版)章-課件8(209頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第,8,章 總線,8.1,概述,,8.2 ARM,處理器,,8.3 Inter PXA 27X,介紹,,習題,8.1.1 PXA27X,概述,PXA27X,是一種高性能、低功耗,(,可達到,MIPS/mW),、功能強勁的,SOC,處理器,它采用,Intel,公司的,XScale,結(jié)構(gòu)。在,PXA27X,中包括了除浮點運算指令之外的全部,ARM V5TE,的指令集,同時還包括,Intel,公司的整數(shù)無線,MMX,指令。這就使得該處理器的指令功能及對多媒體信號的處理能力十分強大。,8.1,概 述,,PXA270,有兩種封裝形式:,13?mm?×?13?mm,的,FVBGA,和,23?m

2、m?×?23?mm,的,PBGA,。前者有,356,條球狀引線而后者有,360,條球狀引線。,PXA27X,的結(jié)構(gòu)框圖如圖,8.1,所示。在圖,8.1,中,實線框起來的各個部分組成了,PXA27X,芯片,實線框之外是芯片外接的部分。,由圖,8.1,可以看到,在硬件上,PXA27X,包括如下部分:,PXA27X,內(nèi)部集成有,4,個體的,SRAM,,每個體,64?KB,,,4,個體共,256?KB,。,PXA27X,內(nèi)部有,LCD,控制器,可以支持顯示分辨度達,800?×?600,像素的,LCD,顯示。   該處理器集成有存儲器控制器,(,見圖,8.1,虛線框部分,),,該控制器提供了各種控制信號

3、,用以支持芯片外部外接,SDRAM,、閃速存儲器、,PC,卡等存儲器件的工作。在,PXA27X,外部最多可接,1?GB,的,SDRAM,、,384?MB,的閃速存儲器。,圖,8.1 PXA27X,處理器結(jié)構(gòu)框圖,,PXA27X,內(nèi)部集成有,USB,主控制器,也集成有,USB,的客戶控制器。這樣一來,在未來的工作中,,PXA27X,既可工作為主控制器,又可以作為系統(tǒng)中的客戶接受其他,USB,主控制器的管理。,PXA27X,集成有電源管理模塊,對芯片上電、睡眠、看門狗等多種功能實施管理。,PXA27X,有時鐘管理模塊,能對片內(nèi)多種時鐘進行管理。,在,PXA27X,中集成了多種外設接口,在圖,8.

4、1,的左側(cè)可以看到,許多經(jīng)常用到的外設,(,總線,),接口均已集成在芯片中。同時,這些外設,(,總線,),接口引線中,有許多都是可以雙重定義或多重定義的,既可以定義為某種外設的接口信號引線,當不用該外設時,這些引線又可以用作通用的輸入,/,輸出信號線,這就是圖,8.1,中所標的通用,I/O(GPI/O),。,為測試芯片方便,,PXA27X,還集成有,JTAG,接口。   通過上面的描述,我們可以了解到,PXA27X,處理器的大致組成。顯然,其結(jié)構(gòu)是比較復雜的,功能也非常強。在本章后面的內(nèi)容中,將對,PXA27X,的某些部分進行詳細講述,但不可能將所有內(nèi)容全都說清楚,因為,PXA27X,所涉及的

5、內(nèi)容實在太多了。,8.1.2 Intel XScale,結(jié)構(gòu),當前,在廠家設計,SOC,時,都是將多個處理器的功能整合到,SOC,中,例如將,ARM,與,DSP,、,MCU,與,DSP,集成在,SOC,中。集成電路加工技術(shù)使線條寬度達到幾十納米,使這種多個處理器的結(jié)合成為現(xiàn)實。,Intel XScale,結(jié)構(gòu)的處理器就是這種理念的體現(xiàn)。,1,.,Intel XScale,結(jié)構(gòu)處理器硬件,Intel XScale,結(jié)構(gòu)處理器硬件結(jié)構(gòu)框圖如圖,8.2,所示。,圖,8.2 XScale,結(jié)構(gòu)框圖,,2,.,Intel XScale,硬件結(jié)構(gòu)說明,由圖,8.2,可以看到這種結(jié)構(gòu)的處理器是由哪些部分

6、構(gòu)成的。下面將簡單說明硬件的各部分。,Intel XScale,是以,ARM,公司的,RISC,處理器,ARM V5TE,為基礎(chǔ)的,再將功能監(jiān)視單元,CP14,、配置寄存器,CP15,、乘法,/,累加器,CP0(,協(xié)處理器,),等,16,個協(xié)處理器整合進去,使得由,Intel XScale,為處理器核的,PXA27X,系列的處理器具有很強的處理能力。,在,Intel XScale,核中還集成了具有單指令多數(shù)據(jù),(SIMD),結(jié)構(gòu)的協(xié)處理器,能夠完成整數(shù)的,MMX,指令及,SIMD,擴展指令,(SSE),,更有利于多媒體信號的處理。   在,Intel XScale,中,有三部分高速緩存,Cac

7、he,及相應的存儲器管理單元,無疑對提高,Intel XScale,的總體性能大為有利。,Intel XScale,具有對外的協(xié)處理器接口,還可以外接諸如,DSP,這樣的處理器。在,PXA270,中就可外接專門用于多媒體處理的單指令流多數(shù)據(jù)流,(SIMD),協(xié)處理器。,,Intel XScale,中有對嵌入式系統(tǒng)非常重要的兩類中斷:一般中斷,IRQ,和快速中斷,FIQ,。   在,Intel XScale,中還包括用于測試的,DEBUG,及,JTAG,。   顯然,在,Intel XScale,中還有超級流水線、分支預測等一系列提高性能的硬件措施??紤]到讀者將來主要是應用,SOC,芯片構(gòu)成嵌入

8、式系統(tǒng)而不是設計,SOC,芯片,對于,Intel XScale,更詳細的內(nèi)容不再說明。,,8.2 ARM,處理器,8.2.1 ARM,處理器系列,,,ARM,處理器是由,ARM,公司設計的,這是一家專門設計,IP(,知識產(chǎn)權(quán),),的供應商。該公司既不生產(chǎn)芯片也不生產(chǎn)整機,只賣,IP,核。但該公司所設計的,ARM,處理器是,32,位的,RISC,處理器,由于其性能高、功耗低、性價比高,已被全球各大半導體公司所使用。,,1,.,ARM,體系結(jié)構(gòu),ARM,體系結(jié)構(gòu)從誕生至今共有六個版本,從,V1,到,V6,。顯然,版本低的功能要差一些,版本愈高功能愈強。,ARM,公司依據(jù)不同的體系結(jié)構(gòu)版本設計出

9、多種,ARM,處理器。這些處理器在功能上有一些差異,這就形成了,ARM,處理器的多種不同變種,主要的有如下幾種:,1)? T,變種,T,變種是指在,ARM,處理器中包含有,Thumb,指令集。,ARM,處理器指令的長度是固定的,所有的指令均為,32,位。在其,T,變種中除,32,位指令外還包括指令長度為,16,位的,Thumb,指令集。,,2)? M,變種,M,變種在,ARM,指令集中包含有,4,條長乘法指令,這些指令能完成,32,位,×?32,位,=?64,位的乘法及,32,位,×?32,位,+?64,位,=?64,位的乘加運算的功能。,3)? E,變種,E,變種為增強,DSP(,數(shù)字信號處

10、理器,),指令變種,在該變種的,ARM,指令集中包含一些典型的完成,DSP,算法的一些指令。,,4)? J,變種   該變種將,Java,加速器,Jazelle,加到,ARM,處理器中,可以大大提高,Java,程序的運行速度。,5)? SIMD,變種   該變種將單指令流多數(shù)據(jù)流的系統(tǒng)結(jié)構(gòu)思想加入到,ARM,處理器中,這可以有效地提高對多媒體信號,——,音頻及視頻信號的處理能力。,,2,.,ARM/Thumb,體系結(jié)構(gòu)命名,目前正在使用的,ARM/Thumb,體系結(jié)構(gòu)版本如表,8.1,所示。 由表,8.1,可以看到,在,PXA27X,中所集成的,ARM v5TE,版本的處理器已經(jīng)具有相當好的性

11、能。,表,8.1 ARM,的體系結(jié)構(gòu)版本,8.2.2 ARM,處理器的工作模式及寄存器,1,.,ARM,處理器的工作模式,ARM,處理器會運行在如下,7,種工作模式之下:,1),用戶模式,usr,大多數(shù)應用程序都工作在用戶模式之下,在此模式之下應用程序不能使用受操作系統(tǒng)保護的資源。也就是說,用戶模式具有較低的資源利用級別。,,2),特權(quán)模式,svc,這是供操作系統(tǒng)使用的一種保護模式。操作系統(tǒng)工作在特權(quán)模式之下,原則上允許它控制系統(tǒng)的所有資源。,3),數(shù)據(jù)中止模式,abt,該模式用于實現(xiàn)虛擬存儲器或?qū)Υ鎯ζ鞯谋Wo。,4),未定義指令中止模式,und,這種模式用于對硬件協(xié)處理器軟件仿真。,,5

12、),一般中斷請求模式,irq,這種模式用于一般的外部中斷請求,類似于前面,8086,的,INTR,。,6),快速中斷請求模式,fiq,該模式支持高速數(shù)據(jù)傳送或通道方式,其具有更高的優(yōu)先級。,7),系統(tǒng)模式,sys,系統(tǒng)模式主要為操作系統(tǒng)任務所用,它與用戶模式使用完全一樣的寄存器。但在該摸式下,任務可以使用系統(tǒng)的所有資源,在這種意義上講它也屬于特權(quán)模式。,,2,.,ARM,處理器的內(nèi)部寄存器,從本書前面的章節(jié)中已經(jīng)看到,要學好、用好某種處理器,必須掌握好其內(nèi)部寄存器。這對后面的指令系統(tǒng)、編程及應用都很重要。對于,ARM,處理器來說也是這樣,讀者必須認真理解該處理器的,37,個內(nèi)部寄存器。,ARM

13、,的內(nèi)部寄存器如表,8.2,所示。,表,8.2,不同工作模式下的寄存器,在,ARM,處理器的,37,個寄存器中,包括,31,個通用寄存器和,6,個狀態(tài)寄存器。所有這些寄存器都是,32,位的。   由表,8.2,可以看到,,ARM,處理器工作在不同模式之下,所使用的寄存器是不一樣的。一種模式對應一組寄存器,這一組寄存器包括通用寄存器,R0,~,R14,、程序計數(shù)器,PC,和一個或兩個狀態(tài)寄存器。這些寄存器中,有一些是共用的,有一些則是不同模式所私有的。,,1),通用寄存器   通用寄存器為,R0,~,R15,,它們又分為,3,類:   ● 不分組寄存器,R0,~,R7,這,8,個,32,位的寄存

14、器是為每一種,ARM,處理器運行模式所用,也就是說在每種模式下使用的同一個物理寄存器。在使用中必須注意到,當中斷或異常發(fā)生時,要進行模式切換,這時就需要保護這些寄存器的內(nèi)容免遭破壞,以便在中斷,(,異常,),返回時能接著中斷,(,異常,),前的狀態(tài)繼續(xù)執(zhí)行。,● 分組寄存器,R8,~,R14,這些寄存器在不同模式下訪問的不是一個物理寄存器。 由表,8.2,可以看到,當在,fiq,模式時,使用的是與,R8,~,R14,對應的另外,7,個寄存器,R8_fiq,~,R14_fiq,。在,fiq,模式下,原,R8,~,R14,不再使用。在實際應用中,當響應,fiq,中斷進入服務程序時,若服務程序不使用

15、,R8,~,R14,,則它們的內(nèi)容可不必保護。,由表,8.2,還可以看到,對于,R13,和,R14,來說,除了在,fiq,模式下使用,R13_fiq,和,R14_fiq,之外,在特權(quán)、中止、未定義及一般中斷模式下,也分別對應自己的,R13,和,R14,。這在編程使用,ARM,處理器時應予以注意,可以使用戶保護現(xiàn)場,(,斷點,),的操作更加簡單。   另外,在使用中經(jīng)常將,R13,用作堆棧指針,(,指示器,),。當然,也可以用其他寄存器作為堆棧指針。,,R14,稱為連接寄存器,(,記為,LR),,它除了用作通用寄存器之外,還有兩種特殊用途:,(1),每種模式自己的,R14,中存放當前子程序的返回

16、地址,當子程序結(jié)束時,利用,R14,很容易返回主程序。具體細節(jié)見本節(jié)后面的內(nèi)容。,(2),當異常發(fā)生時,可將該異常的特定的,R14,設置為此異常的返回地址,當該異常結(jié)束時,就很容易返回到異常發(fā)生時的程序。,● 程序計數(shù)器,(PC)R15,程序計數(shù)器在概念上與前面幾章所描述的,80X86,的指令指針類似,但由于,ARM,的特點,它又有許多特殊的地方。   在,ARM,中,指令長度均為,32,位,而地址都是按字節(jié)編址的。因此,在這種情況下,,,由于,ARM,的指令都必須按,32,位字對齊,故,PC,的最低兩位必須為,0,。當,ARM,工作在,Thumb,狀態(tài)下時,,PC,的最低位必須為,0,。因為

17、,Thumb,的指令全都是,16,位的。當為改變程序執(zhí)行順序?qū)懭?PC,時,必須注意保證上述要求;否則將會產(chǎn)生不可預知的結(jié)果。,由于,ARM,采用流水線技術(shù),當用指令讀出,PC,值時,讀出的,PC,值應是該指令的地址加,8,。顯然,在,Thumb,狀態(tài)下,用指令讀出,PC,值時,讀出的,PC,值應是該指令的地址加,4,。,,2),程序狀態(tài)寄存器   程序狀態(tài)寄存器有兩種:當前程序狀態(tài)寄存器,CPSR,和備份程序狀態(tài)寄存器,SPSR,。前者是所有模式所共用的,而后者則是在特定的異常模式下每個模式自己所特有的,由表,8.2,可以看得很清楚。,CPSR,和,SPSR,的格式是一樣的,如圖,8.3,所

18、示為,CPSR,的格式。,圖,8.3,程序狀態(tài)寄存器格式,由圖,8.3,可以看到,程序狀態(tài)寄存器包括如下幾部分:   ● 條件標志位   圖,8.3,中,,N,、,Z,、,C,、,V,四位稱為條件標志位,與前面第,2,章中所描述的,8086,的對應標志位非常類似。,N,:負標志位。當兩數(shù)運算結(jié)果最高位為,1,時,,N=1,,表示運算結(jié)果為負數(shù)。若結(jié)果最高位為,0,,則,N=0,,表示運算結(jié)果為一正數(shù)。實際上它與,8086,的符號標志位,SF,沒有什么區(qū)別。,Z,:零標志位。它與,8086,的零標志位,ZF,是一樣的,不再解釋。,,C,:進位標志。該位與,8086,的進位標志位,CF,不太一樣:

19、 當執(zhí)行加法指令結(jié)果有進位時,C﹦1,;結(jié)果沒有進位時,C﹦0,。 當執(zhí)行減法指令結(jié)果有借位時,C﹦0,;結(jié)果沒有借位時,C﹦1,。,V,:溢出標志位。可與,8086,的溢出標志位,OF,一樣理解。   ●,Q,標志位   在,ARM,處理器的,E,系列,(,帶有增強,DSP,指令,),或,v5,以上版本中,設置,Q,標志,用于標志執(zhí)行增強,DSP,指令時是否發(fā)生溢出。,● 控制位   圖,8.3,中最低,8,位為,CPSR,的控制位。它們用于對,ARM,功能的控制,利用指令可以修改這些控制位。,a.,中斷禁止位,其中,I,位與,80X86,中,IF,的功能是一樣的,但定義相反。在這里,當,I

20、=0,時,允許,irq,中斷;當,I=1,時,禁止,irq,中斷。 與,I,位雷同,當,F=0,時,允許,fiq,中斷;當,F=1,時,禁止,fiq,中斷。,b. ?T,控制位,T,控制位用于控制,ARM,處理器執(zhí)行,ARM,的,32,位指令和,Thumb,的,16,位指令之間進行切換。,當,T=0,時,,ARM,處理器執(zhí)行,ARM,的,32,位指令;   當,T=1,時,,ARM,處理器執(zhí)行,Thumb,的,16,位指令。 在,v5,及以上版本非,T,變種的,ARM,處理器中,,T,控制位的定義為:   當,T=0,時,,ARM,處理器執(zhí)行,ARM,的,32,位指令;   當,T=1,時,執(zhí)

21、行下一條指令引起未定義異常。,c.,模式控制位,CPSR,中的,M0,~,M4,這,5,位用以控制,ARM,的運行模式,它們的不同編碼可以規(guī)定,ARM,的模式。具體的規(guī)定及在此模式下可以使用的寄存器如表,8.3,所示。,表,8.3,模式控制位及模式下可訪問的寄存器,在表,8.3,中,用,0bxxxxx,表示,0b,之后為二進制編碼。   同時,表,8.3,中更加明確地指出了不同模式下可以訪問的內(nèi)部寄存器。   ● 其他位   在,CPSR,中,除了上面定義的各位外,剩余的許多位尚未定義,留作今后擴展之用。,SPSR,的各位定義與,CPSR,相同,不需再作說明。,,3,.,ARM,處理器的存儲系

22、統(tǒng),1),尋址空間,ARM,的內(nèi)存以字節(jié)編址,最大地址空間為,232,,用十六進制表示為從,0X00000000,到,0XFFFFFFFF,。在,ARM,中,0X,后面的字符表示為十六進制數(shù)。,ARM,的地址空間也可以看做是,230,個,32,位的字單元或者是用,231,個,16,位的半字單元構(gòu)成。,在前面的章節(jié)中已經(jīng)說過,在,PC,中加上帶符號的偏移量可以實現(xiàn)程序的轉(zhuǎn)移。在,ARM,中也是這樣,執(zhí)行轉(zhuǎn)移指令可以實現(xiàn)程序的轉(zhuǎn)移。轉(zhuǎn)移的目的地址為:     當前,(,轉(zhuǎn)移,),指令的地址,+?8?+,偏移量   在前面講述,8086,段內(nèi)相對轉(zhuǎn)移時,目的地址是當前指令的地址加,2(,短轉(zhuǎn)移,),

23、或加,3(,近轉(zhuǎn)移,),再加位移量。在,ARM,中加,8,是因為其中有指令流水線而且,ARM,指令的長度都是,4,個字節(jié)。,,2),內(nèi)存存儲格式   在,ARM,存儲器中,數(shù)據(jù)在內(nèi)存中的存放有兩種格式:,(1),小端格式。這種存儲格式是一個,4,個字節(jié)的字或一個兩個字節(jié)的半字,總是小地址存放低字節(jié),大地址存放高字節(jié)。其規(guī)則與前面的,80X86,是一樣的。例如,一個,32,位的字,0XA9876543,,存放在內(nèi)存起始地址為,0X30000000,的順序單元中,則最低字節(jié),43,放入最小的,0X30000000,單元、,65,放入,0X30000001,單元,后面的字節(jié)依次存放。,,(2),大端

24、格式。大端格式與上述小端格式的存放順序剛好相反,即小地址存放高字節(jié),大地址存放低字節(jié)。 小端格式通常是,ARM,的缺省配置,通過硬件輸入可以配置存儲格式。,3) ?I/O,地址映射   如同前面提到的,,ARM,處理器采用內(nèi)存與接口地址統(tǒng)一編址的方案。也就是說,內(nèi)存與接口共用一個,4?G,的地址空間,其中一部分分配給接口作為接口地址,其他部分用作內(nèi)存地址。用于內(nèi)存的接口不能用,而用于接口的內(nèi)存也不能用。,8.2.3 ARM,指令系統(tǒng),ARM,是一種,RISC(,精減指令集計算機,),處理器,相對于,CISC(,復雜指令集計算機,),要簡單一些。但是,這是一種近幾年才開發(fā)出來的高性能的,32,

25、位處理器,其指令功能是很強的,相對也比較復雜。本小節(jié)僅對,ARM,的指令系統(tǒng)進行一般性的介紹。,,1,.,ARM,指令的一般格式,1),格式   一條典型的,ARM,指令的一般語法格式如下:,{}{},,,,,,,其中:,opcode,為操作碼助記符,例如加法指令用,ADD,表示。,cond,為指令的執(zhí)行條件碼,詳見下文。,S,用于決定該指令的執(zhí)行是否影響,CPSR,。,Rd,表示目標寄存器。,Rn,表示保存第,1,個操作數(shù)的寄存器。,sthifter_oprand,表示第,2,個操作數(shù)的寄存器。,,2),條件碼   在,ARM,中定義的條件碼與,8086,有許多類似的地方,讀者可對照理解。,

26、ARM,的條件碼如表,8.4,所示。,圖,8.4 ARM,的移位操作,,(a) LSL; (b) LSR; (c) ASR; (d) ROR; (e) RRX,表,8.4 ARM,處理器的條件碼,,2,.尋址方式,有關(guān)尋址方式的概念前面第,3,章中已經(jīng)說明,此處僅介紹,ARM,處理器的一些最基本的尋址方式。,1),寄存器尋址   操作數(shù)在寄存器中的尋址方式稱為寄存器尋址。例如:,ADD R1,,,R2,,,R3,;完成,R2+R3→R1,,2),立即尋址   操作數(shù)為立即數(shù)。但,ARM,的立即數(shù)定義比較特殊,不是任意一個數(shù)都能定義為立即數(shù)。只有一個,8,位數(shù),循環(huán)右移偶數(shù)次,(0,、,2

27、,、,4,、,6,…,30),,并且最多為循環(huán)右移,30,次,方可構(gòu)成,32,位的二進制數(shù)。   例如,,0XFF,、,0X104,、,0XFF0,、,0X3F0,、,0XFF00,、,0XF000000F,等是合法的。而,0X101,、,0XFF1,等是非法的。,,3),寄存器移位尋址   這種尋址方式是,ARM,處理器所特有的,在第,2,個寄存器操作數(shù)與第,1,個操作數(shù)進行某種運算之前,可先進行移位操作。例如指令:,ADD R3,,,R2,,,R1,,,LSL #3,該指令是先將,R1,的內(nèi)容邏輯左移,3,次,再與,R2,的內(nèi)容相加,結(jié)果放在,R3,中。,,ARM,處理器中的移位操作

28、是針對,32,位的,概念上有些與,8086,一樣,有些則不一樣,具體說明如下:,LSL,——,邏揖左移;,LSR,——,邏揖右移;,ASR,——,算術(shù)右移;,ROR,——,循環(huán)右移;,RRX,——,大循環(huán)右移,即包括進位標志在內(nèi)的循環(huán)右移。,圖,8.4 ARM,的移位操作,,(a) ?LSL,;,(b) ?LSR,;,(c) ?ASR,;,(d) ?ROR,;,(e) RRX,,4),寄存器間接尋址   寄存器的內(nèi)容作為操作數(shù)的地址。例如指令:,LDR R0,,,[R3],該指令的操作就是以,R3,的內(nèi)容作為操作數(shù)的地址,由該地址讀一個,32,位的字放在,R0,中。,5),變址尋址  

29、 在此尋址方式中,操作數(shù)的地址是由寄存器的內(nèi)容加上一個帶符號的位移量來決定的,位移量的范圍在,±4 KB,之間。例如:,LDR R1,,,[R4,,,#8],該指令是從,R4,的內(nèi)容加上,8,的內(nèi)存地址開始,順序取,4,個字節(jié)放在,R1,中。,,6),多寄存器尋址   該尋址方式可用一條指令進行批量數(shù)據(jù)的傳送。例如:,LDMIA R0,,,{R5-R8},該指令能將,R0,的內(nèi)容所指向的內(nèi)存字到,R0,的內(nèi)容,+12,所指向的內(nèi)存字,(,共,4,個字,),順序讀出并存放在,R5,、,R6,、,R7,和,R8,中。,,7),相對尋址   與,8086,一樣,相對尋址用于轉(zhuǎn)移指令,在這

30、里還用于子程序調(diào)用。該尋址方式以,PC,為基準,在其上加上帶符號的位移量,從而改變了,PC,的內(nèi)容,也就改變了程序的執(zhí)行順序,達到轉(zhuǎn)移的目的。位移量指出目的地址與現(xiàn)行指令之間的相對距離。,,ARM,處理器在執(zhí)行,BL,指令時要做兩件事:,(1),將,BL,下一條指令的地址存入,R14(,即,LR),中。,(2),將,PC,的內(nèi)容加上指令中所帶的經(jīng)過運算的,24,位帶符號的位移量,(,已變?yōu)?32,位,),構(gòu)成新的,PC,的內(nèi)容。,24,位帶符號的位移量的運算是先將其符號位擴展為,32,位,再將擴展后的,32,位左移,2,位,這就是經(jīng)過運算后的,32,位的位移量。,上述過程看起來似乎很復雜,但在

31、實際編程中是非常簡單的,在使用轉(zhuǎn)移指令時,只需在指令中給出轉(zhuǎn)移或調(diào)用的標號就可以了。上述復雜的計算是由匯編程序來完成的,編程人員無須關(guān)心。   但是,編程人員應當知道,在指令中包含的是,24,位的帶符號,(,用補碼表示,),的位移量,并且在計算目的地址時又符號擴展左移了,2,位。因此,位移量相當于帶符號的,26,的二進制數(shù),這就規(guī)定了程序轉(zhuǎn)移的范圍大致在,-32?MB,到,+32?MB,之間。   為了說明如何使用,BL,,用圖,8.5,表示調(diào)用子程序的情況。,圖,8.5,用,BL,指令調(diào)用子程序的過程,在圖,8.5,中,利用一條橫線代表一條指令。當,ARM,執(zhí)行,BL,指令時,它會自動將其下

32、一條指令的地址保存在,R14,中。然后,根據(jù),24,位的位移量,程序轉(zhuǎn)向,FUNCT11,去執(zhí)行一個子程序。在子程序結(jié)束時,可用指令,MOV PC,,,R14(,也可以用別的指令,),返回主程序。,,3,.,ARM,的指令系統(tǒng),1),內(nèi)存訪問指令   ● 語法格式,ARM,的訪內(nèi)指令有,4,種形式,它們的構(gòu)造格式如下:,(1),零偏移格式:,{}{}{},,,,,(2),前索引偏移,在傳送前將偏移量加到,Rn,中。格式為:,{}{},,,<[Rn,,,Flexoffset]>{},,(3),相對偏移,標號地址必須在當前指令的,±4?KB,范圍內(nèi)。格式為:,{}{},,,label,,(4),后

33、索引偏移,在傳送后將偏移量加到,Rn,中。格式為:,{}{},,,<[Rn],,,Flexoffset>,上面格式中,可選后綴項,B,表示字節(jié);可選后綴項,T,若存在,即使處理器在特權(quán)模式下,也將該指令看成是在用戶模式之下;,Rd,為要加載或存儲的內(nèi)部寄存器;,Rn,為存儲器的基地址;,Flexoffset,為偏移量;,label,為標號,表示相對偏移;!為可選后綴,有!后綴的指令將包括偏移量的地址寫回,Rn,中。,● 指令列表,(1),用于字及字節(jié)操作的訪內(nèi)指令。用于字及字節(jié)操作的訪內(nèi)指令如表,8.5,所示。,表,8.5,用于字及字節(jié)操作的訪內(nèi)指令,,(2),批量訪內(nèi)指令。批量訪內(nèi)指令使用前

34、面提到的多寄存器尋址,可以實現(xiàn)數(shù)據(jù)的批量寫入內(nèi)存和讀出內(nèi)存。數(shù)據(jù)的堆棧操作也具有類似的情況,但是如前第,3,章所描述的,堆棧操作是先進后出的,這是堆棧操作指令的基本特征。有關(guān)一般傳送和堆棧操作指令如表,8.6,所示。,表,8.6,一般批量傳送與堆棧傳送對應表,上面的指令中所包括后綴的含義如下:,IA,——,事后遞增方式;,IB,——,事先遞增方式;,DA,——,事后遞減方式;,DB,——,事先遞減方式;,FD,——,滿棧遞減方式;,IB,——,空棧遞減方式;,DA,——,滿棧遞增方式;,DB,——,空棧遞增方式。,有關(guān)一般批量傳送舉例如下:,STMIA R9!,,{,R0,,,R1,,,

35、R3,,,R5,}   該指令是以事后遞增的方式將,R0,、,R1,、,R3,、,R5,這,4,個寄存器的內(nèi)容放在,R9,的內(nèi)容為地址的內(nèi)存單元中,如圖,8.6,所示。,圖,8.6,指令,STMTA,的執(zhí)行結(jié)果,在,ARM,處理器中,利用,R13,作為堆棧指針,堆??梢允沁f增的也可以是遞減的。在以往的,CPU,中,,8086,是遞減的而,MCS,—,51,是遞增的,而,ARM,則具有這兩種能力。例如,將,R0,到,R7,這,8,個寄存器壓棧和出??捎孟旅娴闹噶睿?STMFD R13!,,,{R0-R7},,LDMFD R13!,,,{R0-R7},,2),數(shù)據(jù)處理指令,ARM,的

36、數(shù)據(jù)處理指令包括:數(shù)據(jù)傳送指令、算術(shù)運算指令和邏輯運算指令?,F(xiàn)將常用的指令列于表,8.7,中。,表,8.7 ARM,的數(shù)據(jù)處理指令,在這些數(shù)據(jù)處理指令中,許多與前面,8086,的指令類似,但又有自己的特點。   指令,MOV,的語法格式為:,MOV {}{S},,,,其中:,{},具有可選條件,可有條件執(zhí)行,也可以無條件執(zhí)行;,,為目標寄存器;,,為第二操作數(shù),非常靈活,可以是前面所提到的立即數(shù)、寄存器,也可以是經(jīng)過移位的寄存器;,,{S},為可選項,若指令中有,S,,當指令中,Rd,為,R15,時,則將當前模式下的,SPSR,復制到,CPSR,中;若,Rd,不為,R15,,則指令執(zhí)行將影

37、響狀態(tài)寄存器中的條件標志位,N,和,Z,,若有移位則有可能影響,C,標志位。若指令中沒有,S,,則不影響標志位。 舉例如下,若在,irq,中斷服務程序中最后出現(xiàn)指令:,MOVS PC, R14,該指令將,R14(LR),的內(nèi)容復制到,PC,中,同時,將,SPSR_irq,的內(nèi)容復制到,CPSR,中。   對于本類中的其他指令不再詳細介紹,僅舉幾條指令予以說明如下:,ADD R0,,,R1,,,R2,;,這條加法指令的功能很簡單,即,R1+R2→R3,。   下面的指令可以實現(xiàn),R3R4R5,-,R6R7R8→R0R1R2,的,96,位整數(shù)減法運算,最后的結(jié)果放在,R0R1R2,中。,

38、SUBS R2,,,R5,,,R8,,SBCS R1, R4,,,R7,,SBC R0,,,R3,,,R6,若要對操作數(shù)先取反再傳送,可用數(shù)據(jù)取反傳送指令:,MVN R4,,,R5,;將,R5,取反后送,R4,,3),乘法指令,ARM,的乘法指令包括,32,位乘法和,64,位乘法,有如表,8.8,所示的,6,條乘法指令。,ARM,的乘法指令同樣非常靈活,功能很強。,32,位的,MLA,指令的語法格式為:,MLA {}{S},,,,,,,,,,該指令可以帶條件,可以影響標志位,完成,Rm?×?Rs?+?Rn→Rd,。,64,位的,SMULL,指令的語法格式為,SMULL {

39、}{S},,,,,,,,,,表,8.8 ARM,的乘法指令,同樣,該指令可以帶條件,可以影響標志位,完成,Rm×Rs=64,位積。,64,位積的高,32,位放,RdHi,,低,32,位放,RdLo,中。   其他指令不再解釋。舉例如下:,MUL R1,,,R2,,,R3,該指令完成,R2×R3→R1,。,UMULL R0,,,R1,,,R2,,,R3,該指令完成,R2×R3,,乘積高,32,位放,R1,,低,32,位放,R0,。,SMLALLES R6,,,R7,,,R8,,,R9,這是一條有條件執(zhí)行的指令,實現(xiàn),R8,與,R9,相乘得到,64,位的積,再加上,R7 R6,連到一起的

40、,64,位,相加后的,64,位結(jié)果放在,R7 R6,中。該指令執(zhí)行結(jié)果還將影響標志位。,,4),轉(zhuǎn)移指令,ARM,的轉(zhuǎn)移指令有如表,8.9,所示的,4,種。,B,及,BL,指令的語法格式為:,B{L}{},表,8.9 ARM,的轉(zhuǎn)移指令,其中:   有,L,,規(guī)定將當前的,PC,值,(,該指令的下一條指令的地址,),保存在,R14(LR),寄存器中;無,L,則不保存此,PC,值。該指令可帶有前表,8.4,所列的條件,就構(gòu)成了條件轉(zhuǎn)移指令。   指令中給出轉(zhuǎn)移的目標地址,,,實際轉(zhuǎn)移范圍如前所述,大致在,±32?MB,之間。   由于,BL,保存返回地址,因此它可以用于子程序調(diào)用。,BL

41、X,指令有兩種語法格式:,BLX {}Rm,,BLX label,執(zhí)行上述指令,首先將該指令下一條指令的地址,(,返回地址,),存入,R14,;而后轉(zhuǎn)移到由,Rm,所指定的絕對地址上或由,label,所決定的相對地址上去執(zhí)行。   值得注意的是:若,Rm,的最低有效位為,1(,即,bit0?=?1),,或者使用了,BLX ?label,形式的指令,則將,ARM,切換到,Thumb,指令集上去執(zhí)行。,BX,指令可使程序產(chǎn)生轉(zhuǎn)移,也可使,ARM,切換到,Thumb,指令集上去執(zhí)行。其格式為,BX {}Rm,該指令使,ARM,轉(zhuǎn)移到,Rm,的內(nèi)容所規(guī)定的地址上執(zhí)行。,Rm,的最低位不用作地

42、址,(32,位指令地址最低,2,位總為,0,;而,16,位指令地址最低位總為,0),。當最低位為,1,時,則將,ARM,切換到,Thumb,指令集上去執(zhí)行。當,Rm,的最低位為,0,時,則其第,1,位,(,即,bit1),不能為,1,。因為此時轉(zhuǎn)移地址上執(zhí)行的仍然是,32,位指令。,,5)? ARM,協(xié)處理器指令,ARM,支持,16,個協(xié)處理器,(CP,0,~,CP,15,),,在執(zhí)行程序過程中,每一個協(xié)處理器只執(zhí)行與自己有關(guān)的指令。當協(xié)處理器不能執(zhí)行屬于該處理器的指令時,會產(chǎn)生未定義指令異常。協(xié)處理器指令有,5,條,如表,8.10,所示。,表,8.10 ARM,的協(xié)處理器指令,指令,CDP

43、,的語法格式為:,CDP{},,,,,,,,,,,,,,,{},其中:,,為指令執(zhí)行的條件,也就是說該指令是可以帶條件的,也可以無條件;,,為協(xié)處理器的編號;,,為協(xié)處理器將要執(zhí)行的第,1,個操作碼;,,為可選協(xié)處理器將要執(zhí)行的第,2,個操作碼;,,均為協(xié)處理器寄存器。,指令,MCR,的格式如下:,MCR{},,,,,,,,,,,,,,,{},格式中各部分的解釋同上,其中,Rd,為,ARM,的寄存器,其內(nèi)容將被傳送到協(xié)處理器的寄存器中。例如:,MCR p14,,,3,,,R7,,,c7,,,c11,,,6,該指令是將,ARM,的,R7,傳送到協(xié)處理器,CP14,的寄存器,C7,和,C11,中

44、,操作碼,1,和,2,分別為,3,和,6,。,,6),其他指令,ARM,處理器還有許多指令,下面將一些常用的指令列于表,8.11,中,并說明如下。,表,8.11 ARM,的一些其他指令,指令,MRS,的格式為,MRS {},,,,由指令格式可以看到,該指令可以有條件也可以無條件執(zhí)行;,Rd,為目標寄存器;,PSR,可以是,CPSR,也可以是,SPSR,,由指令決定。例如,指令,MRS R3,,,SPSR,該指令將當前模式下的,SPSR,的內(nèi)容傳送到寄存器,R3,中。 指令,MSR,的格式為,MSR {}_,,,,,MSR {}_,,,,其中:,{},為可選的條件項。,,為,CPSR,

45、或,SPSR,。,舉例如下:,SWP R1,,,R2,,,[R3],該指令從,R3,的內(nèi)容為地址的內(nèi)存單元中讀出數(shù)據(jù)放入,R1,中,同時將,R2,的內(nèi)容存入該內(nèi)存單元中。   軟件中斷指令,SWI,和斷點中斷指令,BKPT,的執(zhí)行過程將在后面再作說明。   以上對,ARM,處理器的主要指令做了最簡單的介紹,以期使讀者對指令系統(tǒng)能大致了解。至于,16,位的,Thumb,指令,此處不再說明。,8.2.4 ARM,的異常中斷處理,1)? ARM,異常的種類   異常是由處理器內(nèi)部或外部產(chǎn)生的引起處理器處理的一個事件。在概念上,它與前面,80X86,中的異常非常類似。,ARM,支持,7,種異常,

46、各種異常的類型以及處理這些異常的處理程序的起始地址如表,8.12,所示。,表,8.12 ARM,的異常及其處理程序的起始地址,在,ARM,中,可以配置上述異常的處理程序的起始地址,(,異常中斷向量,),為正常地址或高向量地址。,ARM,的異常規(guī)定了不同的優(yōu)先級,優(yōu)先級序號小的優(yōu)先級高,而序號大的優(yōu)先級低。,2) ?ARM,處理器的異常中斷響應過程   從應用的角度出發(fā),我們認為異常,(,尤其是,irq,和,fiq),對將來的應用十分重要,下面將逐一加以說明。,● 復位   一旦復位啟動,(,復位有效再變?yōu)闊o效,),,,ARM,處理器立刻停止執(zhí)行指令,并開始執(zhí)行下列操作:,R14,不確定,SP

47、SR,不確定,CPSR[4:0]?=?0b10011,——,即進入特權(quán)模式,CPSR[5]?=?0,——,使,T=0,,進入,ARM,狀態(tài),CPSR[6]?=?1,——,使,F=1,,禁止,fiq,中斷,CPSR[7]?=?1,——,使,I=1,,禁止,irq,中斷,如果配置為正常地址,則,PC=0X00000000,;若為高向量地址,則,PC=0XFFFF0000,。   這樣一來,一旦復位啟動,ARM,,它永遠都會從規(guī)定的配置地址開始執(zhí)行。,● 未定義指令異常   當,ARM,執(zhí)行未定義的指令,或者在執(zhí)行協(xié)處理器指令時未能收到協(xié)處理器的響應時,均會產(chǎn)生未定義指令異常。一旦異常發(fā)生,,ARM

48、,將執(zhí)行下面的一系列操作:,R14_und?=,該未定義指令的下一條指令的地址,SPSR_und?=?CPSR,,CPSR[4:0]?=?0b11011,——,即進入未定義模式,CPSR[5]?=?0,——,使,T=0,,進入,ARM,狀態(tài),CPSR[6]?=,不改變,CPSR[7]?=?1,——,使,I=1,,禁止,irq,中斷,如果配置為正常地址,則,PC?=?0X00000004,;若為高向量地址,則,PC?=?0XFFFF0004,。   從上述過程可以看到,當執(zhí)行一條未定義指令時,會產(chǎn)生未定義異常,響應中將其下一條指令的地址保存在,R14_und,中,并且將,CPSR,的內(nèi)容放在,S

49、PSR_und,中。修改,CPSR,,進入未定義模式。然后轉(zhuǎn)向未定義異常處理程序的首地址,0X00000004(,或者,0XFFFF0004),。其示意圖如圖,8.7,所示。,圖,8.7,未定義異常響應、處理及返回過程,在,ARM,響應未定義異常時,處理器自動保護下一條指令的地址,(,即該未定義指令所對應的,PC,再加,4),和當時的,CPSR,。在處理程序結(jié)束時,利用一條,MOVS PC,,,R14,指令便可以恢復,CPSR,并返回主程序執(zhí)行。,● 軟件中斷指令,SWI,當,ARM,執(zhí)行軟件中斷指令,SWI,時,,ARM,會自動完成如下操作:,R14_svc?=,該未定義指令的下一條指令的

50、地址,SPSR_svc?=?CPSR,,CPSR[4:0]?=?0b10011,——,即進入特權(quán)模式,CPSR[5]?=?0,——,使,T=0,,進入,ARM,狀態(tài),CPSR[6]?=,不改變,CPSR[7]?=?1,——,使,I=1,,禁止,irq,中斷   如果配置為正常地址,則,PC?=?0X00000008,;若為高向量地址,則,PC?=?0XFFFF0008,。   軟件中斷的響應、處理及返回過程可用圖,8.8,來描述。,圖,8.8 SWI,指令的響應、處理及返回過程,由圖,8.8,可以看到,當,ARM,執(zhí)行,SWI,指令時,首先將其下一條指令的地址,(,即,SWI,指令所對應的,

51、PC,再加上,4),保存在,R14,中,并將當時的,CPSR,保存在,SPSR_svc,中。修改,CPSR,的部分內(nèi)容:進入特權(quán)模式、禁止,irq,、使工作于,ARM,狀態(tài),然后轉(zhuǎn)向軟件服務程序的首地址,0X00000008(,或,0XFFFF0008),,開始執(zhí)行軟件中斷服務程序。   同樣,在處理程序結(jié)束時,利用一條,MOVS PC, R14,指令便可以恢復,CPSR,并返回主程序執(zhí)行。,● 預取中止異常   在指令預取時,若目標地址是非法的,則存儲器系統(tǒng)發(fā)出標記信號,使所取指令無效,若,ARM,執(zhí)行該無效指令就會產(chǎn)生預取中止異常。當,ARM,執(zhí)行斷點中斷指令時,也會發(fā)生預取中止異常。,

52、ARM,響應預取中止異常的過程如下:,R14_abt?=,該未定義指令的下一條指令的地址,(,中止指令的,PC+4),,SPSR_abt?=?CPSR,,CPSR[4:0]?=?0b10111,——,即進入特權(quán)模式,CPSR[5]?=?0,——,使,T?=?0,,進入,ARM,狀態(tài),CPSR[6]?=,不改變,CPSR[7]?=?1,——,使,I?=?1,,禁止,irq,中斷   如果配置為正常地址,則,PC?=?0X0000000C,;若為高向量地址,則,PC?=?0XFFFF000C,。   圖,8.9,描述了預取中止異常響應處理及返回的過程。,圖,8.9,預取中止異常的響應、處理及返回過

53、程,在圖,8.9,中,由處理程序返回時,若要回到預取中止指令,(,或,BKPT),上執(zhí)行,就用,SUBS PC, R14, #4,指令。因為在響應時,,R14,中保存的是,PC?+?4,的值,(,指向預取中止指令的下一條指令,),,所以必須先將其值減,4,再送到,PC,中。若要返回到預取中止指令的下一條指令,就用,MOVS PC, R14,指令,如圖,8.9,中虛線所示。,● 數(shù)據(jù)中止異常   當執(zhí)行存儲器數(shù)據(jù)訪問指令時,由存儲器系統(tǒng)發(fā)出中止信號,使訪問數(shù)據(jù)無效,則可產(chǎn)生數(shù)據(jù)中止異常。其響應過程如下:,R14_abt?=,該未定義指令的下一條指令的地址,+?4(,或中止指令的,PC?+?8

54、),,SPSR_abt?=?CPSR,,CPSR[4:0]?=?0b10111,——,即進入特權(quán)模式,CPSR[5]?=?0,——,使,T=0,,進入,ARM,狀態(tài),,CPSR[6]?=,不改變,CPSR[7]?=?1,——,使,I?=?1,,禁止,irq,中斷   如果配置為正常地址,則,PC?=?0X00000010,;若為高向量地址,則,PC?=?0XFFFF0010,。   圖,8.10,描述了數(shù)據(jù)中止異常響應處理及返回的過程。,圖,8.10,數(shù)據(jù)中止異常的響應、處理及返回過程,在圖,8.10,中,由處理程序返回時,若要回到數(shù)據(jù)中止指令上執(zhí)行,就用,SUBS PC, R14, #8,

55、指令。因為在響應時,,R14,中保存的是,PC?+?8,的值,(,指向數(shù)據(jù)中止指令地址加,8),。所以,若要返回到數(shù)據(jù)中止指令,則必須將,R14?-8,的值放,PC,。若要使程序返回到數(shù)據(jù)中止指令的下一條指令,就用,SUBS PC, R14,,,#4,指令,如圖,8.10,中虛線所示。,● 一般中斷請求,irq,如同,80X86,一樣,,ARM,是在一條指令結(jié)束時查詢有無中斷請 求,(irq,和,fiq),發(fā)生的。對一般中斷請求,irq,的響應過程執(zhí)行如下操作:,R14_irq?=,執(zhí)行指令的下一條指令的地址,+?4(,或中斷發(fā)生時指令的,PC?+?8),,SPSR_irq?=?CPSR,,

56、CPSR[4:0]?=?0b10010,——,即進入,irq,模式,CPSR[5]?=?0,——,使,T=0,,進入,ARM,狀態(tài),CPSR[6]?=,不改變,CPSR[7]?=?1,——,使,I?=?1,,禁止,irq,中斷,如果配置為正常地址,則,PC?=?0X00000018,;若為高向量地址,則,PC?=?0XFFFF0018,。   上述,irq,的響應過程及處理與返回的過程如圖,8.11,所示。 由圖,8.11,可以看到,在,ARM,響應,irq,時,在,R14(LR),中保存的是發(fā)生,irq,時正在執(zhí)行指令的地址,也就是它所對應的,PC,再加,8,,這是由,ARM,的流水線結(jié)構(gòu)所

57、決定的,見圖,8.11,箭頭所示。,圖,8.11 irq,的響應、處理及返回過程,中斷響應過程中會對,irq,關(guān)中斷,正如本書前面提到的,如果中斷服務程序是允許嵌套的,則需要在服務程序中修改,CPSR[7],,使之為,0,。   由圖,8.11,還需注意到,中斷返回必須返回到發(fā)生,irq,請求時那條指令的下一條指令上執(zhí)行。因此,返回指令必須做到這一點,故使用,SUBS PC, R14, #4,指令。,● 快速中斷請求,fiq,,ARM,對快速中斷請求,fiq,的響應與,irq,非常類似,但,fiq,的優(yōu)先級比,irq,的優(yōu)先級高。,ARM,對快速中斷請求,fiq,的響應過程如下:,R14_

58、fiq?=,執(zhí)行指令的下一條指令的地址,+?4(,或中斷發(fā)生時指令的,PC?+?8),,SPSR_fiq?=?CPSR CPSR[4:0]?=?0b10001,——,即進入,IRQ,模式,,CPSR[5]?=?0,——,使,T=0,,進入,ARM,狀態(tài),CPSR[6]?=?1,——,使,F=1,,禁止,fiq,中斷,CPSR[7]?=?1,——,使,I=1,,禁止,irq,中斷   如果配置為正常地址,則,PC?=?0X0000001C,;若為高向量地址,則,PC?=?0XFFFF001C,。,ARM,對,fiq,的響應過程及處理與返回與,irq,十分相似,其示意圖如圖,8.12,所示。,圖,

59、8.12 fiq,的響應、處理及返回過程,值得再次強調(diào)的是,中斷返回一定要回到發(fā)生中斷時正執(zhí)行指令的下一條指令上,只有這樣才可能接著中斷前的狀態(tài)繼續(xù)執(zhí)行主程序。   到此,我們對構(gòu)成,PXA27X,的核心處理器,ARM,做了最簡單的介紹,有關(guān)其他問題請讀者參看其他相關(guān)資料。,,8.3 Intel PXA27X,介紹,8.3.1 PXA27X,的結(jié)構(gòu),,由前面,PXA27X,的結(jié)構(gòu)圖,8.1,可以看到,其結(jié)構(gòu)是比較復雜的。一片,PXA27X,芯片主要包括如下一些功能部件及接口:,,,(1) ?Intel XScale,技術(shù):,,①,Intel XScale,微結(jié)構(gòu);,,② 協(xié)處理器。,,,

60、(2),電源管理部件。,(3),內(nèi)部存儲器。,(4),中斷控制器。,(5),操作系統(tǒng)定時器。,(6),脈沖寬度調(diào)制單元,(PWM),。,(7),實時鐘,(RTC),。,(8),通用輸入,/,輸出接口,(GPIO),。,(9),外部存儲器控制器。,(10) ?DMA,控制器。,(11),串行接口: ① 通同異步收,/,發(fā)器,(UART),; ② 快速紅外通信接口; ③,I2C,串行總線接口; ④,AC,’,97,立體聲接口; ⑤,I2S,音頻編譯碼接口; ⑥,USB,客戶,(,從屬,),端接口; ⑦,USB,主控制器端接口; ⑧ 同步串行接口,(SSP),。,(12),液晶顯示板,(LCD),控

61、制器。,(13) ?MM,卡、,SD,卡及,SDIO,卡控制器。,(14),存儲棒主控制器。,(15),靈活的可變鏈路接口,(MSL),。,(16),鍵盤接口。,(17),通用用戶鑒別模式接口。,(18),快速捕獲數(shù)字攝像頭接口。,(19),測試接口。,8.3.2 PXA27X,的內(nèi)部存儲器,從上一小節(jié)可以看到,,PXA27X,芯片結(jié)構(gòu)復雜,包含有多種功能部件和接口。由于篇幅的限制,從本小節(jié)開始,僅將其中的一部分予以說明,更多更詳細的細節(jié)讀者可參看,Intel,公司提供的技術(shù)資料。,,1,.概述,1),內(nèi)部存儲器特性,PXA27X,的芯片內(nèi)部集成有,256?KB,的內(nèi)部,SRAM,。這,25

62、6?KB,的存儲器分成,4,個體,每個存儲體為,64?KB,。,PXA27X,的這,4,個體的內(nèi)部存儲器可按體進行電源管理,從而達到最小的功率消耗。,,2),內(nèi)部存儲器的結(jié)構(gòu)框圖,PXA27X,的內(nèi)部存儲器結(jié)構(gòu)框圖如圖,8.13,所示。   由圖,8.13,可以看到,每一個存儲體都有自己的存取請求隊列。當存儲體正在被訪問時,新的存取請求就放在隊列中,一旦前面的存取結(jié)束,隊列中的請求立刻得到執(zhí)行。若存取請求時存儲體沒有工作,則請求直接響應,無須排隊。 圖,8.13,中的系統(tǒng)總線是指,PXA27X,內(nèi)部的系統(tǒng)總線,見前圖,8.1,。,在,PXA27X,內(nèi)部有非常復雜但功能又非常強大的電源管理。在內(nèi)

63、部存儲器中也設有電源管理模塊,以達到最低的功耗。,PXA27X,有六種電源模式,它們是:正常,(,運行及強力運行,),、空閑、深度空閑、備用、睡眠、深度睡眠。,PXA27X,的電源管理包括整塊芯片電源管理,也包括內(nèi)部存儲器的電源管理。對于內(nèi)部存儲器的電源管理,可用表,8.13,來說明。,圖,8.13 PXA27X,內(nèi)部存儲器結(jié)構(gòu),表,8.13,內(nèi)部存儲器的電源,,當,PXA27X,上電復位時,會將,PXA27X,電源管理的內(nèi)部存儲器模塊及內(nèi)部存儲體均置為運行模式。當,PXA27X,處理器進入睡眠狀態(tài)時,內(nèi)部存儲器的每一個存儲體的電源關(guān)斷,存儲體中存儲的所有信息將丟失。如果想保住信息,則需要事

64、先將,PXA27X,電源管理模塊中的寄存器,PSLR,的,[SL_RX],位置,1,。若,PXA27X,處理器進入深度睡眠狀態(tài),則內(nèi)部存儲器的每一個存儲體的電源均關(guān)斷,存儲體中存儲的所有信息都將丟失。,,2,.內(nèi)部存儲器地址,由于,256?KB,的內(nèi)部,SRAM,存儲器已經(jīng)集成在,PXA27X,芯片內(nèi)部,因此其地址是固定不變的。表,8.14,給出了內(nèi)部存儲器各存儲體的地址范圍。,表,8.14 PXA27X,芯片內(nèi)部存儲器的地址分配,在表,8.14,中,除了給出內(nèi)部存儲器的地址外,還說明有一些地址將保留為后續(xù)的芯片所用。,8.3.3 PXA27X,的外部存儲器控制器,PXA27X,可以在其芯

65、片外部連接各種存儲器,而且在它的內(nèi)部集成了外部存儲器的控制器,該控制器為使用者提供了所有的控制信號,這就使得使用者在附加外部存儲器時,連接外部存儲器非常容易,為用戶提供了方便。,,1,.概述,1),性能,PXA27X,的存儲器控制器為我們提供了如下一些主要性能:,(1) ?4,個區(qū)的,SDRAM,接口,每個區(qū)的容量一般為,64?MB,,最大為,256?MB,。因此,最大可連接的外部,SDRAM,可達,1?GB,。支持,SDRAM,,但工作電壓為,1.8?V,,工作頻率最高為,104?MHz,。,,(2),支持,6,個區(qū)的,SRAM,或閃速存儲器,每個區(qū)的容量為,64?MB,。同時,這,6,個區(qū)

66、中的,4,個區(qū)還可以接同步閃速存儲器。,(3),支持,PC,卡存儲器,設置有兩個插座信號。,(4),設置一個交替總線主控器來控制總線。,(5),支持,DMA,傳送。,,2),控制器提供的信號   如前所述,外部存儲器控制器提供了連接使用信號,這些信號主要有如下幾類:,(1),外部存儲器共享信號。外部存儲器共享信號如表,8.15,所示。,表,8.15,外部存儲器共享信號,,(2),與,SRAM,和,SDRAM,有關(guān)的信號。與,SRAM,和,SDRAM,有關(guān)的信號如表,8.16,所示。,(3),雜項信號。用于外部存儲器的雜項信號如表,8.17,所示。,表,8.16,與,SRAM,和,SDRAM,有關(guān)的信號,表,8.17,雜 項 信 號,,(4),用于交替總線主控制器的信號。用于交替總線主控制器的信號如表,8.18,所示。,(5) ?PC,卡接口信號。,PC,卡接口信號如表,8.19,所示。,表,8.18,交替總線主控制器信號,表,8.19 PC,卡接口信號,,3),存儲器控制器的配置圖,PXA27X,存儲器控制器的配置框圖如圖,8.14,所示。   由圖中可以看到,存儲器控制器所提供的接

展開閱讀全文
溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!