ARM架构的嵌入式微处理器课件_第1页
ARM架构的嵌入式微处理器课件_第2页
ARM架构的嵌入式微处理器课件_第3页
ARM架构的嵌入式微处理器课件_第4页
ARM架构的嵌入式微处理器课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1由於未來的希望必定在於新技術條件下高附加值的產品,多媒體應用和網路互連是其中必備的因素,而開放操作系統的應用也可能是一個顯著的特徵。這些條件正是8位體系結構所難以逾越的障礙;也就正好成為選擇32位嵌入式系統的主要理由所在。所有的ARM晶片都在內核上保持了高度的相容性,也使得通用工具的實現成為可能。所有ARMCPU內核裏面都有一個EmbeddedICE邏輯模組,用於採集CPU匯流排信號,而對EmbeddedICE以及CPU執行單元的通信則是通過掃描線進行,所有的掃描線受測試訪問控制端口(TAP)控制,並通過晶片JTAG介面連接,故可保持不同CPU之間的介面控制相容性。調試工具只要支持TAP端口訪問,就能進行ARM的系統調試。

3.1ARM架構的嵌入式微處理器232位體系結構的性能具有如下優勢:(1)尋址空間這是8位體系結構先天性的缺陷,32位體系結構目前就基本不受其地址空間的限制了。在ARM的體系結構裏,所有的資源,比如記憶體、控制寄存器、IO端口等都是在有效地址空間裏統一編址的,方便了程式在不同晶片間的移植。(2)運算和數據處理ARM採用了先進的CPU設計理念,多匯流排介面(哈佛結構)、多級流水線、高速緩存、數據處理增強等。幾乎所有的通信協議棧都能在32位CPU下麵輕鬆實現。32位體系結構的性能提高,使得C、C++、Java等高級語言得到了廣泛的應用空間。多數的ARM晶片裏面都包含有DMA控制器,這樣就進一步提高了整個晶片的數據能力。(3)操作系統的支持如果一個系統有多任務的調度、圖形化的人機介面、檔管理系統、網路協議等需求,那麼操作系統將成為一個必然的選擇。複雜的操作系統在多進程管理中需要硬體記憶體保護單元(MPU)或管理單元(MMU)的支持,ARM的很多CPU有這些支持,可運行Linix、WinCE和VxWorks等眾多操作系統。象ARM7DMI既沒有MMU也沒有MPU,但是仍然可以支持uCLinux和uc/OS等操作系統。33.1.1基於指令集體系結構的分類版本ARM架構自誕生至今,發展並定義了6種不同的版本:V1版架構:只在原型機ARM1出現過。其基本性能如下:基本的數據處理指令(無乘法);位元組、半字和字的Load/Store指令;轉移指令,包括副程式調用及鏈接指令;軟體中斷指令;尋址空間64MB(226)。V2版架構:在V1版上進行了擴充,例如ARM2和ARM3架構,並增加了以下功能:乘法和乘加指令;支持協處理器操作指令;快速中斷模式;SWP/SWPB的最基本存儲其餘寄存器交換指令;尋址空間64MB。V3版架構:V3架構對ARM體系結構作了較大的改動,把尋址空間增至32位,增加了當前程式狀態寄存器CPSR和存儲程式狀態寄存器SPSR,以便對異常的處理。增加了中止和未定義2種處理模式。ARM6就是採用該版架構。4

V4版架構:它在V3版架構上作了進一步擴充,使ARM使用更加靈活。ARM7、ARM8、ARM9都採用該版結構。增加功能有符號化和半符號化半字及符號化位元組的存取指令;增加了16位的Thumb指令集;完善了軟體中斷SWI指令的功能;處理器系統模式引進特權方式時使用用戶寄存器操作;把一些未使用的指令空間撲獲為未定義指令。V5版架構:ARM10

和XScale都採用該版架構。新增指令有:帶有連接和交換的轉移BLX指令;計數前導零CLZ指令;BBK中斷指令;增建了數字信號處理指令;為協處理器增加了更多可選擇的指令。V6版新架構是在低功耗的同時,還強化了圖形處理性能,追加有效進行多媒體處理的SIMD功能。於2002年推出,ARM11採用該架構,具體新增加了以下功能:THUMBTM-35%代碼壓縮;DSP擴充-高性能定點DSP功能;JazelleTM-Jova性能優化,可提高8倍;Media擴充-音/視頻性能優化,可提高4倍。

