單片機(jī)與嵌入式系統(tǒng)第3章:ARM7體系結(jié)構(gòu)_第1頁
單片機(jī)與嵌入式系統(tǒng)第3章:ARM7體系結(jié)構(gòu)_第2頁
單片機(jī)與嵌入式系統(tǒng)第3章:ARM7體系結(jié)構(gòu)_第3頁
單片機(jī)與嵌入式系統(tǒng)第3章:ARM7體系結(jié)構(gòu)_第4頁
單片機(jī)與嵌入式系統(tǒng)第3章:ARM7體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩178頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章ARM7體系結(jié)構(gòu)《單片機(jī)與嵌入式系統(tǒng)》2024/1/62第3章ARM7體系結(jié)構(gòu)1.簡(jiǎn)介2.ARM7TDMI3.ARM7TDMI的模塊和內(nèi)部框圖4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型5.處理器狀態(tài)6.處理器模式7.內(nèi)部寄存器8.程序狀態(tài)寄存器2024/1/63第3章ARM7體系結(jié)構(gòu)9.異常10.中斷延遲11.復(fù)位12.存儲(chǔ)器及存儲(chǔ)器映射I/O13.尋址方式簡(jiǎn)介14.ARM7指令簡(jiǎn)介15.協(xié)處理器接口16.調(diào)試接口簡(jiǎn)介17.ETM接口簡(jiǎn)介2024/1/643.1ARM簡(jiǎn)介什么是ARMARM(AdvancedRISCMachines)有三種含義一個(gè)公司的名稱一類微處理器的統(tǒng)稱一種技術(shù)的名稱ARM公司是微處理器行業(yè)的一家知名企業(yè),設(shè)計(jì)了大量高性能、廉價(jià)、耗能低的RISC(ReducedInstructionSetComputing精簡(jiǎn)指令集計(jì)算機(jī)處理器)芯片。并開發(fā)了相關(guān)技術(shù)和軟件。ARM處理器具有性能高、成本低、能耗低的特點(diǎn),適用于嵌入式控制、消費(fèi)/教育類多媒體、DSP和移動(dòng)式應(yīng)用領(lǐng)域ARM公司的特點(diǎn)是只設(shè)計(jì)芯片,而不生產(chǎn)。它將技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和OEM(Origina-EquipmentManufacturer原始設(shè)備制造商)廠商,并提供服務(wù)。2024/1/653.1ARM簡(jiǎn)介ARM公司簡(jiǎn)介將技術(shù)授權(quán)給其它芯片廠商形成各具特色的ARM芯片...2024/1/663.1ARM簡(jiǎn)介ARM體系結(jié)構(gòu)的命名規(guī)則ARM體系結(jié)構(gòu)是CPU產(chǎn)品所使用的一種體系結(jié)構(gòu),ARM公司開發(fā)了一套擁有知識(shí)產(chǎn)權(quán)的RISC體系結(jié)構(gòu)的指令集,每個(gè)ARM處理器都有一個(gè)特定的指令集架構(gòu),而一個(gè)特定的指令集架構(gòu)又可以由多種處理器實(shí)現(xiàn)。特定的指令集架構(gòu)隨著嵌入式市場(chǎng)的發(fā)展而發(fā)展。由于所有產(chǎn)品均采用一個(gè)通用的軟件新體系,所以相同的軟件可在所有產(chǎn)品上運(yùn)行。ARM產(chǎn)品通產(chǎn)以ARM【x】【y】【z】【T】【D】【M】【I】【E】【J】【F】【-S】形式出現(xiàn)。2024/1/673.1ARM簡(jiǎn)介后綴變量含義x系列,如ARM7、ARM9y存儲(chǔ)管理、保護(hù)單元zCacheTThumb16位譯碼器DJTAG調(diào)試器M快速乘法器I嵌入式跟蹤宏單元E增強(qiáng)指令(基于TDMI)JJazelle加速F向量浮點(diǎn)單元S可綜合版本ARM【x】【y】【z】【T】【D】【M】【I】【E】【J】【F】【-S】2024/1/683.1ARM簡(jiǎn)介ARM體系結(jié)構(gòu)的命名規(guī)則附加要點(diǎn)ARM7TDMI之后的所有ARM內(nèi)核,即使“ARM”標(biāo)志后沒有包含“TDMI”字符,也都默認(rèn)包含了TDMI的功能特性。JTAG是由IEEE1149.1標(biāo)準(zhǔn)測(cè)試訪問端口和邊界掃描結(jié)構(gòu)來描述,它是ARM用來發(fā)送和接收處理器內(nèi)核與測(cè)試儀器之間調(diào)試信息的一系列協(xié)議。嵌入式ICE宏單元是建立在處理器內(nèi)部用來設(shè)置斷點(diǎn)和觀察點(diǎn)的調(diào)試軟件??删C合,即處理器內(nèi)核是以源代碼形式提供的。其源代碼形式可被編譯成一種易于EDA工具使用的形式。2024/1/693.1ARM簡(jiǎn)介ARM系列處理器ARM處理器當(dāng)前有6個(gè)系列ARM7、ARM9、ARM9E、ARM10E、ARM11、SecurCore,前4個(gè)是通用處理器合作伙伴還會(huì)推出新的系列,如IntelXscale和StrongARM每個(gè)系列提供一套特定的性能來滿足設(shè)計(jì)者對(duì)功耗、性能、特技的需求。2024/1/610ARM各系列處理器所包含的不同類型ARM系列包含類型1ARM7系列ARM7EJ-S,ARM7TDMI-S,ARM7TDMI,ARM720T2ARM9/9E系列ARM920T,ARM922T,ARM926EJ-S,ARM940T,ARM946E-S,ARM966E-S,ARM968E-S3向量浮點(diǎn)運(yùn)算系列(VectorFloatingPoint)VFP9-S,VFP104ARM10E系列ARM1020E,ARM1022E,ARM1026EJ-S5ARM11系列ARM1136J-S,ARM1136JF-S,ARM1156T2(F)-S,ARM1176JZ(F)-S,ARM11MPCore6SecurCore系列SC100,SC2007其他合作伙伴產(chǎn)品StrongARM,XScale,Cortex-M3,MBX2024/1/6113.1ARM簡(jiǎn)介ARM體系結(jié)構(gòu)ARM處理器為RISC芯片,其簡(jiǎn)單的結(jié)構(gòu)使ARM內(nèi)核非常小,這使得器件的功耗也非常低。它具有經(jīng)典RISC的特點(diǎn):1、大的、統(tǒng)一的寄存器文件;2、裝載/保存結(jié)構(gòu),數(shù)據(jù)處理操作只針對(duì)寄存器的內(nèi)容,而不直接對(duì)存儲(chǔ)器進(jìn)行操作;3、簡(jiǎn)單的尋址模式;4、統(tǒng)一和固定長(zhǎng)度的指令域,簡(jiǎn)化了指令的譯碼。2024/1/6123.1ARM簡(jiǎn)介ARM體系結(jié)構(gòu)ARM體系結(jié)構(gòu)的特點(diǎn):5、每條數(shù)據(jù)處理指令都受算術(shù)邏輯單元和移位器控制,以實(shí)現(xiàn)ALU和移位器的最大利用;6、地址自動(dòng)增加和減少尋址模式,優(yōu)化程序循環(huán);7、多寄存器裝載和存儲(chǔ)指令實(shí)現(xiàn)最大數(shù)據(jù)吞吐量;8、所有指令的條件執(zhí)行實(shí)現(xiàn)最快速的代碼執(zhí)行。2024/1/6133.1ARM簡(jiǎn)介各ARM體系結(jié)構(gòu)版本ARM體系結(jié)構(gòu)為滿足ARM合作者以及設(shè)計(jì)領(lǐng)域的一般需求正穩(wěn)步發(fā)展。每一次ARM體系結(jié)構(gòu)的重大修改,都會(huì)添加極為關(guān)鍵的技術(shù)。在體系結(jié)構(gòu)作重大修改的期間,會(huì)添加新的性能作為體系結(jié)構(gòu)的變體。下面的名字表明了系統(tǒng)結(jié)構(gòu)上的提升,后面附加的關(guān)鍵字表明了體系結(jié)構(gòu)的變體。為了清楚的表達(dá)每個(gè)ARM應(yīng)用實(shí)例所使用的指令集,ARM公司定義了6種主要的ARM指令集體系結(jié)構(gòu)版本,以版本號(hào)V1~V6表示。2024/1/6143.1ARM簡(jiǎn)介各ARM體系結(jié)構(gòu)版本——V1該版本的ARM體系結(jié)構(gòu),只有26位的尋址空間,沒有商業(yè)化,其特點(diǎn)為:基本的數(shù)據(jù)處理指令(不包括乘法);字節(jié)、字和半字加載/存儲(chǔ)指令;具有分支指令,包括在子程序調(diào)用中使用的分支和鏈接指令;在操作系統(tǒng)調(diào)用中使用的軟件中斷指令。2024/1/6153.1ARM簡(jiǎn)介各ARM體系結(jié)構(gòu)版本——V2同樣為26位尋址空間,現(xiàn)在已經(jīng)廢棄不再使用,它相對(duì)V1版本有以下改進(jìn):具有乘法和乘加指令;支持協(xié)處理器;快速中斷模式中的兩個(gè)以上的分組寄存器;具有原子性加載/存儲(chǔ)指令SWP和SWPB。2024/1/6163.1ARM簡(jiǎn)介各ARM體系結(jié)構(gòu)版本——V3尋址范圍擴(kuò)展到32位(事實(shí)上也基本廢棄),具有獨(dú)立的程序:具有乘法和乘加指令;支持協(xié)處理器;快速中斷模式中具有的兩個(gè)以上的分組寄存器;具有原子性加載/存儲(chǔ)指令SWP和SWPB。2024/1/6173.1ARM簡(jiǎn)介各ARM體系結(jié)構(gòu)版本——V4不再為了與以前的版本兼容而支持26位體系結(jié)構(gòu),并明確了哪些指令會(huì)引起未定義指令異常發(fā)生,它相對(duì)V3版本作了以下的改進(jìn):半字加載/存儲(chǔ)指令;字節(jié)和半字的加載和符號(hào)擴(kuò)展指令;具有可以轉(zhuǎn)換到Thumb狀態(tài)的指令;用戶模式寄存器的新的特權(quán)處理器模式。2024/1/6183.1ARM簡(jiǎn)介各ARM體系結(jié)構(gòu)版本——V4屬于V4體系結(jié)構(gòu)的處理器(核)有ARM7,ARM7100(ARM7核的處理器)ARM7500(ARM7核的處理器)屬于V4T(支持Thumb指令)體系結(jié)構(gòu)的處理器(核)有

