ARM嵌入式體系結(jié)構(gòu)與接口技術(shù)電子課件教案(完整版)_第1頁(yè)
ARM嵌入式體系結(jié)構(gòu)與接口技術(shù)電子課件教案(完整版)_第2頁(yè)
ARM嵌入式體系結(jié)構(gòu)與接口技術(shù)電子課件教案(完整版)_第3頁(yè)
ARM嵌入式體系結(jié)構(gòu)與接口技術(shù)電子課件教案(完整版)_第4頁(yè)
ARM嵌入式體系結(jié)構(gòu)與接口技術(shù)電子課件教案(完整版)_第5頁(yè)
已閱讀5頁(yè),還剩431頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

ARM嵌入式體系結(jié)構(gòu)與接口技術(shù)

2

第1章嵌入式系統(tǒng)根底知識(shí)第2章ARM技術(shù)概述第3章ARM的指令系統(tǒng)第4章ARM匯編語(yǔ)言程序設(shè)計(jì)第5章ARMRealviewMDK集成開發(fā)環(huán)境第6章GPIO編程第7章ARM異常中斷處理及編程第8章串行通信接口課程安排:3

第9章存儲(chǔ)器接口第10章定時(shí)器第11章A/D轉(zhuǎn)換器第12章LCD接口設(shè)計(jì)第13章溫度監(jiān)測(cè)儀開發(fā)實(shí)例課程安排:第1章嵌入式系統(tǒng)根底知識(shí)

5

1.1嵌入式系統(tǒng)概述1.2嵌入式系統(tǒng)的組成1.3嵌入式操作系統(tǒng)舉例1.4嵌入式系統(tǒng)開發(fā)概述1.5小結(jié)本章課程:6

1.1.1嵌入式系統(tǒng)簡(jiǎn)介計(jì)算機(jī)、通信、消費(fèi)電子的一體化趨勢(shì)嵌入式系統(tǒng)定義:嵌入式系統(tǒng)是指以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為根底,軟件硬件可剪裁,適應(yīng)應(yīng)用系統(tǒng),對(duì)功能、可靠性、本錢、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。三要素:嵌入性、專用性和計(jì)算機(jī)系統(tǒng)硬件+軟件硬件:由嵌入式微處理器、外圍硬件設(shè)備組成軟件:包括底層系統(tǒng)軟件和用戶應(yīng)用軟件嵌入式系統(tǒng)應(yīng)用領(lǐng)域:消費(fèi)電子、工業(yè)控制、網(wǎng)絡(luò)設(shè)備、醫(yī)療電子、軍事國(guó)防、航空航天1.1嵌入式系統(tǒng)概述7

1.1.2嵌入式系統(tǒng)的特點(diǎn)專用、軟硬件可剪裁可配置低功耗、高可靠性、高穩(wěn)定性軟件代碼短小精悍代碼可固化實(shí)時(shí)性弱交互性軟件開發(fā)需要專門的開發(fā)工具和開發(fā)環(huán)境要求開發(fā)、設(shè)計(jì)人員有較高的技能1.1嵌入式系統(tǒng)概述通用計(jì)算機(jī)與嵌入式系統(tǒng)比照特征通用計(jì)算機(jī)嵌入式系統(tǒng)形式和類型看得見的計(jì)算機(jī)。按其體系結(jié)構(gòu)、運(yùn)算速度和結(jié)構(gòu)規(guī)模等因素分為大、中、小型機(jī)和微機(jī)??床灰姷挠?jì)算機(jī)。形式多樣,應(yīng)用領(lǐng)域廣泛,按應(yīng)用來分。組成通用處理器、標(biāo)準(zhǔn)總線和外設(shè)。軟件和硬件相對(duì)獨(dú)立。面向應(yīng)用的嵌入式微處理器,總線和外部接口多集成在處理器內(nèi)部。軟件與硬件是緊密集成在一起的。開發(fā)方式開發(fā)平臺(tái)和運(yùn)行平臺(tái)都是通用計(jì)算機(jī)采用交叉開發(fā)方式,開發(fā)平臺(tái)一般是通用計(jì)算機(jī),運(yùn)行平臺(tái)是嵌入式系統(tǒng)。二次開發(fā)性應(yīng)用程序可重新編制大部分不能再編程9

1.1.3嵌入式系統(tǒng)的開展嵌入式系統(tǒng)開展的4個(gè)階段:以單芯片為核心的可編程控制器形式的系統(tǒng)以嵌入式CPU為根底、以簡(jiǎn)單操作系統(tǒng)為核心的嵌入式系統(tǒng)以嵌入式操作系統(tǒng)為標(biāo)志的嵌入式系統(tǒng)以Internet為標(biāo)志的嵌入式系統(tǒng)1.1嵌入式系統(tǒng)概述10

1.1.3嵌入式系統(tǒng)的開展未來嵌入式系統(tǒng)的開展趨勢(shì):小型化、智能化、網(wǎng)絡(luò)化、可視化多核技術(shù)的應(yīng)用低功耗〔節(jié)能〕、綠色環(huán)保云計(jì)算、可重構(gòu)、虛擬化等平臺(tái)化、標(biāo)準(zhǔn)化、系統(tǒng)可升級(jí),代碼可復(fù)用嵌入式系統(tǒng)軟件將逐漸PC化融合趨勢(shì)〔軟硬件融合,與互聯(lián)網(wǎng)融合〕平安性1.1嵌入式系統(tǒng)概述物聯(lián)網(wǎng)物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成局部。顧名思義,物聯(lián)網(wǎng)就是“物物相連的互聯(lián)網(wǎng)〞。這有兩層意思:第一,物聯(lián)網(wǎng)的核心和根底仍然是互聯(lián)網(wǎng),是在互聯(lián)網(wǎng)根底上的延伸和擴(kuò)展的網(wǎng)絡(luò);第二,其用戶端延伸和擴(kuò)展到了任何物體與物體之間,進(jìn)行信息交換和通信。物聯(lián)網(wǎng)的定義是:通過射頻識(shí)別〔RFID〕、紅外感應(yīng)器、全球定位系統(tǒng)、激光掃描器等信息傳感設(shè)備,按約定的協(xié)議,把任何物體與互聯(lián)網(wǎng)相連接,進(jìn)行信息交換和通信,以實(shí)現(xiàn)對(duì)物體的智能化識(shí)別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)。云計(jì)算云計(jì)算概念是由Google提出的,這是一個(gè)美麗的網(wǎng)絡(luò)應(yīng)用模式云計(jì)算旨在通過網(wǎng)絡(luò)把多個(gè)本錢相對(duì)較低的計(jì)算實(shí)體整合成一個(gè)具有強(qiáng)大計(jì)算能力的完美系統(tǒng),并借助先進(jìn)的商業(yè)模式把這強(qiáng)大的計(jì)算能力分布到終端用戶手中云計(jì)算的核心思想,是將大量用網(wǎng)絡(luò)連接的計(jì)算資源統(tǒng)一管理和調(diào)度,構(gòu)成一個(gè)計(jì)算資源池向用戶按需效勞。13