另外還支持多微處理器內核。51)系列產品分類ARM處理器當前有5個產品系列:ARM7、ARM9、ARM9E、ARM10和ARM11。進一步的產品來自於合作夥伴,例如IntelXscale微體系結構和產品。ARM7、ARM9、ARM9E和ARM10是4個通用處理器系列。每個系列提供一套特定的性能來滿足設計者對功耗、性能、和體積的需求。ARM11是第5個產品系列,是專門為安全設備而設計的。性能高達1200MIPS(Xscale微體系結構),功耗測量為μW/MHz,並且所有體系結構相容。3.1.2ARM微處理器系列產品及性能簡介62)ARM嵌入式微處理器性能簡介ARM公司是嵌入式RISC處理器的知識產權IP供應商,它為ARM架構處理器提供了ARM處理器內核(如ARM7TDMI等)和ARM處理器核(如ARM720T等)。一般處理器核是在最基本的處理器內核基礎上增加了Cache、記憶體管理單元MMU、協處理器C15、先進微控制器匯流排架構AMBA介面以及EMT宏單元等部件,這樣就構成了ARM處理器核。由半導體公司在上述的處理器內核和處理器核的基礎上設計,嵌入各種週邊和處理部件,形成各種嵌入式微處理器MPU。例如:Intel公司:PXA255系列微處理器(採用XScale核);TI公司:OMAP5910微處理器,(採用ARM+DSP雙核);Motorola公司:MX1微處理器MPU(ARM922T核);ATMEL公司:AT91系列MPU(採用ARM7TDMI內核、ARM920T核);Philips公司:IPC2200系列(ARM7TDMI內核);等等。7ARM處理器內核/處理器核的分類處理器內核/整數內核(ProcessorCore/IntegerCore):ARM7TDMI,ARM9TDMI,ARM9E-S,ARM10TDMI,ARM10E等。ARMCPU處理器核(ARMCPUCores):ARM710T/720T/740T,ARM920T/940T,ARM946E-S,ARM966E-S,ARM1020E等。8(1)ARM7T和ARM7EFamilyUnifiedCache記憶體管理流水線級別ThumbDSPJazelleARM7TDMI無無3有無無ARM7TDMI-S無無3有無無ARM710T/720T8kMMU3有無無ARM740T8k或4kProtectionUnit3有無無ARM7EJ-S無無3有有有9ARM7微處理器系列主要特點

ARM7微處理器系列為低功耗的32位RISC處理器,最適合用於對價位和功耗要求較高的消費類應用。其具有如下特點:具有嵌入式ICE-RT邏輯,調試方便。極低的功耗(100mW左右),適合對功耗要求較高的應用,如可攜式產品。能夠提供0.9MIPS/MHZ的三級流水線結構。

相容16位Thumb指令集;對操作系統的支持廣泛,包括WinCE、Linux等;指令系統與ARM9、ARM10E系列相容,便於用戶的產品升級換代;主頻通常為20~100MHZ。速度為0.9MIPS/MHz。

ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器內核。主要性能:工藝0.35um(新近0.25um)、電壓3.3V(新近1.2v)、時鐘20~133MHZ、功耗87mW。10ARM微處理器尾碼命名的含義標誌含義說明T支持Thumb指令集Thumb指令集版本1:ARMv4TThumb指令集版本2:ARMv5TThumb-2:ARMv6TD片上調試DebugM支持長乘法32位乘32位得到64位,32位的乘加得到64位IEmbeddedICE

線上仿真EDSP指令增加了DSP演算法處理器指令:16位乘加指令,飽和的帶符號數的加減法,雙字數據操作,cache預取指令JJava加速器Jazelle提高java代碼的運行速度S可綜合提供VHDL或Verilog語言設計檔11(2)ARM9FamilyCache記憶體管理流水線級別ThumbDSPJazelleARM9TDMI無無5有無無ARM920T16K/16kMMU5有無無ARM922T8k/8kMMU5有無無ARM940T4k/4kProtectionUnit5有無無12ARM9微處理器系列主要特點ARM9系列微處理器在高性能和低功耗特性方面提供最佳的性能,在相同的工藝下其性能是ARM7的2倍,具有以下特點:5級整數流水線,工作頻率一般為200MHz左右,提供1.1MIPS/MHZ的哈佛結構;支持32位ARM指令集和16位Thumb指令集;支持32位的高速AMBA匯流排介面;

全性能的MMU,支持包括WinCE、Linux等操作系統,MPU支持即時操作系統。支持數據Cache和指令Cache,具有更高的指令和數據處理能力。ARM9是低價、低功耗、高性能系統處理器。典型產品ARM9TDMI主要性能:工藝0.25um(新近0.18um)、電壓2.5V(新近1.2v)、時鐘0-200MHZ、功耗150mW。