ARM7TDMI,ARM7TDMI-S(ARM7TDMI可綜合版本),ARM710T(ARM7TDMI核的處理器),ARM720T(ARM7TDMI核的處理器),ARM740T(ARM7TDMI核的處理器),ARM9TDMI,ARM910T(ARM9TDMI核的處理器),ARM920T(ARM9TDMI核的處理器),ARM940T(ARM9TDMI核的處理器),StrongARM(Intel公司的產(chǎn)品)。2024/1/6193.1ARM簡(jiǎn)介各ARM體系結(jié)構(gòu)版本——V5在V4版本的基礎(chǔ)上,對(duì)現(xiàn)在指令的定義進(jìn)行了必要的修正,對(duì)V4版本的體系結(jié)構(gòu)進(jìn)行了擴(kuò)展并增加了指令,具體如下:改進(jìn)了ARM/Thumb狀態(tài)之間的切換效率;允許非T變量和T變量一樣,使用相同的代碼生成技術(shù);增加計(jì)數(shù)前導(dǎo)零指令和軟件斷點(diǎn)指令;對(duì)乘法指令如何設(shè)置標(biāo)志作了嚴(yán)格的定義。2024/1/6203.1ARM簡(jiǎn)介各ARM體系結(jié)構(gòu)版本——V5屬于V5T(支持Thumb指令)體系結(jié)構(gòu)的處理器(核)有ARM10TDMI,ARM1020T(ARM10TDMI核處理器)。屬于V5TE(支持Thumb,DSP指令)體系結(jié)構(gòu)的處理器(核)有ARM9E,ARM9E-S(ARM9E可綜合版本),ARM946(ARM9E核的處理器),ARM966(ARM9E核的處理器),ARM10E,ARM1020E(ARM10E核處理器),ARM1022E(ARM10E核的處理器),Xscale(Intel公司產(chǎn)品)。屬于V5TEJ(支持Thumb,DSP指令,Java指令)體系結(jié)構(gòu)的處理器(核)有ARM9EJ,ARM9EJ-S(ARM9EJ可綜合版本),ARM926EJ(ARM9EJ核的處理器),ARM10EJ。2024/1/6213.1ARM簡(jiǎn)介各ARM體系結(jié)構(gòu)版本——V6V6結(jié)構(gòu)增加了媒體指令屬于V6體系結(jié)構(gòu)的處理器核有ARM11。ARM體系結(jié)構(gòu)中有四種特殊指令集:Thumb指令(T),DSP指令(E),Java指令(J),Media指令,V6體系結(jié)構(gòu)包含全部四種特殊指令集。為滿足向后兼容,ARMv6也包括了ARMv5的存儲(chǔ)器管理和例外處理。ARMv6將提供更有效的性質(zhì)和技術(shù)。2024/1/6223.1ARM簡(jiǎn)介各ARM體系結(jié)構(gòu)版本——V6驅(qū)動(dòng)RMv6體系結(jié)構(gòu)發(fā)展的市場(chǎng)主要有無線,網(wǎng)絡(luò),自動(dòng)化和消費(fèi)娛樂市場(chǎng)。ARM在過去與體系結(jié)構(gòu)的受權(quán)者和主要合作者像Intel,Microsoft,Symbian和TI共同定義了ARMv6體系結(jié)構(gòu)的需求,ARMv6體系結(jié)構(gòu)的提升,主要集中在:存儲(chǔ)器管理多處理器多媒體支持?jǐn)?shù)據(jù)處理ARM11主要性能單指令發(fā)射分支預(yù)測(cè)存儲(chǔ)器訪問并行流水線64位數(shù)據(jù)路徑浮點(diǎn)處理2024/1/6233.1ARM簡(jiǎn)介ARM處理器核簡(jiǎn)介ARM公司開發(fā)了很多系列的ARM處理器核,目前最新的系列已經(jīng)是ARM11了,而ARM6核以及更早的系列已經(jīng)很罕見了。目前應(yīng)用比較廣泛的系列是:ARM7ARM9ARM9EARM10SecurCoreXscale2024/1/6243.1ARM簡(jiǎn)介ARM處理器核簡(jiǎn)介——ARM7該系列包括ARM7TDMI、ARM7TDMI-S、帶有高速緩存處理器宏單元的ARM720T和擴(kuò)充了Jazelle的ARM7EJ-S。該系列處理器提供Thumb16位壓縮指令集和EmbededICE軟件調(diào)試方式,適用于更大規(guī)模的SoC設(shè)計(jì)中。ARM7系列廣泛應(yīng)用于多媒體和嵌入式設(shè)備,包括Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備,以及移動(dòng)電話、PDA等無線設(shè)備。2024/1/6253.1ARM簡(jiǎn)介ARM處理器核簡(jiǎn)介——ARM9該系列包括ARM9TDMI、ARM920T和帶有高速緩存處理器宏單元的ARM940T。除了兼容ARM7系列,而且能夠更加靈活的設(shè)計(jì)。ARM9系列主要應(yīng)用于引擎管理、儀器儀表、安全系統(tǒng)、機(jī)頂盒以及帶有MP3音頻和MPEG4視頻多媒體格式的智能電話等領(lǐng)域。2024/1/6263.1ARM簡(jiǎn)介ARM處理器核簡(jiǎn)介——ARM10該系列包括ARM1020E處理器核,其核心在于使用向量浮點(diǎn)(VFP)單元VFP10提供高性能的浮點(diǎn)解決方案,從而極大提高了處理器的整型和浮點(diǎn)運(yùn)算性能??梢杂糜谝曨l游戲機(jī)和高性能打印機(jī)等場(chǎng)合。2024/1/6273.1ARM簡(jiǎn)介ARM處理器核簡(jiǎn)介——SecurCore該系列涵蓋了SC100、SC110、SC200和SC210處理核。該系列處理器主要針對(duì)新興的安全市場(chǎng),以一種全新的安全處理器設(shè)計(jì)為智能卡和其它安全I(xiàn)C開發(fā)提供獨(dú)特的32位系統(tǒng)設(shè)計(jì),并具有特定反偽造方法,從而有助于防止對(duì)硬件和軟件的盜版。2024/1/6283.1ARM簡(jiǎn)介ARM處理器核簡(jiǎn)介——XscaleIntelXscale微控制器則提供全性能、高性價(jià)比、低功耗的解決方案,支持16位Thumb指令并集成數(shù)字信號(hào)處理(DSP)指令。2024/1/6293.1ARM簡(jiǎn)介ARM系列處理器的應(yīng)用領(lǐng)域ARM7系列個(gè)人音頻設(shè)備(MP3,WMA,ACC播放器)接入級(jí)的無線設(shè)備噴墨打印機(jī)數(shù)碼照相機(jī)PDA2024/1/6303.1ARM簡(jiǎn)介ARM系列處理器的應(yīng)用領(lǐng)域ARM9下一代無線設(shè)備,包括視頻電話和PDA等數(shù)字消費(fèi)品,包括機(jī)頂盒、家庭網(wǎng)關(guān)、MP3MPEG4等成像設(shè)備,包括打印機(jī)、數(shù)碼照相機(jī)、數(shù)碼攝像機(jī)等汽車、通訊和信息系統(tǒng)2024/1/6313.1ARM簡(jiǎn)介ARM系列處理器的應(yīng)用領(lǐng)域ARM9E系列下一代無線設(shè)備,包括視頻電話和PDA等數(shù)字消費(fèi)品,如機(jī)頂盒、家庭網(wǎng)關(guān)、MP3MPEG4等成像設(shè)備,包括打印機(jī)、數(shù)碼照相機(jī)、數(shù)碼攝像機(jī)等存貯設(shè)備,包括DVD或HDD等工業(yè)控制如電機(jī)控制等汽車、通訊和信息系統(tǒng)的ABS和車體控制網(wǎng)絡(luò)設(shè)備包括VoIP、WirelessLAN、xDSL2024/1/6323.1ARM簡(jiǎn)介ARM系列處理器的應(yīng)用領(lǐng)域ARM10E下一代無線設(shè)備如視頻電話和PDA、筆記本電腦、互聯(lián)網(wǎng)設(shè)備數(shù)字消費(fèi)品如機(jī)頂盒、網(wǎng)關(guān)、MP3、MPEG4成像設(shè)備,包括打印機(jī)、數(shù)碼照相機(jī)、數(shù)碼攝像機(jī)等汽車、通訊和信息系統(tǒng)等工業(yè)控制如馬達(dá)控制2024/1/6333.1ARM簡(jiǎn)介ARM不同處理器間的比較ARM系列處理器屬性比較項(xiàng)目ARM7ARM9ARM10ARM11流水線深度3級(jí)5級(jí)6級(jí)8級(jí)典型頻率(MHz)80150260335功耗(mW/MHz)0.060.19(+Cache)0.5(+Cache)0.4(+Cache)MIPS/MHz0.971.11.31.2架構(gòu)馮·偌伊曼哈佛哈佛哈佛乘法器832832163216322024/1/6343.1ARM簡(jiǎn)介ARM處理器不同功能特性CPUMMU/MPUCacheJazelleThumb指令集EARM7TDMI無無否是v4T否ARM7EJ-S無無是是v5TEJ是ARM720TMMU統(tǒng)一8KBCache否是v4T否ARM920TMMU獨(dú)立16KB指令和數(shù)據(jù)Cache否是4T否ARM922TMMU獨(dú)立8KB指令和數(shù)據(jù)Cache否是4T否ARM926EJ-SMMUCache和TCM可配置是是v5TEJ是ARM940TMPU獨(dú)立4KB指令和數(shù)據(jù)Cache否是4T否ARM946E-SMPUCache和TCM可配置否是v5TE是ARM966E-S無Cache和TCM可配置否是v5TE是ARM1020EMMU獨(dú)立32KB指令和數(shù)據(jù)Cache否是v5TE是ARM1022EMMU獨(dú)立16KB指令和數(shù)據(jù)Cache否是v5TE是ARM1026EJ-SMMUCache和TCM可配置是是v5TE是ARM1036J-SMMUCache和TCM可配置是是v6是ARM1136JF-SMMUCache和TCM可配置是是v6是2024/1/6353.1ARM簡(jiǎn)介ARM芯片的選型隨著國(guó)內(nèi)嵌入式應(yīng)用領(lǐng)域的發(fā)展,ARM芯片必然會(huì)獲得重視和應(yīng)用,但是由于ARM芯片有多大幾十種芯片結(jié)構(gòu),70多芯片生產(chǎn)廠家以及千變?nèi)f化的內(nèi)部功能配置組合,在選擇方案時(shí)會(huì)有一定困難。ARM芯片選擇的一般原則選擇方案舉例2024/1/636ARM芯片選擇的一般原則1、ARM芯核10、LCD控制器2、系統(tǒng)時(shí)鐘控制器11、PWM輸出3、內(nèi)部存儲(chǔ)器容量12、ADC和DAC4、USB接口13、擴(kuò)展總線5、GPIO數(shù)量14、UART和IrDA6、中斷控制器15、DSP協(xié)處理器7、IIS接口16、內(nèi)置FPGA8、nWAIT信號(hào)17、時(shí)鐘計(jì)數(shù)器和看門狗9、RTC18、電源管理功能19、DMA控制器2024/1/6373.1ARM簡(jiǎn)介ARM芯片選擇的一般原則1、ARM芯核如果希望使用WindowsCE或Linux等操作系統(tǒng)以減少軟件開發(fā)時(shí)間,就需要選擇ARM720以上帶有MMU功能的ARM芯片,ARM720T、StrongARM、ARM920T、ARM922T、ARM946T都帶有MMU,而ARM7TDMI沒有MMU,不支持WindowsCE和大部分的Linux,但目前有uCLinux等少數(shù)幾種Linux不需要MMU的支持2024/1/6383.1ARM簡(jiǎn)介ARM芯片選擇的一般原則2、系統(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最高可以達(dá)到700MHz。不同芯片對(duì)時(shí)鐘的處理不同,如只有一個(gè)主時(shí)鐘就不能同時(shí)顧及UART和音頻時(shí)鐘的準(zhǔn)確性,如CirrusLogic的EP7312,有的芯片內(nèi)部時(shí)鐘控制器可以分別為CPU、USB、UART、DSP、音頻等部件提供不同頻率的時(shí)鐘,如PHILIPS的SAA775502024/1/639MIPS、DMIPS和MFLOPSMIPS:MillionInstructionsexecutedPerSecond:每秒百萬條指令,用來計(jì)算同一秒內(nèi)系統(tǒng)的處理能力,即每秒執(zhí)行了多少百萬條指令.MIPS只適宜于評(píng)估標(biāo)量機(jī),不能用于評(píng)估向量機(jī)DMIPS:DhrystoneMillionInstructionsexecutedPerSecond:主要用于測(cè)整數(shù)計(jì)算能力。表示在Dhrystone這樣一種測(cè)試方法下的MIPS。MFLOPS:Million

Floationg-pointOperationsperSecond:主要用于測(cè)浮點(diǎn)計(jì)算能力.MFLOPS則比較適用于衡量向量機(jī)的性能。CPU性能評(píng)估采用合成測(cè)試程序,較流行的有Whetstone和Dhrystone兩種。Dhrystone主要用于測(cè)整數(shù)計(jì)算能力,計(jì)算單位就是DMIPS。Whetstone主要用于測(cè)浮點(diǎn)計(jì)算能力,計(jì)算單位就是MFLOPS。2024/1/6403.1ARM簡(jiǎn)介ARM芯片選擇的一般原則3、內(nèi)部存儲(chǔ)器容量在不需要大容量存儲(chǔ)器時(shí),可以考慮選用內(nèi)置存儲(chǔ)器的ARM4、USB接口內(nèi)置存儲(chǔ)器的ARM芯片芯片型號(hào)供應(yīng)商FlashROM容量SDAM容量AT91F40162ATMAL2MB2564KBAT91FR4081ATMAL1MB128KBSAA7750Philips384KB64KBPUC3030AMicornas256KB56KBHMS30C7272Hynix192KBLC67F500Snayo640KB32KB2024/1/641內(nèi)置USB控制器的ARM芯片芯片型號(hào)ARM內(nèi)核供應(yīng)商USBSlaveUSBHostIIS接口S3C2410ARM920TSamsung121S3C2400ARM920TSamsung121S5N8946ARM7TDMISamsung100L7205ARM720TLinkup110L7210ARM720TLinkup110EP9312ARM920TCirrusLogic031DrahonballMXIARM920TMotorola101SAA7750ARM720TPhilips101TMS320DSC2xARM7TDMITI100PUC3030AARM7TDMIMicronas105ML67100ARM7TDMIOKI100ML7051LAARM7TDMIOKI100SA-1100StrongARMIntel100LH7979531ARM7TDMISharp100GMS320C7201ARM720THynix1012024/1/6423.1ARM簡(jiǎn)介ARM芯片選擇的一般原則5、GPIO數(shù)量在某些芯片供應(yīng)商產(chǎn)品中,往往聲明的是最大可能提供的GPIO數(shù)量,但是許多引腳是和地址線、數(shù)據(jù)線、串口線等引腳復(fù)用的,這樣在系統(tǒng)設(shè)計(jì)時(shí)需要計(jì)算實(shí)際實(shí)用的GPIO的數(shù)量。2024/1/6433.1ARM簡(jiǎn)介ARM芯片選擇的一般原則6、中斷控制器ARM內(nèi)核只提供快速中斷(FIQ)和標(biāo)準(zhǔn)中斷(IRQ)兩個(gè)中斷向量,但是各個(gè)半導(dǎo)體廠家再設(shè)計(jì)芯片時(shí)加入了自己定義的中斷控制器,以便支持諸如串行口、外部中斷、時(shí)鐘中斷等硬件中斷。外部中斷控制器是選擇芯片必須考慮的重要因素,合理的外部中斷設(shè)計(jì)可以很大程度地減少任務(wù)調(diào)度工作量,例如PHILIPS的SAA7750的所有的GPIO都可以設(shè)置為FIQ或IRQ,還可以選擇沿/電平觸發(fā)方式。而CirrusLogic的EP7312只能有4個(gè)外部中斷源,并且每個(gè)中斷源都只能是低電平或高電平觸發(fā),這樣在接收紅外信號(hào)的場(chǎng)合就必須采用查詢方式,浪費(fèi)了大量CPU時(shí)間。2024/1/6443.1ARM簡(jiǎn)介ARM芯片選擇的一般原則7、IIS(IntegrateInterfaceofSound)接口集成音頻接口對(duì)于設(shè)計(jì)音頻應(yīng)用產(chǎn)品就是必須的。8、nWAIT信號(hào)這是一個(gè)外部總線速度控制信號(hào),不是每個(gè)芯片都提供這個(gè)信號(hào),利用此信號(hào)就可以廉價(jià)的與GAL芯片接口,設(shè)計(jì)如PCMCIA標(biāo)準(zhǔn)的WLAN卡或Bluetooth卡產(chǎn)品,而無須專用控制芯片。當(dāng)擴(kuò)充外部DSP協(xié)處理器時(shí)此信號(hào)也是必須的。2024/1/6453.1ARM簡(jiǎn)介ARM芯片選擇的一般原則9、RTC(RealTimeClock)很多ARM芯片都提供實(shí)時(shí)時(shí)鐘功能,如CirrusLogic的EP7312的RTC只提供1個(gè)32位的計(jì)數(shù)器,需要軟件計(jì)算時(shí)鐘,而SAA7750和S3C2410等芯片的RTC直接提供年月日時(shí)分秒格式的時(shí)鐘。10、LCD控制器有些ARM內(nèi)置有LCD控制器,甚至內(nèi)置有64KB彩色TFTLCD控制器,再設(shè)計(jì)PDA和手持式顯示記錄設(shè)備時(shí),選用內(nèi)置LCD控制器的ARM(如S3C2410)就較合適2024/1/6463.1ARM簡(jiǎn)介ARM芯片選擇的一般原則11、PWM輸出有些ARM芯片有2/8路PWM輸出,可用于電機(jī)控制或語音輸出12、ADC和DAC有些ARM芯片有2-8路的DAC和8-12路的ADC,可以用于電池檢測(cè)、觸摸屏和溫度檢測(cè)等,如PHILIPS的SAA7750內(nèi)置了一個(gè)16位立體聲音頻ADC和DAC,并且?guī)в卸鷻C(jī)驅(qū)動(dòng)13、擴(kuò)展總線大部分的ARM芯片具有外部SDRAM和SRAM擴(kuò)展接口,不同的ARM芯片可以擴(kuò)展的芯片數(shù)量即片選線數(shù)量不同,外部總線有8/16/32位。為了某些特殊應(yīng)用的ARM芯片沒有外部擴(kuò)展功能。2024/1/6473.1ARM簡(jiǎn)介ARM芯片選擇的一般原則14、UART和IrDA幾乎所有的ARM芯片都具有1-2個(gè)UART接口,可以用于和PC機(jī)通訊或調(diào)試,一般的ARM芯片通訊波特率為115200bit/s,少數(shù)專為藍(lán)牙技術(shù)應(yīng)用設(shè)計(jì)的ARM芯片的UART通訊波特率可以達(dá)到920kbit/s,如Linkup公司的L7205。15、DSP協(xié)處理器(如下表)16、內(nèi)置FPGAARM+FPGA結(jié)構(gòu)的ARM芯片芯片型號(hào)供應(yīng)商ARM芯核FPGA門數(shù)引腳EPXA1AlteraARM922T100000484EPXA4AlteraARM922T400000672EPXA10AlteraARM922T10000001020TA7S20TriscendARM7TDMI多種多種2024/1/6483.1ARM簡(jiǎn)介ARM+DSP結(jié)構(gòu)的ARM芯片芯片類型供應(yīng)商DSPCoreDSPMIPS應(yīng)用TMS320DSC2xTI16bitC5000500數(shù)碼照相機(jī)DragonballMXIMotorala16bitMP3SAA7750Philips16bit73CD-MP3VWS22100Philips16bitGSMSTLC1502ST16bit52VolPGMS30C3201Hynix16bitAT75C220ATMEL16bit40AT75C310ATMEL16bitOAKAT75C320ATMEL16bitOAK402L7205Linkup16bitPiccolo602無線應(yīng)用L7210Linkup16bitPiccoloQuatroOAK16bitOAK2024/1/6493.1ARM簡(jiǎn)介ARM芯片選擇的一般原則17、時(shí)鐘計(jì)數(shù)器和看門狗一般ARM芯片都具有2-4個(gè)16位或32位時(shí)鐘計(jì)數(shù)器和一個(gè)看門狗計(jì)數(shù)器18、電源管理功能ARM芯片的耗電量與工作頻率成正比,一般ARM芯片都有低功耗模式、睡眠模式和關(guān)閉模式19、DMA控制器有些ARM芯片內(nèi)部集成了DMA(DirectMemoryAccess)接口,可以和硬盤等外部設(shè)備高速交換數(shù)據(jù),同事減少數(shù)據(jù)交換時(shí)對(duì)CPU資源的占用2024/1/6503.1ARM簡(jiǎn)介最佳方案應(yīng)用第一方案第二方案?jìng)渥⒏邫nPDAS3C2410DragonballMXI便攜CDMP3播放器SAA7750USB和CDROM解碼器FLASHMP3播放器SAA7750FUC3030A內(nèi)置USB和FLASHWLAN和BT應(yīng)用產(chǎn)品L7205,L7210DragonballMXI高速串口和PCMCIAVoiceOverIPSTLC1502數(shù)碼照相機(jī)TMS320DSC24TMS320DSC21內(nèi)置高速圖像處理DSP便攜式語音email機(jī)AT75C320AT75C310內(nèi)置雙DSP,可以分別處理MODEM和語音GSM手機(jī)VWS22100AD20MSP430專為GSM手機(jī)開發(fā)ADSLModemS5N8946MTK-20141電視機(jī)頂盒GMS30CC3201VGA控制器3G移動(dòng)電話MSM6000OMAP15110G光纖通訊MinSpeed公司系列ARM芯片多ARM核+DSP核2024/1/651第3章ARM7體系結(jié)構(gòu)1.簡(jiǎn)介2.ARM7TDMI3.ARM7TDMI的模塊和內(nèi)部框圖4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型5.處理器狀態(tài)6.處理器模式7.內(nèi)部寄存器8.程序狀態(tài)寄存器2024/1/6523.2ARM7TDMI簡(jiǎn)介ARM7TDMI基于ARM體系結(jié)構(gòu)V4版本,是目前低端的ARM核。具有廣泛的應(yīng)用,其最顯著的應(yīng)用為數(shù)字移動(dòng)電話。注意:“ARM核”并不是芯片,ARM核與其它部件如RAM、ROM、片內(nèi)外設(shè)組合在一起才能構(gòu)成現(xiàn)實(shí)的芯片。2024/1/6533.2ARM7TDMI簡(jiǎn)介ARM7TDMI支持32位尋址范圍,并彌補(bǔ)了ARM6不能在低于5V電源電壓下工作的不足。ARM7TDMI的后綴意義為:支持高密度16位的Thumb指令集;支持片上調(diào)試;支持64位乘法;支持EmbededICE觀察硬件;ARM7TDMI的可綜合(synthesizable)版本(軟核),對(duì)應(yīng)用工程師來說其編程模型與ARM7TDMI一致;ARM7TDMI-S2024/1/6543.2ARM7TDMI簡(jiǎn)介ARM7TDMI處理器是ARM通用32位微處理器家族的成員之一。它具有優(yōu)異的性能,但功耗卻很低,使用門的數(shù)量也很少。它屬于精簡(jiǎn)指令集計(jì)算機(jī)(RISC),比復(fù)雜指令集計(jì)算機(jī)(CISC)要簡(jiǎn)單得多。這樣的簡(jiǎn)化實(shí)現(xiàn)了:高的指令吞吐量;出色的實(shí)時(shí)中斷響應(yīng);小的、高性價(jià)比的處理器宏單元。2024/1/6553.2ARM7TDMI三級(jí)流水線ARM7TDMI處理器使用流水線來增加處理器指令流的速度。這樣可使幾個(gè)操作同時(shí)進(jìn)行,并使處理和存儲(chǔ)器系統(tǒng)連續(xù)操作,能提供0.9MIPS/MHz的指令執(zhí)行速度。ARM7TDMI的流水線分3級(jí),分別為:取指