圖1-1嵌入式系統(tǒng)結(jié)構(gòu)簡(jiǎn)圖1.2嵌入式系統(tǒng)的組成14

1.2.1嵌入式系統(tǒng)硬件組成嵌入式處理器〔CPU〕是嵌入式系統(tǒng)的核心局部嵌入式處理器可以分為以下幾大類:嵌入式微處理器(ARM、PowerPC、MIPS等)嵌入式微控制器嵌入式DSP處理器SOPC〔可編程片上系統(tǒng)〕外圍設(shè)備存儲(chǔ)設(shè)備〔如RAM〔SRAM,DRAM)、Flash等〕通信設(shè)備〔如RS-232接口、SPI接口、以太網(wǎng)接口等〕顯示設(shè)備〔如顯示屏等〕1.2嵌入式系統(tǒng)的組成15

1.2.2嵌入式系統(tǒng)軟件組成圖1-2嵌入式系統(tǒng)軟件組成圖1.2嵌入式系統(tǒng)的組成16

1.3.1商業(yè)版嵌入式操作系統(tǒng)1、VxWorks美國(guó)WindRiver公司一種嵌入式實(shí)時(shí)操作系統(tǒng)〔RTOS〕在當(dāng)前市場(chǎng)占有率最高的嵌入式實(shí)時(shí)操作系統(tǒng)2、WindowsCE微軟是基于掌上型電腦類的電子設(shè)備操作系統(tǒng)具有模塊化、結(jié)構(gòu)化和基干Win32應(yīng)用程序接口以及與處理器無(wú)關(guān)等特點(diǎn)1.3嵌入式操作系統(tǒng)舉例17

1.3.2開源版嵌入式操作系統(tǒng)嵌入式Linux〔EmbeddedLinux〕具有低本錢、多種硬件平臺(tái)支持、優(yōu)異的性能和良好的網(wǎng)絡(luò)支持等優(yōu)點(diǎn)嵌入式Linux主要版本uCLinux、RT-Linux、Embedix、XLinux、PoketLinux、紅旗嵌入式Linux等1.3嵌入式操作系統(tǒng)舉例18

系統(tǒng)總體開發(fā)處理器選型,需要在本錢和性能上做出選擇開發(fā)環(huán)境的選擇,包括嵌入式操作系統(tǒng)的選擇以及開發(fā)工具的選擇等嵌入式硬件開發(fā)嵌入式軟件開發(fā)交叉編譯交叉調(diào)試軟件方式硬件方式1.4嵌入式系統(tǒng)開發(fā)概述19

1.4嵌入式系統(tǒng)開發(fā)概述嵌入式硬件根底知識(shí)〔補(bǔ)充〕嵌入式硬件開發(fā)流程芯片封裝知識(shí)簡(jiǎn)介嵌入式系統(tǒng)硬件開發(fā)流程主要分為三個(gè)階段:1、系統(tǒng)方案分析與設(shè)計(jì)2、PCB的仿真設(shè)計(jì)3、PCB的調(diào)試與測(cè)試1、系統(tǒng)方案分析與設(shè)計(jì)階段根據(jù)系統(tǒng)所要完成的功能,選擇適宜的處理器和外圍器件,完成系統(tǒng)的功能框圖設(shè)計(jì)〔1〕處理器的選擇處理性能資源功耗軟件支持工具技術(shù)資料〔芯片手冊(cè),設(shè)計(jì)指南、開發(fā)板〕貨源〔2〕外圍器件的選擇ARM芯片廠商AnalogDevices(ARM7/ARM9/Cortex-M3Family)

ADuC7019,ADuC7020,ADuC7021,ADuC7022,ADuC7024,ADuC7025,ADuC7026,ADuC7027,ADuC7032,ADuC7033,ADuC7128,ADuC7129Atmel(ARM7/ARM9/Cortex-M3Family)

AT91C140,AT91F40416,AT91F40816,AT91FR40162,AT91FR4042,AT91FR4081,AT91M40400,AT91M40800,AT91M40807,AT91M42800A,AT91M43300,AT91M55800A,AT91M63200,AT91R40008,AT91R40807,AT91RM3400,AT91SAM7S64,AT91SAM7SE256,AT91SAM7SE32,AT91SAM7SE512,AT91SAM7X128,AT91SAM7X256,AT91SAM7XC128,AT91SAM7XC256,AT91SAM9260,AT91SAM9261/3,AT91SAM9G20FreescaleSemiconductor(ARM7/ARM9/Cortex-M3Family)

MAC7101,MAC7104,MAC7105,MAC7106,MAC7111,MAC7112,MAC7114,MAC7115,MAC7116,MAC7121,MAC7122,MAC7124,MAC7125,MAC7126,MAC7131,MAC7134,MAC7135,MAC7136,MAC7141,MAC7142,MAC7144LuminaryMicro(ARM7/ARM9/Cortex-M3Family)

LM3S101,LM3S102,LM3S301,LM3S310,LM3S315,LM3S316,LM3S328,LM3S601,LM3S610,LM3S611,LM3S612,LM3S613,LM3S615,LM3S628,LM3S801,LM3S811,LM3S812,LM3S815,LM3S828NXP(foundedbyPhilips)(ARM7/ARM9/Cortex-M3Family)

LPC2101,LPC2102,LPC2103,LPC2104,LPC2105,LPC2106,LPC2114,LPC2119,LPC2124,LPC2129,LPC2131,LPC2132,LPC2134,LPC2136,LPC2138,LPC2141,LPC2142,LPC2144,LPC2146,LPC2148,LPC2194,LPC2210,LPC2212,LPC2214,LPC2220,LPC2290,LPC2292,LPC2294,LPC2364,LPC2366,,LPC2880,LPC2888,LPC3180OKI(ARM7/ARM9/Cortex-M3Family)

ML674000,ML674001,ML674002,ML674003,ML675001,ML675002,ML675003,ML67Q4050,ML67Q4051,ML67Q4060,ML67Q4061,ML696201,ML69Q6203Samsung(ARM7/ARM9/Cortex-M3Family)

S3C2410A,S3C2440A,S3C44B0X,S3C4510B,S5PC210

Sharp(ARM7/ARM9/Cortex-M3Family)

LH75400,LH75401,LH75410,LH75411STMicroelectronics(ARM7/ARM9/Cortex-M3Family)

STR710FZ1,STR710FZ2,STR711FR0,STR711FR1,STR711FR2,STR712FR0,STR712FR1,STR712FR2,STR715FR0,STR755FV2,STR910FM32,STR910FW32,STR911FM42,STR911FM44,STR912FW42,STR912FW44,STM32系列TI(ARM7/ARM9/Cortex-M3Family)