ARM9系列主要用於無線設備、儀器儀錶、安全系統、機頂盒、高端印表機、數字照相機和數字攝像機等。

13ARM9EFamilyCache記憶體管理流水線級別ThumbDSPJazelleARM9E-S無無5有有無ARM946E-S4k-1M/4k-1MProtectionUnit5有有無ARM966E-S無無5有有無ARM968E-S無無5有有無ARM9EJ-S無無5/6有有有ARM926EJ-S14k-128k/4k-128kMMU5/6有有有14ARM9E微處理器系列主要特點ARM9E系列微處理器為綜合型處理器,使用單一的處理器內核提供了微處理器、DSP、Java應用系統的解決方案,極大地減少了晶片的面積和系統的複雜程度。具有以下特點:支持DSP指令集,適合於需要高速數字信號處理的場合;5級整數流水線;最高主頻可達300MIPS;支持32位ARM指令集和16位Thumb指令集;支持32位的高速AMBA匯流排介面;支持VFP9浮點處理協處理器全性能的MMU,支持包括WinCE、Linux等操作系統,MPU支持即時操作系統。●支持數據Cache和指令Cache,具有更高的指令和數據處理能力。

ARM9E系列主要用於下一代無線設備、成像設備、工業控制、存儲設備、數字消費品和網用場合。

15(3)ARM10E和ARM10TFamilyARM10EJ-S無無6有有有ARM1026EJ-S0,4-128k/0,4-128kMMU6有有有Cache記憶體管理流水線級別ThumbDSPJazelleARM10E無無6有有無ARM1020E32k/32kMMU6有有無ARM1022E16k/16kMMU6有有無ARM10TDMI無無6有無無ARM1020T32k/32kMMU6有無無16ARM10E微處理器系列主要特點ARM10E系列微處理器由於採用了新的體系結構,與同等的ARM9處理器相比較,在同樣的時鐘頻率下,性能提高了近50%,同時又大大減少了晶片的功耗,在相同的工藝下其性能是ARM9的2倍。具有以下特點:支持DSP指令集,適合於需要高速數字信號處理的場合;6級整數流水線;工作頻率一般為400MHz左右;支持32位ARM指令集和16位Thumb指令集;支持32位的高速AMBA匯流排介面;支持VFP10浮點處理協處理器;內嵌並行讀/寫操作部件;全性能的MMU,支持包括WinCE、Linux等操作系統,MPU支持即時操作系統。支持數據Cache和指令Cache,具有更高的指令和數據處理能力。

ARM10E系列主要用於下一代無線設備、成像設備、工業控制、存儲設備、數字消費品和網用場合。

17(4)ARM11FamilyCache記憶體管理流水線級別ThumbDSPJazelle浮點運算ARM1136J-S4-64kMMU8有有有無ARM1136JF-S4-64kMMU8有有有有ARM1156T2-S可配置9Thumb-2有無無ARM1156T2F-S可配置9Thumb-2有無有18

ARM11是採用ARMV6結構,內部具有8級流水線處理、動態分支預測與返回堆疊。在0.13um工藝下,ARM11TM的運行頻率高達500-1000Mhz,運算速度一般為1000DMIPS。

ARM11中另一個重要的結構改進,是靜、動組合的跳轉予判。ARM11包含一個64位端口、4種狀態的跳轉目標地址緩存。新的ARM11支持SIMD指令,可使某些演算法的運算的速度提高2-3倍。目前ARM公佈了四個新的ARM11系列微處理器內核,分別是ARM1156T2-S內核、ARM1156T2F-S內核、ARM1176JZ-S內核、ARM1176JZF-S內核。19(5)XScale

結構 Intel公司發展了新一代代微處理器體系結構就是XScale處理器。XScale處理器是基於ARMv5TE(第5版)體系結構所設計的,具有協處理器介面,可以直接擴展DSP處理器。目前已使用在數字移動電話、個人數字助理和網路產品等場合。XScale處理器是目前主要推廣的一款ARM處理器。基於XScalePXA250微處理器性能如下:內核工作頻率:100~400MHZ;I-Cache32KB和D-Cache32KB;I-MMU+D-MMU(各32路變換後備緩衝器TLB快表);7/8級流水線