譯碼

執(zhí)行2024/1/6563.2ARM7TDMI三級(jí)流水線正常操作過程中,在執(zhí)行一條指令的同時(shí)對(duì)下一條指令進(jìn)行譯碼,并將第三條指令從存儲(chǔ)器中取出。這三條指令之間的位置關(guān)系如下表所示:流水線上各指令的地址流水線工位描述ARM指令集Thumb指令集PCPC取指指令從存儲(chǔ)器中取出PC-4PC-2譯碼對(duì)指令使用的寄存器進(jìn)行譯碼PC-8PC-4執(zhí)行從寄存器組中讀出寄存器,執(zhí)行移位和ALU操作,寄存器被寫回到寄存器組中2024/1/6573.2ARM7TDMI存儲(chǔ)器訪問ARM7TDMI處理器使用了馮·諾依曼(VonNeumann)結(jié)構(gòu),指令和數(shù)據(jù)共用一條32位總線。只有裝載、存儲(chǔ)和交換指令可以對(duì)存儲(chǔ)器中的數(shù)據(jù)進(jìn)行訪問。數(shù)據(jù)可以是字節(jié)(8位)、半字(16位)或者字(32位)。2024/1/6583.2ARM7TDMI存儲(chǔ)器訪問計(jì)算機(jī)結(jié)構(gòu)說明:“馮·諾依曼”結(jié)構(gòu):把代碼作為一種特殊的數(shù)據(jù)來操作,指令總線和數(shù)據(jù)總線及其存儲(chǔ)區(qū)域是統(tǒng)一的;“哈佛”結(jié)構(gòu):指令總線和數(shù)據(jù)總線及其存儲(chǔ)區(qū)是分開、獨(dú)立的。2024/1/6593.2ARM7TDMI存儲(chǔ)器接口ARM7TDMI處理器的存儲(chǔ)器接口可以使?jié)撛诘男阅艿靡詫?shí)現(xiàn),這樣減少了存儲(chǔ)器的使用。對(duì)速度有嚴(yán)格要求的控制信號(hào)使用流水線,這樣使系統(tǒng)控制功能以標(biāo)準(zhǔn)的低功耗邏輯實(shí)現(xiàn)。ARM7TDMI處理器的存儲(chǔ)器周期有4個(gè)基本類型:內(nèi)部周期;非連續(xù)的周期;連續(xù)的周期;協(xié)處理器寄存器的傳輸周期。2024/1/660第3章ARM7體系結(jié)構(gòu)1.簡(jiǎn)介2.ARM7TDMI3.ARM7TDMI的模塊和內(nèi)部框圖4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型5.處理器狀態(tài)6.處理器模式7.內(nèi)部寄存器8.程序狀態(tài)寄存器2024/1/6613.3ARM7TDMI的模塊和內(nèi)核框圖ARM7TDMI模塊框圖數(shù)據(jù)總線掃描鏈1掃描鏈2RDATA[31:0]WDATA[31:0]LOCKWRITESIZE[1:0]PROT[1:0]TRANS[1:0]ADDR[31:0]EmbeddedICE-RT宏單元EmbeddedICE-RTTAP控制器CPU協(xié)處理器接口信號(hào)DBGTCKENDBGTMSDBGNTRSTDBGTDIDBGTDODBGRNG(0)DBGRNG(1)DBGEXT(0)DBGEXT(1)掃描連2掃描鏈1數(shù)據(jù)總線2024/1/662CFGBIGENDARM7TDMI內(nèi)核地址寄存器寄存器組31*32位寄存器(6個(gè)狀態(tài)寄存器)地址增加器乘法器桶形移位器32位ALU寫數(shù)據(jù)寄存器指令管線讀數(shù)據(jù)寄存器Thumb指令譯碼器指令譯碼和控制邏輯ADDR[31:0]CLKCLENnIRQnFIQnRESETABORTLOCKWRITESIZE[1:0]PROT[1:0]TRANS[1:0]DBG輸出DBG輸入CP控制CP握手WDATA[31:0]RDATA[31:0]掃描調(diào)試控制3.3ARM7TDMI的模塊和內(nèi)核框圖2024/1/6633.3ARM7TDMI的模塊和內(nèi)核框圖ARM7TDMI功能DBGBREAKDBGRQCPBCPACPn1CPTBITCPSEQCPnMREQCPnOPCCPnTRANSTRANS[1:0]PROT[1:0]SIZE[1:0]WRITEABORTRDATA[31:0]WDATA[31:0]ADDR[31:0]DBGTDODBGnTDOENDBGnTRSTDBGTDIDBGTMSDBGTCKENDBGCOMMTXDBGCOMMRXDBGRNG[0]DBGRNG[1]DBGENDBGEXT[0]DBGEXT[1]DBGnEXECDBGACKLOCKCFGBIGENDnRESETnFIQnIRQCLKENCLKDBGINSTRVALIDDMORE同步的掃描調(diào)試訪問端口存儲(chǔ)器接口存儲(chǔ)器管理接口協(xié)處理器接口時(shí)鐘中斷總線控制仲裁調(diào)試ARM7TDMI-S處理器2024/1/664第3章ARM7體系結(jié)構(gòu)1.簡(jiǎn)介2.ARM7TDMI3.ARM7TDMI的模塊和內(nèi)部框圖4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型5.處理器狀態(tài)6.處理器模式7.內(nèi)部寄存器8.程序狀態(tài)寄存器2024/1/6653.4體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型ARM處理器支持下列數(shù)據(jù)類型:字節(jié)8位半字16位(必須分配為占用兩個(gè)字節(jié))字32位(必須分配為占用4各字節(jié))11123422024/1/6663.4體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型注意:V4版本之后的ARM結(jié)構(gòu)都支持這3種結(jié)構(gòu)(包括V4版本),而以前的版本只支持字節(jié)和字;當(dāng)數(shù)據(jù)類型定義為無符號(hào)型時(shí),N位數(shù)據(jù)值使用正常的二進(jìn)制格式表示范圍為0~2N-1的非負(fù)整數(shù);當(dāng)數(shù)據(jù)類型定義為有符號(hào)型時(shí),N位數(shù)據(jù)值使用2的補(bǔ)碼格式表示范圍為-2N-1~+2N-1-1的整數(shù);2024/1/6673.4體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型注意:所有數(shù)據(jù)操作,例如ADD,都以字為單位;裝載和保存指令可以對(duì)字節(jié)、半字和字進(jìn)行操作,當(dāng)裝載字節(jié)或半字時(shí)自動(dòng)實(shí)現(xiàn)零擴(kuò)展或符號(hào)擴(kuò)展;ARM指令的長(zhǎng)度剛好是1個(gè)字(分配為占用4個(gè)字節(jié)),Thumb指令的長(zhǎng)度剛好是半字(占用2個(gè)字節(jié))。2024/1/668第3章ARM7體系結(jié)構(gòu)1.簡(jiǎn)介2.ARM7TDMI3.ARM7TDMI的模塊和內(nèi)部框圖4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型5.處理器狀態(tài)6.處理器模式7.內(nèi)部寄存器8.程序狀態(tài)寄存器2024/1/6693.5處理器狀態(tài)處理器狀態(tài)ARM7TDMI處理器內(nèi)核使用V4T版本的ARM結(jié)構(gòu),該結(jié)構(gòu)包含32位ARM指令集和16位Thumb指令集。因此ARM7TDMI處理器有兩種操作狀態(tài):ARM狀態(tài):32位,這種狀態(tài)下執(zhí)行的是字方式的ARM指令;Thumb狀態(tài):16位,這種狀態(tài)下執(zhí)行半字方式的ARM指令。注意:兩個(gè)狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容。2024/1/6703.5處理器狀態(tài)處理器狀態(tài)使用BX指令將ARM7TDMI內(nèi)核的操作狀態(tài)在ARM狀態(tài)和Thumb狀態(tài)之間進(jìn)行切換(詳見第4章),程序如下所示。;從Arm狀態(tài)切換到Thumb狀態(tài)