TMS470R1A128,TMS470R1A256,TMS470R1A288,TMS470R1A384,TMS470R1A64,TMS470R1B1M,TMS470R1B512,TMS470R1B768,OMAP系列Intel的StrongARM和Xscale等一系列的產(chǎn)品

:PXA250,PXA210PXA2500等2、PCB設(shè)計(jì)仿真階段需要在EDA仿真設(shè)計(jì)平臺(tái)下,設(shè)計(jì)系統(tǒng)原理圖及PCB,并對(duì)PCB板上的信號(hào)完整性、EMI等進(jìn)行仿真,根據(jù)仿真結(jié)果來對(duì)PCB進(jìn)行合理的布局布線調(diào)整,完成PCB的設(shè)計(jì)

原理圖PCB圖3、PCB的加工、測(cè)試對(duì)加工完成的PCB進(jìn)行器件焊接、調(diào)試和測(cè)試,完成整個(gè)系統(tǒng)硬件的設(shè)計(jì)

印制電路板設(shè)計(jì)軟件——ProtelProtel(AltiumDesigner)是流行的PCB設(shè)計(jì)工具之一,大多數(shù)PCB生產(chǎn)廠家都接受Protel設(shè)計(jì)格式的PCB文件。Protel根本上包括以下5大功能:

原理圖設(shè)計(jì)

PCB設(shè)計(jì)

自動(dòng)布線

可編程邏輯器件〔PLD〕設(shè)計(jì)

電路仿真器件設(shè)計(jì)更專業(yè)的PCB設(shè)計(jì)軟件:CandenceAllegro單面板與多層板單面板

用一塊板子作為根底,在板上規(guī)劃元件的布局,確定元件的接點(diǎn),使用接線柱做接點(diǎn),用導(dǎo)線把接點(diǎn)按電路要求進(jìn)行連接。在板的一面布線,另一面裝元件。雙面板

在電路板的兩面都有布線。為了使用兩面的導(dǎo)線,必須要在兩面間有適當(dāng)?shù)碾娐愤B接才行。這種電路間的橋梁叫做過孔。過孔是在PCB上,充滿或涂上金屬的小洞,它可以與兩面的導(dǎo)線相連接。多層板

多層板使用數(shù)片雙面板,并在每層板間放進(jìn)一層絕緣層后壓合。板子的層數(shù)就代表了有幾層獨(dú)立的布線層。在多層板PCB中,除了布置信號(hào)線的信號(hào)層外,有的層整層都直接連接地線或電源,我們稱之為地線層或電源層。印制電路板設(shè)計(jì)的本卷須知通常在設(shè)計(jì)印制電路板時(shí),需要遵循以下設(shè)計(jì)原那么:1.減少電源帶來的噪聲2.元器件布置要合理分區(qū)3.元器件布局及走線方向盡可能合理4.注意印刷線路板與元器件的高頻特性芯片封裝知識(shí)簡(jiǎn)介芯片封裝安裝半導(dǎo)體集成電路芯片用的外殼安放、固定、密封、保持芯片和增強(qiáng)電熱性能內(nèi)部芯片與外部電路的連接電阻電阻的封裝尺寸主要決定于其額定功率及工作電壓等級(jí),這兩項(xiàng)指標(biāo)的數(shù)值越大,電阻的體積就越大,電阻常見的封裝有通孔式和貼片式兩類,如下圖。常見的二極管的尺寸大小主要取決于額定電流和額定電壓,從微小的貼片式、玻璃封裝、塑料封裝到大功率的金屬封裝,尺寸相差很大,如下圖。二極管

電容電容主要參數(shù)為容量及耐壓,對(duì)于同類電容,體積隨著容量和耐壓的增大而增大,常見的外觀為圓柱形、扁平形和方形,常用的封裝有通孔式和貼片式,電容的外觀如下圖。三極管/場(chǎng)效應(yīng)管/可控硅三極管/場(chǎng)效應(yīng)管/可控硅同屬于三引腳晶體管,外形尺寸與器件的額定功率、耐壓等級(jí)及工作電流有關(guān),常用的封裝有通孔式和貼片式,常見外觀如下圖。集成電路集成電路是線路設(shè)計(jì)中常用的一類元件,品種豐富、封裝形式也多種多樣。介紹幾種常用的封裝。

①DIP〔雙列直插式封裝〕DIP為目前最普及的集成塊封裝形式,引腳從封裝兩側(cè)引出,貫穿PCB,在底層進(jìn)行焊接,封裝材料有塑料和陶瓷兩種。制作時(shí)應(yīng)注意引腳數(shù)、同一列引腳的間距及兩排引腳間的間距等,圖示為DIP元件外觀和封裝圖。②SIP〔單列直插式封裝〕SIP封裝的引腳從封裝的一側(cè)引出,排列成一條直線,一般引腳中心間距100mils,引腳數(shù)2~23,封裝名一般為SIP*,圖示為SIP元件外觀和封裝圖。③SOP〔雙列小貼片封裝,也稱SOIC〕SOP是一種貼片的雙列封裝形式,引腳從封裝兩側(cè)引出,呈L字形,封裝名一般為SO-*、SOJ-*等。幾乎每一種DIP封裝的芯片均有對(duì)應(yīng)的SOP封裝,與DIP封裝相比,SOP封裝的芯片體積大大減少,圖示為SOP元件外觀與封裝圖。④PGA〔引腳柵格陣列封裝〕、SPGA〔錯(cuò)列引腳柵格陣列封裝〕PGA是一種傳統(tǒng)的封裝形式,其引腳從芯片底部垂直引出,且整齊地分布在芯片四周,早期的80X86CPU均是這種封裝形式。SPGA與PGA封裝相似,區(qū)別在于其引腳排列方式為錯(cuò)開排列,利于引腳出線,封裝名一般為PGA*,圖示為PGA元件外觀及PGA、SPGA封裝圖。⑤PLCC〔無(wú)引出腳芯片封裝〕PLCC是一種貼片式封裝,這種封裝的芯片的引腳在芯片的底部向內(nèi)彎曲,緊貼于芯片體,從芯片頂部看下去,幾乎看不到引腳,如下圖,封裝名一般為PLCC*。這種封裝方式節(jié)省了制板空間,但焊接困難,需要采用回流焊工藝,要使用專用設(shè)備。⑥QUAD〔方形貼片封裝〕QUAD為方形貼片封裝,與LCC封裝類似,但其引腳沒有向內(nèi)彎曲,而是向外伸展,焊接比較方便。封裝主要包括PQFP*、TQFP*及CQFP*等,如圖示。⑦BGA〔球形柵格陣列封裝〕BGA為球形柵格陣列封裝,與PGA類似,主要區(qū)別在于這種封裝中的引腳只是一個(gè)焊錫球狀,焊接時(shí)熔化在焊盤上,無(wú)需打孔,如下圖。BGA封裝主要包括BGA*、FBGA*、E-BGA*、S-BGA*及R-BGA*等。42