系統記憶體介面:100MHZSDRAM;4~256MBSDRAM;支持16~256MBDRAM;4個SDRAM區,每個區支持64MB記憶體;支持2個PCMCIA/CF卡插槽。週邊介面:具有16個通道的DMA控制器;LCD控制器(支持被動DSTN和主動TFT顯示,最大解析度800*600*16;系統集成模組(GPIO、中斷控制器、PWM);USB,3個UART,紅外(FIR)和I2C匯流排介面及多媒體通信口。20(6)ARM和DSP雙核微處理器簡介TI公司的OMAP5910處理器是一款具有DSP(TMS320C54X)+RISC(ARM7TDMI核)的雙核定點數字信號運算的微處理器。其具有高速度、低功耗,並提高了編程的靈活性,有利於對產品的軟硬體升級,用於實現就有特殊功能的產品。主要特性如下:帶有72K*16集成SRAM的16位低功耗DSP使工作頻率可達100MHZ;集成了常見的DSP子系統週邊部件;帶有16KB集成SRAM和ARM7TDMI微處理器核,使工作頻率可高達47.5MHZ。集成的MCU子系統週邊部件(UART/irDA介面、串行週邊介面SPI、36個I/O引腳、IIC介面、2個通用定時器、1個看門狗定時器、中斷控制器、支持Flach/SRAM/SDRAM/ROM的外部記憶體介面等)21(7)PowerPC架構微處理器簡介PowerPC架構的特點是可伸縮性好,方便靈活。PowerPC處理器品種很多,既有通用的處理器,又有嵌入式控制器和內核,應用範圍非常廣泛,從高端的工作站、伺服器到桌面電腦系統,從消費類電子產品到大型通信設備等各個方面。目前PowerPC獨立微處理器與嵌入式微處理器的主頻從25MHz~700MHz不等,它們的能量消耗、大小、整合程度、價格差異懸殊,主要產品模組有主頻350MHz~700MHzPowerPC750CX和750CXe以及主頻400MHz的PowerPC440GP等。22PowerPC系列-MPC55532位嵌入式處理器,其特點:帶有浮點單元的PowerPC內核26K位元組的快速RAM和6K位元組的TPU微碼RAM5V編程電壓的448K位元組的flashEEPROM5VI/O系統串行系統:基於佇列的串行多通道模組,兩個CAN2.0B控制器模組50通道定時器系統:雙定時處理單元(TPU3),模組化I/O系統32個模擬量輸入:兩個基於佇列的A/D轉換器(QADC64)272引腳的PBGA封裝工作頻率40MHz,-40℃~125℃,雙電源供電23(8)典型的嵌入式處理器(中國)ARM進入中國幾年來,已經與中興、華為、東南大學、上海積體電路設計中心、中芯國際和大唐電信簽訂了技術授權協議。國內的微處理器系列有:方舟系列:RISC技術應用:網路、終端、工控方舟1號性能166MHz

功耗 1.2瓦@166MHz

工藝 0.25微米CMOS,1層多晶矽,5層金屬封裝 HS-BGA,272個管腳,27mm*27mm方舟2號性能400MHz,

功耗 360mW@400MHz

工藝 0.18微米CMOS,1層多晶矽,6層金屬封裝 PBGA,304個管腳,23mm*23mm龍芯系列是神州龍芯公司推出的兼顧通用和嵌入式微處理器特點的新一代32微處理器。採用0.18微米CMOS工藝製造,平均功耗0.4W。243.1.3ARM微處理器體系結構

1)ARM微處理器結構特徵(1)ARM微處理器的工作狀態從編程的角度看,ARM微處理器的工作狀態一般有兩種,並可在兩種狀態之間切換:第一種為ARM狀態,此時處理器執行32位的字對齊的ARM指令;第二種為Thumb狀態,此時處理器執行16位的、半字對齊的Thumb指令。

(2)ARM體系結構的記憶體格式記憶體格式是指字、半字、位元組在記憶體中存放的格式,也反映了它們之間的關係。具體包括有:大端格式:被存放字數據的高位元組存儲在存儲系統的低地址中,而被存放的字數據的低位元組則存放在存儲系統的高地址中。小端格式:與大端存儲格式相反,在小端存儲格式中,存儲系統的低地址中存放的是被放字數據中的低位元組內容,存儲系統的高地址存放的是被存字數據中的高位元組內容。25