LDRR0,=Lable+1

BXR0;從Thumb狀態(tài)切換到ARM狀態(tài)

LDRR0,=LableBXR0地址最低位為1,表示切換到Thumb狀態(tài)地址最低位為0,表示切換到ARM狀態(tài)跳轉(zhuǎn)地址標(biāo)號(hào)2024/1/671第3章ARM7體系結(jié)構(gòu)1.簡(jiǎn)介2.ARM7TDMI3.ARM7TDMI的模塊和內(nèi)部框圖4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型5.處理器狀態(tài)6.處理器模式7.內(nèi)部寄存器8.程序狀態(tài)寄存器2024/1/6723.6處理器模式簡(jiǎn)介ARM體系結(jié)構(gòu)支持7種處理器模式,分別為:用戶模式快中斷模式中斷模式管理模式中止模式未定義模式系統(tǒng)模式這樣的好處是可以更好的支持操作系統(tǒng)并提高工作效率。ARM7TDMI完全支持這七種模式。2024/1/6733.6處理器模式特權(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)2024/1/6743.6處理器模式異常模式處理器模式說明備注

用戶(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)不可靠。2024/1/6753.6處理器模式用戶和系統(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)2024/1/676第3章ARM7體系結(jié)構(gòu)1.簡(jiǎn)介2.ARM7TDMI3.ARM7TDMI的模塊和內(nèi)部框圖4.體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型5.處理器狀態(tài)6.處理器模式7.內(nèi)部寄存器8.程序狀態(tài)寄存器2024/1/6773.7內(nèi)部寄存器簡(jiǎn)介在ARM7TDMI處理器內(nèi)部有37個(gè)用戶可見的寄存器。在不同的工作模式和處理器狀態(tài)下,程序員可以訪問的寄存器也不盡相同。2024/1/678寄存器類別寄存器在匯編中的名稱各模式下實(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無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)各模式下的寄存器2024/1/679寄存器類別寄存器在匯編中的名稱各模式下實(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無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è)通用32位寄存器;6個(gè)狀態(tài)寄存器。2024/1/680寄存器類別寄存器在匯編中的名稱各模式下實(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無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用戶無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系統(tǒng)SPSR_abtCPSRR15R14_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)各模式下可以訪問的寄存器2024/1/681寄存器類別寄存器在匯編中的名稱各模式下實(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無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0在匯編語言中寄存器R0~R13為保存數(shù)據(jù)或地址值的通用寄存器。它們是完全通用的寄存器,不會(huì)被體系結(jié)構(gòu)作為特殊用途,并且可用于任何使用通用寄存器的指令。2024/1/682寄存器類別寄存器在匯編中的名稱各模式下實(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無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0其中R0~R7為未分組的寄存器,也就是說對(duì)于任何處理器模式,這些寄存器都對(duì)應(yīng)于相同的32位物理寄存器。2024/1/683寄存器類別寄存器在匯編中的名稱各模式下實(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無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)前的處理器模式,幾乎所有允許使用通用寄存器的指令都允許使用分組寄存器2024/1/684寄存器類別寄存器在匯編中的名稱各模式下實(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無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8寄存器R8~R12有兩個(gè)分組的物理寄存器。一個(gè)用于除FIQ模式之外的所有寄存器模式,另一個(gè)用于FIQ模式。這樣在發(fā)生FIQ中斷后,可以加速FIQ的處理速度。2024/1/685寄存器類別寄存器在匯編中的名稱各模式下實(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無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_svcR132024/1/686寄存器類別寄存器在匯編中的名稱各模式下實(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無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆棧指針寄存器R13(SP)寄存器R13常作為堆棧指針(SP)。在ARM指令集當(dāng)中,沒有以特殊方式使用R13的指令或其它功能,只是習(xí)慣上都這樣使用。但是在Thumb指令集中存在使用R13的指令。用于保護(hù)現(xiàn)場(chǎng)。2024/1/687寄存器類別寄存器在匯編中的名稱各模式下實(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無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è)小的固定偏移量)。2024/1/688Lable程序A程序BR143.7內(nèi)部寄存器R14寄存器與子程序調(diào)用BLLable地址A???MOVPC,LRR14(地址A)Lable???程序A執(zhí)行過程中調(diào)用程序B;程序跳轉(zhuǎn)至標(biāo)號(hào)Lable,執(zhí)行程序B。同時(shí)硬件將“BLLable”指令的下一條指令所在地址存入R14;程序B執(zhí)行最后,將R14寄存器的內(nèi)容放入PC,返回程序A;操作流程2024/1/6893.7內(nèi)部寄存器R14寄存器與異常發(fā)生異常發(fā)生時(shí),程序要跳轉(zhuǎn)至異常服務(wù)程序,對(duì)返回地址的處理與子程序調(diào)用類似,都是由硬件完成的。區(qū)別在于有些異常有一個(gè)小常量的偏移。2024/1/6903.7內(nèi)部寄存器R14寄存器注意要點(diǎn)發(fā)生異常嵌套時(shí),異常之間可能會(huì)發(fā)生沖突。例如:如果用戶在用戶模式下執(zhí)行程序時(shí)發(fā)生了IRQ中斷,用戶模式寄存器不會(huì)被破壞。但是如果允許在IRQ模式下的中斷處理程序重新使能IRQ中斷,并且發(fā)生了嵌套的IRQ中斷時(shí),外部中斷處理程序保存在R14_irq中的任何值都將被嵌套中斷的返回地址所覆蓋。2024/1/6913.7內(nèi)部寄存器R14寄存器注意要點(diǎn)R14R14_irq用戶模式下的程序IRQ模式下的程序AareturnB...XA地址A地址A1.執(zhí)行用戶模式下的程序;2.發(fā)生IRQ中斷,硬件將某個(gè)地址存入IRQ模式下的R14_irq寄存器,用戶模式下的R14沒有被破壞;3.IRQ服務(wù)程序A執(zhí)行完畢,將R14_irq寄存器的內(nèi)容減去某個(gè)常量后存入PC,返回之前被中斷的程序;未被破壞2024/1/6923.7內(nèi)部寄存器R14寄存器注意要點(diǎn)R14R14_irq用戶模式下的程序IRQ模式下的程序AaB...XA地址A地址A未被破壞IRQ模式下的程序BareturnB...XA地址B地址B4.如果在IRQ處理程序中打開IRQ中斷,并且再次發(fā)生IRQ中斷;5.硬件將返回地址保存在R14_irq寄存器中,原來保存的返回地址將被覆蓋,造成錯(cuò)誤;被破壞6.在程序B返回到程序A,然后在返回到用戶模式下被中斷的程序時(shí),發(fā)生錯(cuò)誤,將不能正確返回;returnreturn

解決辦法是確保R14的對(duì)應(yīng)版本在發(fā)生中斷嵌套時(shí)不再保存任何有意義的值(將R14入棧),或者切換到其它處理器模式下。2024/1/693寄存器類別寄存器在匯編中的名稱各模式下實(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無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(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)論