嵌入式系統(tǒng)的定義嵌入式系統(tǒng)的特點(diǎn)嵌入式系統(tǒng)的組成〔硬件+軟件,分別組成?〕嵌入式操作系統(tǒng),商業(yè)版?嵌入式系統(tǒng)開發(fā)流程補(bǔ)充:嵌入式硬件根底知識(shí)1.5小結(jié)43

什么是嵌入式系統(tǒng)?列舉出幾個(gè)你身邊熟悉的嵌入式系統(tǒng)的產(chǎn)品。嵌入式系統(tǒng)的三要素是什么?嵌入式系統(tǒng)由哪幾局部組成?列舉出3種你知道的嵌入式操作系統(tǒng)?簡(jiǎn)述嵌入式系統(tǒng)的特點(diǎn)?1.6思考與練習(xí)

第2章ARM技術(shù)概述

2.1ARM體系結(jié)構(gòu)的技術(shù)特征及開展什么是ARM?2.1ARM體系結(jié)構(gòu)的技術(shù)特征及開展ARM是一個(gè)公司的名字ARM代表一項(xiàng)技術(shù)ARM是一類微處理器的統(tǒng)稱三層含義:第一片ARM處理器是1985年4月在位于英國(guó)劍橋的AcornComputer公司開發(fā)出來ARM公司成立于1990年11月12名員工,英國(guó)劍橋ARM公司的英文全稱為AdvancedRISCMachines主要設(shè)計(jì)RISC系列處理器內(nèi)核ARM公司在全球擁有超過1700員工到目前為止已銷售了超過150億枚基于ARM的芯片

2.1ARM體系結(jié)構(gòu)的技術(shù)特征及開展2.1.1ARM公司簡(jiǎn)介

ARMOfficesWorldwideEnglandCambridge,Maidenhead,Sheffield,BlackburnGermanyMunich FranceParis,SophiaAntipolisKoreaSeoulUSSeattle,LosGatos,WalnutCreek,Austin,Boston,SanDiegoChinaTaiwanandShanghaiJapanShin-Yokohama(Tokyo)將技術(shù)授權(quán)給其它芯片廠商形成各具特色的ARM芯片

ARM營(yíng)銷模式ARM合作伙伴ARM占據(jù)了32位RISC微處理器80%以上的市場(chǎng)份額51

2.1.2ARM技術(shù)特征ARM處理器有如下特點(diǎn):?體積小、低功耗、低本錢、高性能?支持Thumb〔16位〕/ARM〔32位〕雙指令集,能很好的兼容8位/16位器件?大量使用存放器,指令執(zhí)行速度更快?大多數(shù)數(shù)據(jù)操作都在存放器中完成?尋址方式靈活簡(jiǎn)單,執(zhí)行效率高?指令長(zhǎng)度固定2.1ARM體系結(jié)構(gòu)的技術(shù)特征及開展52

RISC和CISC之間主要的區(qū)別2.1ARM體系結(jié)構(gòu)的技術(shù)特征及開展SA-110ARM7TDMI4T1Halfwordandsignedhalfword/bytesupportSystemmodeThumbinstructionset24ARM9TDMISA-1110ARM720TARM940TImprovedARM/ThumbInterworking5TESaturatedmathsDSPmultiply-accumulateinstructionsXScaleARM1020EARM9E-SARM966E-S3EarlyARMarchitecturesARM9EJ-S5TEJARM7EJ-SARM926EJ-SJazelleJavabytecode

execution6ARM1136EJ-SARM1026EJ-SSIMDInstructionsMulti-processingV6Memoryarchitecture(VMSA)Unaligneddatasupport2.1.3ARM體系結(jié)構(gòu)的開展ARM命名舉例核體系結(jié)構(gòu)ARM1V1ARM2V2ARM2aS,ARM3V2aARM6,ARM600,ARM610V3ARM7,ARM700,ARM710V3ARM7TDMI,ARM710T,ARM720TARM740TV4TStrongARM,ARM8,ARM810V4ARM9TDMI,ARM920T,ARM940TV4TARM9E-SV5TEARM10TDMI,ARM1020EV5TEARM11,ARM1156T2-S,ARM1156T2F-S,ARM1176JZ-S,ARM11JZF-SV6HLHLCortex系列處理器HLApplicationsProcessorMarketReal-TimeEmbeddedMarketMicrocontrollerMarketARM926EJ-SCortex-AARM11MPCoreARM1176JZ(F)-SARM1136J(F)-S600+MIPSUni-Proc2000+MIPSMulti-proc600+MIPSUni-Proc250+MIPSUni-ProcARM7TDMICortex-MARM968E-SARM946E-SARM1156T2(F)-SARM7TDMI600+MIPSUni-Proc150+MIPSUni-Proc100+MIPSUni-ProcCortexR600+MIPSUni-Proc756

ARM處理器的產(chǎn)品系列非常廣,包括ARM7、ARM9、ARM9E、ARM10E、ARM11和SecurCore、Cortex等2.2ARM微處理器簡(jiǎn)介ARM結(jié)構(gòu)的命名規(guī)那么ARM{X}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}x——系列〔ARM7ARM9ARM11等〕y——存儲(chǔ)管理/保護(hù)單元2:帶有MMU〔如ARM720T、ARM922T、ARM1020E〕4:帶有MPU、〔如ARM940T、ARM946EJ-S〕6:無(wú)MMU與MPU〔如ARM966EJ-S、ARM968EJ-S〕z——Cache〔0:標(biāo)準(zhǔn)Cache(4-128KB)2:減小的Cache6:可變的Cache〕T——Thumb16位譯碼器D——JTAG調(diào)試器M——快速乘法器E——增強(qiáng)DSP指令J——JazelleF——向量浮點(diǎn)單元S——可綜合版本,以源代碼形式提供58

ARM7ARM9ARM10ARM11流水線3級(jí)5級(jí)6級(jí)8級(jí)典型頻率MHz80150260335功耗mW/MHz0.060.19(+cache)0.5(+cache)0.4(+cache)性能MIPS/MHz0.971.11.31.2架構(gòu)馮諾伊曼哈佛哈佛哈佛ARM處理器〔核〕比較ARM720TARM922T馮諾依曼哈佛馮諾伊曼結(jié)構(gòu)與哈佛結(jié)構(gòu)的區(qū)別60

2.2.8Cortex處理器系列1、ARMCorteX-M3處理器技術(shù)特點(diǎn)Cortex-M3處理器為ARMCortex系列處理器CPU核心的第一款產(chǎn)品。此款處理器特別針對(duì)對(duì)價(jià)格敏感但又具備高系統(tǒng)效能需求的嵌入式應(yīng)用設(shè)計(jì),包括儀器儀表、汽車電子、家電及網(wǎng)絡(luò)裝置等應(yīng)用。典型產(chǎn)品:TI〔Luminary〕LMS3XX系列NXPLPC1XX系列STSTM32系列2.2ARM微處理器簡(jiǎn)介61