首先對字(Word)、半字(Half-Word)、位元組(Byte)的概念作一個說明:字(Word):在ARM體系結構中,字的長度為32位,而在8位/16位處理器體系結構中,字的長度一般為16位,請注意區分。半字(Half-Word):在ARM體系結構中,半字的長度為16位,與8位/16位處理器體系結構中字的長度一致。位元組(Byte):在ARM體系結構和8位/16位處理器體系結構中,位元組的長度均為8位。ARM體系結構使用232個8位位元組的單一、線性地址空間,位元組地址為0—232-1;也可以將地址空間看作為由230個32位的字組成,字地址可被4整除,且按字對準。也可以看作成由231個16位半字組成。26

(3)處理器模式ARM微處理器支持7種運行模式,分別為:─用戶模式(USR):ARM處理器正常的程式執行狀態─快速中斷模式(FIQ

):用於高速數據傳輸或通道處理用於快中斷服務程式。當處理器的快速中斷請求引腳有效,且CPSR(6位)中的F位為0時,產生FIQ異常。─外部中斷模式(IRQ

):用於通用的中斷處理,當處理器的外部中斷請求引腳有效,且CPSR(7位)中的I位為0時,產生IRQ異常。系統的外設可通過該異常請求中斷服務。─管理模式(SVE):操作系統使用的保護模式。用於軟體中斷SWI指令和重啟(複位),一般操作系統運行在該模式。─指令終止模式(abt):當指令預取終止時進入該模式。27

─數據訪問終止模式(abt):當數據訪問終止時進入該模式,可用於虛擬存儲及存儲保護。若處理器數據訪問指令的地址不存在,或該地址不允許當前指令訪問時,產生數據中止異常。─系統模式(SYS):運行具有特權的操作系統任務,和用戶模式共用寄存器,但是許可權比用戶模式高。-未定義指令(UND):當ARM處理器或協處理器遇到不能處理的指令時,產生未定義指令異常。可使用該異常機制進行軟體仿真,即用軟體來模擬硬體功能,比如浮點運算。282)ARM處理器的寄存器如ARM7處理器總共有37個寄存器被分為若干個組(BANK):

30個通用寄存器

6個狀態寄存器

1個專用於記錄當前狀態

5個專用於記錄狀態切換前的狀態

1個程式計數器PC同時ARM處理器又有7種不同的處理器模式,在每一種模式下都有一組相應的寄存器與之對應。即在每一種處理器模式下,可訪問的寄存器包括15個通用寄存器(R0~R14)、1至2個狀態寄存器和程式計數器。在使用的寄存器中,有些是公用的、有些是獨立使用的。29ARM的寄存器組織Ⅰ30

ARM的寄存器組織Ⅱ(1)通用寄存器:包括R0~R15,以及程式計數器PC。當C和彙編互相調用時,R0-R3用來傳遞函數參數,可記為a0-a3。R0~R7稱為不分組寄存器;即在所有處理器模式下,他們都可被同樣訪問,沒有體系結構所隱含的特殊用途。R8~R14稱為分組寄存器;意味著對它們的訪問與當前處理器的模式有關(不同模式下具有不同的功能)。例如:R8~R12有兩組物理寄存器。一組屬於快速模式(R8_fiq~R12_fiq),另一組屬於其他模式(R8_usr~R12_usr);R13和R14有6組物理寄存器。其中只在用戶模式和系統模式共用一組,其他模式下都是專用的。寄存器R13通常作為堆疊指針(SP);寄存器R14常用作程式連接寄存器(LR);寄存器R15,又稱為程式計數器PC

。除了User和System模式外,各種模式都有自己獨立的R13和R1431ARM的寄存器組織Ⅲ(1)(2)狀態寄存器:當前程式狀態寄存器CPSR,可以在任何工作模式下被訪問;程式狀態備份寄存器SPSR,只有在異常模式下,才能被訪問;32ARM的寄存器組織Ⅲ(2)條件標誌位標誌位含

義N當兩個補數表示的帶符號數運算時,N=1表示運算的結果為負數;N=0表示運算的結果為正數或零;ZZ=1表示運算的結果為零;Z=0表示運算的結果不為零;C有3種情況會改變C的值:加法運算(包括比較指令CMN):當運算結果產生了進位時(無符號數上溢出),C=1,否則C=0。減法運算(包括比較指令CMP):當運算時產生了借位(無符號數下溢出),C=0,否則C=1。對於包含移位操作的非加/減運算指令,C為移出值的最後一位。V對於加/減法運算指令,當運算元和運算結果為二進位的補數表示的帶符號數時,V=1表示符號位溢出。Q在ARMv5及以上版本的E系列處理器中,用Q標誌位指示增強的DSP運算指令是否發生了溢出。33ARM的寄存器組織Ⅲ(3)控制位標誌位含義II=1,表示禁止IRQ中斷;否則,表示允許IRQ中斷FF=1,表示禁止FIQ中斷;否則,表示允許FIQ中斷T對於ARMv4以上版本的T系列處理器,T=0,表示執行ARM指令,否則,表示執行Thumb指令;對於ARMv5以上版本的非T系列處理器,T=0,表示指令ARM指令,否則,表示強制下一條執行的指令產生未定義指令中斷。M[4:0]M[4:0]處理器工作模式可訪問的寄存器10000用戶模式PC,R0~R14,CPSR10001快速中斷模式PC,R0~R7,R8_fiq~R14_fiq,CPSR,SPSR_fiq10010外部中斷模式PC,R0~R12,R13_irq~R14_irq,CPSR,SPSR_irq10011管理模式PC,R0~R12,R13_svc~R14_svc,CPSR,SPSR_svc10111中止模式PC,R0~R12,R13_abt~R14_abt,CPSR,SPSR_abt11011未定義指令模式PC,R0~R12,R13_und~R14_und,CPSR,SPSR_und11111系統模式PC,R0~R14,CPSR34

3)ARM處理器對異常的回應(1)將下一條指令的地址存入相應連接寄存器LR,以便程式在處理異常返回時能從正確的位置重新開始執行。(2)將CPSR複製到相應的SPSR中。(3)根據異常類型,強制設置CPSR的運行模式位。(4)強制PC從相關的異常向量地址取下一條指令執行,從而跳轉到相應的異常處理程式處。

4)從異常返回異常處理完畢之後,ARM微處理器會執行以下幾步操作從異常返回:(1)將連接寄存器LR的值減去相應的偏移量後送到PC中。(2)將SPSR複製回CPSR中。35異常向量(ExceptionVectors

0x0000,0000:複位0x0000,0004:未定義指令0x0000,0008:軟體中斷0x0000,000C:中止(預取指令)0x0000,0010:中止(數據)0x0000,0014:保留0x0000,0018:IRQ0x0000,001C:FIQ利用ARM處理器中的調試模組的功能,通過其JTAG邊界掃描口來與仿真器連接,以達到對晶片內部的工作狀態進行監控的目的。JTAG介面同JTAG仿真器硬體連接,利用相應的調試工具觀察CPU狀態。調試工具可以檢查和控制CPU的運行。363.2ARM微處理器的指令系統名詞解釋:

機器指令、偽指令、宏指令機器指令能被處理器直接執行,而偽指令和宏指令不能。機器指令包括ARM指令集和Thumb指令集;偽指令是在根源程式彙編期間,由彙編編譯器處理。其作用是為組合語言程式完成準備工作;宏指令在程式中用於調用宏,宏是一段獨立的程式代碼;在程式彙編時,對宏調用進行展開,用宏體代替宏指令。ARM指令總體介紹所有指令都是32位的(16位的Thumb指令集)。指令能夠條件執行。具有靈活的第二運算元,既可以是立即數,也可以是邏輯運算數。具有RISC指令的特點,指令少,且等長,便於充分利用流水線技術,使用多寄存器。使用load/store結構load/store–從記憶體中讀某個值,操作完後再將其放回記憶體中。Thumb指令Thumb是一套16位指令系統優化代碼密度:對C代碼的編譯結果,僅是ARM的65%在窄寬度數據匯流排存儲情況下提高性能功能上是ARM指令的子集內核有兩種執行狀態-ARM和Thumb,使用BX指令進行切換在Thumb狀態下

BXRn在ARM狀態下

BX<condition>RnARM/Thumb選擇0-ARM狀態1-Thumb狀態目標地址031013101BX39

ARM體系結構支持ARM的組合語言與C與C++的混合編程。一般的在一個完整的程式設計的中,除了初始化部分用組合語言完成外,其大部分的編程任務一般都用C或C++完成。尋址方式:立即數尋址、寄存器尋址、寄存器移位尋址、寄存器間接尋址、基址變址尋址、相對尋址、多寄存器尋址、塊拷貝尋址、堆疊尋址。ARM指令集數據處理指令;跳轉指令;

Load/Store指令;程式狀態寄存器指令;協處理器指令;軟體中斷指令403.2.1ARM指令的尋址方式尋址方式就是處理器根據指令中給出的地址資訊來尋找物理地址的方式。目前ARM指令集支持如下幾種常見的尋址方式。1、立即尋址(立即數尋址)例如ADDR0,R0,#1;R0←R0+12、寄存器尋址例如ADDR0,R1,R2;R0←R1+R23、寄存器間接尋址例如ADDR0,R1,[R2];R0←R1+[R2]4、基址變址尋址例如LDRR0,[R1,#4];R0←[R1+4]41

5、多寄存器尋址一次可以傳送幾個寄存器的值。允許一條指令傳送16個寄存器的任何子集(或所有16個寄存器)例如LDMIAR1,{R0,R2,R5};R0←[R1]R2←[R1+4]R5←[R1+8]32位字對準6、堆疊尋址ARM微處理器支持4種類型的堆疊工作方式,即滿遞增堆疊:堆疊指針指向最後壓入的數據,且由低地址向高地址生成。滿遞減堆疊:堆疊指針指向最後壓入的數據,且由高地址向低地址生成。空遞增堆疊:堆疊指針指向下一個將要放入數據的空位置,且由低地址向高地址生成。空遞減堆疊:堆疊指針指向下一個將要放入數據的空位置,且由高地址向低地址生成。7、相對尋址

與基址變址尋址方式類似,相對尋址以程式計數器PC的當前值為基地址,指令種地地址標號作為偏移量,將兩者相加之後得到運算元的有效地址。421)、ARM體系結構的主要特徵大量的寄存器,都可用於多種用途;Load-Store體系結構即加載/存儲型,指令集僅能處理寄存器中的數據,而且處理結果都要放回寄存器中,對系統記憶體的訪問則需要通過專門的加載/存儲指令來完成。3地址指令(兩個源運算元寄存器和結果寄存器獨立設定)。每條指令都條件執行包含非常強大的多寄存器Load和Store指令能在單時鐘週期執行的單條指令內完成一項普通的移位操作和一項普通的ALU操作。能過協處理器指令集來擴展ARM指令集,包括在編程模式下增加了新的寄存器和數據類型。在Thumb體系結構中以高密度16位壓縮形式表示指令集。