2、ARMCorteX-A8處理器技術(shù)特點(diǎn)Cortex-A8處理器基于ARMv7體系結(jié)構(gòu),能夠?qū)⑺俣葟?00MHz提高到1GHz以上??梢詽M足需要在300mW以下運(yùn)行的移動(dòng)設(shè)備的功率優(yōu)化要求。具有增強(qiáng)的多媒體處理能力。主要產(chǎn)品:TIOMAP3420Cortex-A8核600Mhz〔諾基亞N96〕OMAP3530Cortex-A8+DSPSamsungS5PC100,S5PC110,S5PC210(iPhone)3、ARMCorteX-A15最高主頻可達(dá)2.5G2.2ARM微處理器簡(jiǎn)介62

2.4.1ARM芯片選擇的一般原那么功能:處理器本身能夠支持的功能,如usb、網(wǎng)絡(luò)、串口、液晶顯示功能性能:從處理器的功耗、速度、穩(wěn)定可靠性等方面考慮價(jià)格:在完成功能要求的根底上,本錢越低越好熟悉程度及開發(fā)資源:操作系統(tǒng)支持:如果最終的程序需要運(yùn)行在操作系統(tǒng)上,那么還應(yīng)該考慮處理器對(duì)操作系統(tǒng)的支持升級(jí):盡量選擇具有相同封裝的不同性能等級(jí)的處理器;考慮產(chǎn)品未來可能增加的功能供貨穩(wěn)定:盡量選擇大廠家,比較通用的芯片2.4ARM微處理器的應(yīng)用選型63

2.4.2選擇一款適合學(xué)習(xí)的ARM芯片〔1〕ARM芯核如果希望學(xué)習(xí)使用WindowsCE或Linux等操作系統(tǒng),就需要選擇ARM720T以上帶有MMU〔MemoryManagementUnit〕功能的ARM芯片,ARM720T、ARM920T、ARM946T都帶有MMU功能。而ARM7TDMI沒有MMU,不支持WindowsCE和大局部的Linux;目前有uCLinux及l(fā)inux2.6內(nèi)核等Linux系統(tǒng)不需要MMU支持?!?〕系統(tǒng)時(shí)鐘控制器系統(tǒng)時(shí)鐘決定了ARM芯片的處理速度。ARM7的處理速度為0.97MIPS/MHz,常見的ARM7芯片系統(tǒng)主時(shí)鐘為20~133MHz,ARM9的處理速度為1.1MIPS/MHz,常見的ARM9的系統(tǒng)主時(shí)鐘為100~233MHz。ARM10、ARM11、CORTEX-A、CORTEX-R系列的系統(tǒng)主時(shí)鐘也越來越高?!?〕內(nèi)部存儲(chǔ)器容量在不需要大容量存儲(chǔ)器時(shí),可以考慮選用有內(nèi)置存儲(chǔ)器的ARM芯片。2.4ARM微處理器的應(yīng)用選型64

選擇一款適合學(xué)習(xí)的ARM芯片〔4〕USB接口許多ARM芯片內(nèi)置有USB控制器,有些芯片甚至同時(shí)有USBHost和USBSlave控制器?!?〕GPIO數(shù)量〔6〕中斷控制器ARM內(nèi)核只提供快速中斷〔FIQ〕和標(biāo)準(zhǔn)中斷〔IRQ〕兩個(gè)中斷向量。〔7〕IIS〔IntegrateInterfaceofSound〕接口即集成音頻接口。如果設(shè)計(jì)音頻應(yīng)用產(chǎn)品,IIS總線接口是必需的?!?〕RTC〔RealTimeClock〕很多ARM芯片都提供實(shí)時(shí)時(shí)鐘功能,但方式不同。2.4ARM微處理器的應(yīng)用選型65

選擇一款適合學(xué)習(xí)的ARM芯片〔9〕LCD控制器有些ARM芯片內(nèi)置LCD控制器,有的甚至內(nèi)置64KB彩色TFTLCD控制器?!?0〕PWM輸出有些ARM芯片有2~8路PWM輸出,可以用于電機(jī)控制或語(yǔ)音輸出等場(chǎng)合?!?1〕ADC和DAC有些ARM芯片內(nèi)置2~8通道8~12位通用ADC,可以用于電池檢測(cè)、觸摸屏和溫度監(jiān)測(cè)等〔12〕擴(kuò)展總線大局部ARM芯片具有外部SDRAM和SRAM擴(kuò)展接口〔13〕時(shí)鐘計(jì)數(shù)器和看門狗一般ARM芯片都具有2~4個(gè)16位或32位時(shí)鐘計(jì)數(shù)器和一個(gè)看門狗計(jì)數(shù)器。2.4ARM微處理器的應(yīng)用選型66

選擇一款適合學(xué)習(xí)的ARM芯片〔14〕電源管理功能ARM芯片的耗電量與工作頻率成正比,一般ARM芯片都有低功耗模式、睡眠模式和關(guān)閉模式?!?5〕DMA控制器有些ARM芯片內(nèi)部集成有DMA〔DirectMemoryAccess〕接口,可以和硬盤等外部設(shè)備高速交換數(shù)據(jù),同時(shí)減少數(shù)據(jù)交換時(shí)對(duì)CPU資源的占用。另外,還可以選擇的內(nèi)部功能部件有:EthernetMAC、VGAcontroller、DC-DC。可以選擇的內(nèi)置接口有:IIC、CAN、SPI、PCI、PCMCIA。(16)封裝類型ARM芯片現(xiàn)在主要的封裝有QFP、TQFP、PQFP、LQFP、BGA、LBGA等形式。本課程選取的是三星公司的S3C2410芯片,是一款基于ARM920T核心的微處理器芯片。2.4ARM微處理器的應(yīng)用選型67

ARM920T是一種高性能的32位單片系統(tǒng)處理器。它提供完善的高性能CPU子系統(tǒng):?ARM9TDMIRISC整數(shù)CPU?16-K字節(jié)指令與16-K字節(jié)數(shù)據(jù)緩存?指令和數(shù)據(jù)存儲(chǔ)器管理單元(MMU)?寫緩沖器?高級(jí)微處理器總線架構(gòu)(AMBA?)總線接口?ETM(內(nèi)置追蹤宏單元)接口ARM920T中的ARM9TDMI內(nèi)核是哈佛結(jié)構(gòu)的,有包括取指、譯碼、執(zhí)行、存儲(chǔ)及寫入的五級(jí)流水線。2.5ARM920T內(nèi)部功能及特點(diǎn)ARM920T結(jié)構(gòu)圖69

2.6.1ARM的根本數(shù)據(jù)類型ARM采用的是32位架構(gòu),根本數(shù)據(jù)類型有以下3種:?Byte:字節(jié),8bit。?Halfword:半字,16bit〔半字必須2字節(jié)邊界對(duì)齊〕?Word:字,32bit〔字必須于4字節(jié)邊界對(duì)齊〕。

2.6數(shù)據(jù)類型ARM存儲(chǔ)器組織結(jié)構(gòu),如右圖:長(zhǎng)度為1個(gè)字的數(shù)據(jù)項(xiàng)占用一組4字節(jié)的位置,該位置開始于4的倍數(shù)的地址〔地址最末兩位為00〕半字占有兩個(gè)字節(jié)的位置,該位置開始于偶數(shù)字節(jié)地址〔地址最末一位為0〕。70

2.6.3存儲(chǔ)器大/小端大端的數(shù)據(jù)存放格式低地址高地址地址A地址A+1地址A+2地址A+3worda=0xf6

73

4b

cdf6734bcd最高有效字節(jié)位于最低地址最高有效字節(jié)的地址就是該word的地址71

2.6.3存儲(chǔ)器大/小端小端的數(shù)據(jù)格式

低地址高地址地址A地址A+1地址A+2地址A+3最低有效字節(jié)的地址就是該word的地址最低有效字節(jié)位于最低地址worda=0xf6

73

4b

cdf6734bcd722.6.3存儲(chǔ)器大/小端

程序執(zhí)行前:r0=0x11223344r1=0x100執(zhí)行指令:STRr0,[r1]LDRBr2,[r1]執(zhí)行后:小端模式下:r2=0x44大端模式下:r2=0x11練習(xí)處理器模式說明備注用戶(usr)正常程序執(zhí)行模式不能直接切換到其它模式系統(tǒng)(sys)運(yùn)行操作系統(tǒng)的特權(quán)任務(wù)與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)模式系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入此模式中止(abt)預(yù)取終止時(shí)進(jìn)入,用于虛擬存儲(chǔ)和存儲(chǔ)保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式處理器支持7種模式2.7ARM920T內(nèi)核工作模式特權(quán)模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)的特權(quán)任務(wù)等與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)代碼系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存儲(chǔ)器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部存放器和一些片內(nèi)外設(shè)在硬件設(shè)計(jì)上只允許〔或者可選為只允許〕特權(quán)模式下訪問。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。未定義(und)中止(abt)管理(svc)中斷(irq)快中斷(fiq)系統(tǒng)(sys)異常模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)的特權(quán)任務(wù)等與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)代碼系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存儲(chǔ)器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式未定義(und)中止(abt)管理(svc)中斷(irq)快中斷(fiq)這五種模式稱為異常模式。它們除了可以通過程序切換進(jìn)入外,也可以由特定的異常進(jìn)入。當(dāng)特定的異常出現(xiàn)時(shí),處理器進(jìn)入相應(yīng)的模式。每種異常模式都有一些獨(dú)立的存放器,以防止異常退出時(shí)用戶模式的狀態(tài)不可靠。用戶和系統(tǒng)模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)的特權(quán)任務(wù)等與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)代碼系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存儲(chǔ)器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式這兩種模式都不能由異常進(jìn)入,而且它們使用完全相同的存放器組。系統(tǒng)模式是特權(quán)模式,不受用戶模式的限制。操作系統(tǒng)在該模式下訪問用戶模式的存放器就比較方便,而且操作系統(tǒng)的一些特權(quán)任務(wù)可以使用這個(gè)模式訪問一些受控的資源。系統(tǒng)(sys)用戶(usr)77

在ARM系統(tǒng)中,要實(shí)現(xiàn)對(duì)存儲(chǔ)系統(tǒng)的管理通常是使用協(xié)處理器CP15,它通常也被稱為系統(tǒng)控制協(xié)處理器〔SystemControlCoprocessor〕ARM的存儲(chǔ)器系統(tǒng)是由多級(jí)構(gòu)成的,可以分為:內(nèi)核級(jí)、芯片級(jí)、板卡級(jí)、外設(shè)級(jí)2.8ARM920T存儲(chǔ)系統(tǒng)78

2.8.1協(xié)處理器〔CP15〕ARM處理器支持16個(gè)協(xié)處理器。CP15,即通常所說的系統(tǒng)控制協(xié)處理器〔SystemControlCoprocesssor〕,它負(fù)責(zé)完成大局部的存儲(chǔ)系統(tǒng)管理。CP15包含16個(gè)32位存放器,其編號(hào)為0~15。2.8ARM920T存儲(chǔ)系統(tǒng)79

2.8.2存儲(chǔ)管理單元〔MMU〕MMU主要功能:〔1〕存儲(chǔ)保護(hù):使各個(gè)任務(wù)作為各自獨(dú)立的程序在其自己的私有存儲(chǔ)空間中運(yùn)行〔2〕地址映射:虛擬地址和物理地址的轉(zhuǎn)換2.8ARM920T存儲(chǔ)系統(tǒng)80

2.8.3高速緩沖存儲(chǔ)器〔Cache〕Cache是一個(gè)容量小但存取速度非??斓拇鎯?chǔ)器,它保存最近用到的存儲(chǔ)器數(shù)據(jù)副本。Cache能夠發(fā)揮作用是因?yàn)槌绦蚓哂芯植啃蕴匦?。所謂局部性就是指在任何特定的時(shí)間,處理器趨于對(duì)相同區(qū)域的數(shù)據(jù)〔如堆?!硨掖螆?zhí)行相同的指令〔如循環(huán)〕。2.8ARM920T存儲(chǔ)系統(tǒng)TCM〔緊耦合存儲(chǔ)器〕:為彌補(bǔ)Cache訪問的不確定性增加的存儲(chǔ)器,可有效提高實(shí)時(shí)性。81

2.9.1流水線的概念與原理2.9流水線非流水線執(zhí)行流水線執(zhí)行2.9流水線83

2.9.2流水線的分類1.3級(jí)流水線ARM組織到ARM7為止的ARM處理器使用簡(jiǎn)單的3級(jí)流水線,它包括以下流水線級(jí)。〔1〕取指令〔fetch〕:從存儲(chǔ)器裝載一條指令。〔2〕譯碼〔decode〕:識(shí)別被執(zhí)行的指令,并為下一個(gè)周期準(zhǔn)備數(shù)據(jù)通路的控制信號(hào)。在這一級(jí),指令占有譯碼邏輯,不占用數(shù)據(jù)通路。〔3〕執(zhí)行〔excute〕:處理指令并將結(jié)果寫回存放器。當(dāng)處理器執(zhí)行簡(jiǎn)單的數(shù)據(jù)處理指令時(shí),流水線使得平均每個(gè)時(shí)鐘周期能完成1條指令。但1條指令需要3個(gè)時(shí)鐘周期來完成。2.9流水線84