3.2.2ARM微處理器的指令集概述43 2)ARM指令集的分類ARM指令集可分為如下幾類形式:(1)數據處理指令:完成寄存器的數據的算術和邏輯操作,在執行中需要兩個運算元,產生單個結果。這類指令只能使用和改變寄存器中的值,每一個運算元寄存器和結果寄存器都在指令中獨立的指定,即使用3地址模式。例:ADDR0,R1,R2;R0=R1+R2數據處理指令簡介:算術操作:ADD、ADC、SUB、SBC、RSB(逆向減法)、RSC、MUL、MAL(32位乘加)、SMULL(有符號64位乘法)、SMLAL、UMULL、UMLAL。如RSBR0,R1,R2;R0=R2-R1按位邏輯操作:AND、ORR、EOR、BIC(清除位操作)44

比較操作:CMP、CMN、TST(按位與)、TEQ(按位異或)寄存器移位操作:LSL、LSR(邏輯右移)、ASL(算術左移)、ASR、ROR(迴圈右移)、RRX(帶擴展迴圈右移)。例:ADDR0,R2,R3,LSR#1;R0=R2+(R3〈〈1)將R3中的內容左移1位再與R2相加送入R0。(2)數據傳送指令:這類指令把記憶體中的值拷貝到寄存器中(Load)或把寄存器的值拷貝到記憶體中(Store)加載/存儲指令:用於在寄存器和記憶體之間傳送數據,加載指令用於將記憶體中的數據傳送到寄存器,存儲指令則完成相反的操作。常用的指令如下:LDR(字加載)、LDRB(位元組加載)、LDRH(半字加載)、STR(位元組存儲)、STRH(半字存儲)。批量數據加載/存儲指令:批量加載可以一次在一片連續的記憶體中的數據傳送到多個記憶體,批量存儲則完成相反的操作。常用的加載/存儲指令如下:LDM(批量數據加載)、STM(批量數據存儲)。45

數據交換指令:在記憶體和寄存器之間交換數據。

SWP(字數據交換)和SWPB(位元組數據交換)程式狀態寄存器訪問指令MRS(程式狀態寄存器到通用寄存器的數據傳送)、MSR(通用寄存器到程式狀態寄存器的數據傳送)

。移位指令:ARM微處理器內嵌的桶型移位寄存器,支持數據的各種移位操作,一位操作在ARM指令集中部作為單獨的指令使用,它只能作為指令格式中的一個字段,在組合語言中表示為指令的選項。具體為6種類型。

LSL(邏輯左移)、ASL(算術左移)、LSR(邏輯右移)、ASR(算術右移)、ROR(迴圈右移)、RRX(帶擴展的迴圈右移)。例如:MOVR0,R1,LSL#2;將R1中的內容左移兩位後傳送到R0中。46