2.9.2流水線的分類2.5級(jí)流水線ARM組織在ARM9TDMI中使用了典型的5級(jí)流水線,5級(jí)流水線包括下面的流水線級(jí)〔1〕取指令〔fetch〕:從存儲(chǔ)器中取出指令,并將其放入指令流水線。〔2〕譯碼〔decode〕:指令被譯碼,從存放器堆中讀取存放器操作數(shù)。在存放器堆中有3個(gè)操作數(shù)讀端口,因此,大多數(shù)ARM指令能在1個(gè)周期內(nèi)讀取其操作數(shù)。〔3〕執(zhí)行〔execute〕:將其中1個(gè)操作數(shù)移位,并在ALU中產(chǎn)生結(jié)果。如果指令是Load或Store指令,那么在ALU中計(jì)算存儲(chǔ)器的地址。〔4〕緩沖/數(shù)據(jù)〔buffer/data〕:如果需要那么訪問數(shù)據(jù)存儲(chǔ)器,否那么ALU只是簡(jiǎn)單地緩沖1個(gè)時(shí)鐘周期?!?〕回寫〔write-back〕:將指令的結(jié)果回寫到存放器堆,包括任何從存放器讀出的數(shù)據(jù)。2.9流水線85

2.9.2流水線的分類3.6級(jí)流水線ARM組織在ARM10中,將流水線的級(jí)數(shù)增加到6級(jí),使系統(tǒng)的平均處理能力到達(dá)了1.3DMIPS/MHz。2.9流水線86

2.9.3影響流水線性能的因素1.互鎖在典型的程序處理過程中,經(jīng)常會(huì)遇到這樣的情形,即一條指令的結(jié)果被用作下一條指令的操作數(shù),如:有如下指令序列:LDRR0,[R2,#4]ADDR0,R0,R1;在5級(jí)流水線上產(chǎn)生互鎖從例子中可以看出,流水線的操作產(chǎn)生中斷,因?yàn)榈?條指令的結(jié)果在第2條指令取數(shù)時(shí)還沒有產(chǎn)生。第2條指令必須停止,直到結(jié)果產(chǎn)生為止。2.9流水線87

2.9.3影響流水線性能的因素2.跳轉(zhuǎn)指令跳轉(zhuǎn)指令也會(huì)破壞流水線的行為,因?yàn)楹罄m(xù)指令的取指步驟受到跳轉(zhuǎn)目標(biāo)計(jì)算的影響,因而必須推遲。但是,當(dāng)跳轉(zhuǎn)指令被譯碼時(shí),在它被確認(rèn)是跳轉(zhuǎn)指令之前,后續(xù)的取指操作已經(jīng)發(fā)生。這樣一來,已經(jīng)被預(yù)取進(jìn)入流水線的指令不得不被丟棄。2.9流水線88

ARM處理器有如下37個(gè)32位長(zhǎng)的存放器:〔1〕30個(gè)通用存放器;〔2〕6個(gè)狀態(tài)存放器:1個(gè)CPSR〔CurrentProgramStatusRegister,當(dāng)前程序狀態(tài)存放器〕,5個(gè)SPSR〔SavedProgramStatusRegister,備份程序狀態(tài)存放器〕;〔3〕1個(gè)PC〔ProgramCounter,程序計(jì)數(shù)器〕。ARM處理器共有7種不同的處理器模式,在每一種處理器模式中有一組相應(yīng)的存放器組。2.10存放器組織寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiq*R9(SB,v6)R9R9_fiq*R10(SL,v7)R10R10_fiq*R11(FP,v8)R11R11_fiq*R12(IP)R12R12_fiq*R13(SP)R13R13_svc*R13_abt*R13_und*R13_irq*R13_fiq*R14(LR)R14R14_svc*R14_abt*R14_und*R14_irq*R14_fiq*R15(PC)R15狀態(tài)寄存器R16(CPSR)CPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)各模式下的存放器寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)各模式下的存放器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37個(gè)存放器,分成兩大類:31個(gè)通用存放器〔含PC);6個(gè)狀態(tài)存放器。寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq無(wú)CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用戶無(wú)CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系統(tǒng)SPSR_svcCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定義SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中斷SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中斷ARM狀態(tài)各模式下可以訪問的存放器寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用存放器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0在匯編語(yǔ)言中存放器R0~R13為保存數(shù)據(jù)或地址值的通用存放器。它們是完全通用的存放器,不會(huì)被體系結(jié)構(gòu)作為特殊用途,并且可用于任何使用通用存放器的指令。寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用存放器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0其中R0~R7為未分組的存放器,也就是說對(duì)于任何處理器模式,這些存放器都對(duì)應(yīng)于相同的32位物理存放器。寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用存放器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8存放器R8~R14為分組存放器。它們所對(duì)應(yīng)的物理存放器取決于當(dāng)前的處理器模式,幾乎所有允許使用通用存放器的指令都允許使用分組存放器寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用存放器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8存放器R8~R12有兩個(gè)分組的物理存放器。一個(gè)用于除FIQ模式之外的所有存放器模式,另一個(gè)用于FIQ模式。這樣在發(fā)生FIQ中斷后,可以加速FIQ的處理速度。寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用存放器存放器R13、R14分別有6個(gè)分組的物理存放器。一個(gè)用于用戶和系統(tǒng)模式,其余5個(gè)分別用于5種異常模式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆棧指針存放器R13〔SP〕存放器R13常作為堆棧指針〔SP〕。在ARM指令集當(dāng)中,沒有以特殊方式使用R13的指令或其它功能,只是習(xí)慣上都這樣使用。但是在Thumb指令集中存在使用R13的指令。寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq鏈接存放器R14〔LR〕R14為鏈接存放器〔LR〕,在結(jié)構(gòu)上有兩個(gè)特殊功能:在每種模式下,模式自身的R14版本用于保存子程序返回地址;當(dāng)發(fā)生異常時(shí),將R14對(duì)應(yīng)的異常模式版本設(shè)置為異常返回地址〔有些異常有一個(gè)小的固定偏移量〕。Lable程序A程序BR14R14〔LR〕存放器與子程序調(diào)用BLLable地址A???MOVPC,LRR14(地址A)Lable???1.程序A執(zhí)行過程中調(diào)用程序B;操作流程2.程序跳轉(zhuǎn)至標(biāo)號(hào)Lable,執(zhí)行程序B。同時(shí)硬件將“BLLable〞指令的下一條指令所在地址存入R14〔LR〕;3.程序B執(zhí)行最后,將R14存放器的內(nèi)容放入PC,返回程序A;寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序計(jì)數(shù)器R15〔PC〕存放器R15為程序計(jì)數(shù)器〔PC〕,它指向正在取指的地址。寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq存放器CPSR為程序狀態(tài)存放器,在異常模式中,另外一個(gè)存放器“程序狀態(tài)備份存放器〔SPSR〕〞可以被訪問。每種異常都有自己的SPSR,在進(jìn)入異常時(shí)它保存CPSR的當(dāng)前值,異常退出時(shí)可通過它恢復(fù)CPSR。2.11程序狀態(tài)存放器102

CPSR存放器〔和保存它的SPSR存放器〕中的位分配如圖1.標(biāo)志位N〔Negative〕,Z〔Zero〕,C〔Carry〕和V〔oVerflow〕通稱為條件標(biāo)志位N位—符號(hào)位。如果結(jié)果為負(fù)數(shù),那么N=1;如果結(jié)果為正數(shù)或0,那么N=0Z位—如果指令的結(jié)果為0,那么置1〔通常用來表示比較的結(jié)果為“相等〞〕;否那么置0C位—表示運(yùn)算的進(jìn)位、借位等V位—益出標(biāo)志位2.11程序狀態(tài)存放器103

CPSR存放器〔和保存它的SPSR存放器〕中的位分配如圖2.Q標(biāo)志位在帶DSP指令擴(kuò)展的ARMv5及更高版本中,bit[27]被指定用于指示增強(qiáng)的DSP指令是否發(fā)生了溢出,因此也就被稱為Q標(biāo)志位。同樣,在SPSR中bit[27]也被稱為Q標(biāo)志位,用于在異常中斷發(fā)生時(shí)保存和恢復(fù)CPSR中的Q標(biāo)志位。在ARMv5以前的版本及ARMv5的非E系列處理器中,Q標(biāo)志位沒有被定義,屬于待擴(kuò)展的位。2.11程序狀態(tài)存放器104

3.控制位CPSR的低8位〔I、F、T及M[4∶0]〕統(tǒng)稱為控制位。〔1〕中斷禁止位:I

=

1,IRQ被禁止;F

=

1,F(xiàn)IQ被禁止〔2〕狀態(tài)控制位:T位是處理器的狀態(tài)控制位。T

=

0,處理器處于ARM狀態(tài)〔即正在執(zhí)行32位的ARM指令〕。T

=

1,處理器處于Thumb狀態(tài)〔即正在執(zhí)行16位的Thumb指令〕。當(dāng)然,T位只有在T系列的ARM處理器上才有效,在非T系列的ARM版本中,T位將始終為0。〔3〕模式控制位,M[4∶0]作為位模式控制位,這些位的組合確定了處理器處于哪種狀態(tài)。2.11程序狀態(tài)存放器105

S3C2410是著名的半導(dǎo)體公司SAMSUNG推出的一款32位RISC處理器,它為手持設(shè)備和一般類型的應(yīng)用提供了低價(jià)格、低功耗、高性能微控制器的解決方案。S3C2410的內(nèi)核基于ARM920T帶有MMU〔MemoryManagementUnit〕功能,主頻可達(dá)203MHz,適合于對(duì)本錢和功耗敏感的需求。同時(shí)它還采用了AMBA〔AdvancedMicrocontr-ollerBusArchitecture〕的新型總線結(jié)構(gòu),實(shí)現(xiàn)了MMU、AMBABUS、Harvard的高速緩沖體系結(jié)構(gòu)同時(shí)支持Thumb16位壓縮指令集,從而能以較小的存儲(chǔ)空間需求,獲得32位的系統(tǒng)性能。2.12三星S3C2410X處理器介紹106

〔1〕內(nèi)核工作電壓為1.8/2.0V,存儲(chǔ)器供電電壓為3.3V,外部I/O設(shè)備的供電電壓為3.3V;〔2〕16KB的指令Cache和16KB的數(shù)據(jù)Cache;〔3〕LCD控制器,最大可支持4K色STN和256色TFT;〔4〕4通道的DMA請(qǐng)求;〔5〕3通道的UART〔6〕2通道的USB〔Host/Slave〕;〔7〕4路PWM和1個(gè)內(nèi)部時(shí)鐘控制器;〔8〕117個(gè)通用I/O,24路外部中斷;〔9〕272PinFBGA封裝;〔10〕16位的看門狗定時(shí)器;〔11〕1通道的IIC/IIS控制器;〔12〕帶有PLL片上時(shí)鐘發(fā)生器。2.12三星S3C2410X處理器介紹107

S3C2410處理器支持大/小端模式存儲(chǔ)字?jǐn)?shù)據(jù),其尋址空間可達(dá)1GB,對(duì)于外部I/O設(shè)備的數(shù)據(jù)寬度可以是8/16/32位,所有的存儲(chǔ)器Bank〔共有8個(gè)〕都具有可編程的操作周期,而且支持各種ROM引導(dǎo)方式〔NOR/NandFlash、EEPROM等〕其結(jié)構(gòu)框圖如下圖2.12三星S3C2410X處理器介紹108

本章介紹了ARM處理器的一些關(guān)鍵技術(shù),如:ARM核的工作模式、存儲(chǔ)系統(tǒng)、流水線、存放器組織等。介紹了基于ARM920T核的處理器芯片S3C2410。2.13小結(jié)109

簡(jiǎn)述ARM可以工作的幾種模式ARM核有多少個(gè)存放器?R13通常用來存儲(chǔ)什么?哪種模式使用的存放器最少?CPSR的哪一位反映了處理器的狀態(tài)?2.14思考與練習(xí)

第3章ARM的指令系統(tǒng)

111

3.1ARM處理器的尋址方式3.2ARM處理器的指令集本章內(nèi)容:ARM指令集的特點(diǎn)向后兼容:新版本增加指令,并保持指令向后兼容;Load-store結(jié)構(gòu)*load/store–從存儲(chǔ)器中讀某個(gè)值,操作完后再將其放回存儲(chǔ)器中只對(duì)存放在存放器的數(shù)據(jù)進(jìn)行處理;對(duì)于存儲(chǔ)器中的數(shù)據(jù),只能使用load/store指令進(jìn)行存取條件執(zhí)行:所有指令都可條件執(zhí)行指令可以自己決定是否影響標(biāo)志位ARM指令可以通過添加適當(dāng)?shù)臈l件碼后綴來到達(dá)條件執(zhí)行的目的。這樣可以提高代碼密度,減少分支跳轉(zhuǎn)指令數(shù)目,提高性能。CMPr3,#0CMPr3,#0

BEQskipADDNEr0,r1,r2

ADDr0,r1,r2

skip默認(rèn)情況下,數(shù)據(jù)處理指令不影響程序狀態(tài)存放器的條件碼標(biāo)志位,但可以選擇通過添加“S〞來影響標(biāo)志位。CMP不需要增加“S〞就可改變相應(yīng)的標(biāo)志位。 loop

SUBSr1,r1,#1

BNEloop條件執(zhí)行及標(biāo)志位**如果Z標(biāo)志清零則跳轉(zhuǎn)R1減1,并設(shè)置標(biāo)志位條件執(zhí)行不帶條件ConditionCodes

不等于(Notequal) 無(wú)符號(hào)的大于或等于無(wú)符號(hào)的小于負(fù)數(shù)(Minus)等于(Equal)溢出(Overflow)沒溢出無(wú)符號(hào)的大于無(wú)符號(hào)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論