(3)控制流指令:一般指令在執行時使用存儲於連續的記憶體地址中的指令。控制流指令使執行切換到不同的地址。切換是永久的或保存返回地址以恢復原來的執行順序,或者陷入系統代碼。如跳轉指令在ARM程式中有兩種方法可以實現程式流程的跳轉。使用專門的跳轉指令和直接向程式計數器PC寫入跳轉地址。如BLable;無條件轉移到標號地址。協處理器指令ARM微處理器可支持多個協處理器。主要用於ARM處理器初始化ARM協處理器的數據處理操作,以及在ARM處理器的寄存器和協處理器的寄存器之間傳送數據,和在ARM協處理器的寄存器和寄存器之間傳送數據。具體包括5種指令。

CDP(操作)、LDC(數據加載)、STC(數據存儲)、MCR(處理器和協處理器寄存器的數據傳送)、MRC(處理器和協處理器寄存器的數據傳送)。異常產生指令),BKPT(中斷點中斷)。

473)Thumb指令及應用

Thumb是ARM體系結構的擴展。它從標準32位ARM指令集抽出來的36條指令格式,可重新編成16位的操作碼。這能帶來很高的代碼密度,因為Thumb指令的寬度只有ARM指令寬度的一半。在運行時,這些16位的Thumb指令又由處理器解壓成32位的ARM指令。ARM體系結構除了支持執行效率很高的32位ARM指令集以外,同時支持16位的Thumb指令集。所有的Thumb指令都有對應的ARM指令,而且Thumb指令的編碼模型也對應於ARM的編碼模型,在應用程式的編寫過程中,只要遵循一定調用的規則,Thumb副程式就可以相互調用。當處理器執行ARM程式段時,稱ARM處理器處於ARM工作狀態,當處理器在執行Thumb程式段時,稱為處於Thumb工作狀態。Thumb指令集中的數據處理指令的運算元仍然是32位,指令地址也為32位,但Thumb指令集為實現16位的指令長度,捨棄了ARM指令集的一些特性,如大多數的Thumb指令是無條件執行的,而幾乎所有的ARM指令都是有條件的;48

大多數的Thumb數據處理指令的目的寄存器與其中一個原寄存器相同。由於Thumb指令的長度為16位,即只用ARM指令一半的位數來實現同樣的功能,所以要實現特定的程式功能,所需的Thumb指令的條數較ARM指令多。顯然若對系統的性能有較高要求時,應採用32位的存儲系統和ARM指令集,若對系統的成本及功耗有較高的要求,則應使用16位的存儲系統和Thumb指令集。當然若兩者結合使用,充分發揮其各自的特點,會取得更好的效果。Thumb指令集可以看作是ARM指令集的一個子集,Thumb指令長度為16位,但Thumb指令集中的數據處理指令的運算元仍然是32位的,指令尋址地址也是32位的。Thumb指令集由四大類構成:數據處理指令;跳轉指令;Load/Store指令;和軟體中斷指令。494)ARM根源程式檔

檔類型擴展名組合語言原始檔案.sC語言原始檔案.cC++原始檔案.cpp引入檔.INC頭檔.h505)組合語言上機過程

用ARM組合語言編寫的根源程式,要使之運行必須經過以下幾個步驟:1.編輯彙編根源程式,保存為檔案名尾碼是“.s”的檔;2.調用組合語言程式對根源程式進行彙編,生成目標檔;3.連接目標檔,生成可以放進ARM軟體仿真器進行調試的映象檔或者可下載到ARM的目標板執行的二進位檔;4.對生成的最終檔進行調試。51ARM的開發工具SDT2.5和

ADS1.2

ARMSDT的英文全稱是ARMSoftwareDevelopmentKit,是ARM公司為方便用戶在ARM晶片上進行應用軟體開發而推出的一整套集成開發工具。ARMSDT經過ARM公司逐年的維護和更新,目前的最新版本是2.5.2,但從版本2.5.1開始,ARM公司宣佈推出一套新的集成開發工具ARMADS1.0,取ARMSDT而代之,今後將不會再看到ARMSDT的新版本。

ARMSDT目前擁有廣泛的ARM軟體開發用戶群體,也被相當多的ARM公司的第三方開發工具合作夥伴集成在自己的產品中。

ARMSDT支持最高到ARM9的所有ARM處理器晶片的開發,包括StrongARM。52

ADS開發環境

ADS1.2(ARM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论