《ARM及XScale介绍学习教程.pptx》由会员分享,可在线阅读,更多相关《ARM及XScale介绍学习教程.pptx(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、13.1 ARM微处理器概述第1页/共68页2ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。第2页/共68页3ARM公司是专门从事基于RISC技术芯片设计开发
2、的公司,作为知识产权供应商,它本身不直接从事芯片生产,靠转让设计许可,由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,从而使产品更容易进入市场被消费者所接受,更具有竞争力。第3页/共68页4ARM处理器系列下面所列的是ARM微处理器的几个系列,以及其他厂商基于ARM体系结构的处理器,这些处理器除了具有ARM体系结构的共同特点以外
3、,每一个系列的ARM微处理器都有各自的特点和应用领域。ARM7系列ARM9系列ARM9E系列ARMl0E系列SecurCore系列Intel的XscaleIntel的StrongARM第4页/共68页5Xscale处理器Xscale处理器是基于ARMv5TE体系结构的解决方案,是一款性能全、性价比高、功耗低的处理器。它支持16位的Thumb指令和DSP指令集,已使用在数字移动电话、个人数字助理和网络产品等场合。Xscale处理器是Intel目前主要推广的一款ARM微处理器。第5页/共68页6RISC体系结构ARM处理器实现加载存储(load/store)体系结构是典型的RISC处理器。只有加载
4、和存储指令可以访问存储器。数据处理指令只对寄存器的内容进行操作。第6页/共68页7精简指令集计算机RISC(ReducedInstructionSetComputer)结构的产生是相对于传统的复杂指令集计算机CISC(ComplexInstructionSetComputer)结构而言的。传统的CISC计算机的指令集随着计算机的发展而引入了各种各样的复杂指令,使得指令集和为此要实现这些指令的计算机体系结构越来越复杂,已经不堪重负。第7页/共68页8经过大量的研究和分析,发现在CISC的指令集中,各种指令的使用频度相差悬殊。大概有20%的指令被反复使用,使用量约占整个程序的80%;而有80%左右
5、的指令则很少使用,其使用量约占整个程序的20%。这就是所谓的20%80%定律。第8页/共68页9RISC特点如下:指令规整、对称、简单。指令小于100条,基本寻址方式有23种。单周期指令。指令字长度一致,单拍完成,便于流水操作;ARM7三级流水线:取指、译码、执行;ARM9五级流水线;ARMl0六级流水线。大量的寄存器。寄存器不少于32个。数据处理器的指令只对寄存器的内容操作。只有加载存储指令可以访问存储器。第9页/共68页10几种常用的调试方法指令集模拟器 一种利用PC机端的仿真开发软件模拟调试的方法。驻留监控软件 驻留监控程序运行在目标板上,PC机端调试软件可通过并口、串口、网口与之交互,
6、以完成程序执行、存储器及寄存器读写、断点设置等任务JTAG仿真器 通过ARM芯片的JTAG边界扫描口与ARM核进行通信,不占用目标板的资源,是目前使用最广泛的调试手段在线仿真器 使用仿真头代替目标板上的CPU,可以完全仿真ARM芯片的行为。但结构较复杂,价格昂贵,通常用于ARM硬件开发中第10页/共68页11什么是JTAG?JTAG是Joint Test Action Group的缩写是标准JTAG的建立使得集成电路固定在PCB上,只通过边界扫描便可以被测试在ARM7TDMI处理器中,可以通过JTAG直接控制ARM的内部总线,IO口等信息,从而达到调试的目的第11页/共68页12第12页/共6
7、8页13ARM的JTAG调试结构第13页/共68页14ARM的JTAG调试接口1、ARM的JTAG调试结构一个典型的ARM基于JTAG调试结构如图所示。Debug主控端协议转换器调试目标机处理器的开发系统负责转换Debug主控端发出的高级ARM调试指令为底层的和ARM内核通信的运行公司或第三方提供的调试软件的机第14页/共68页15Debug主控(Host)通常是运行有ARM公司或者第三方提供的调式软件的PC,通常用的调试软件有ARM Debug for Window(ADW),Linux下的arm-elf-gdb等。通过这些调试软件,可以发送高级的ARM指令,比如:设置断点,读写存储器,单步
8、跟踪,全速运行等。第15页/共68页16协议转换器(Protrocol converter)负责转换Debug主控端发出的高级ARM调式命令为底层的和ARM内核通信的JTAG命令。Debug主控端和协议转换器之间的介质可以有很多种,比如:以太网,USB,RS-232,并口等。主控端和协议转换器之间的通信协议最典型的就是ARM公司提供的Angle标准,也可以是第三方厂家自己定义的标准。关于Angle的协议,请参考ARM SDT和ADS,ajj公司的OpenICE32,EPI公司的Jeeni等。Debug目标板就是指系统的调试对象。第16页/共68页17JTAG的典型信号TMSTMS:测试模式选择
9、(测试模式选择(Test Mode SelectTest Mode Select),通过),通过TMSTMS信信号控制号控制JTAGJTAG状态机的状态状态机的状态TCK TCK:JTAGJTAG的时钟信号的时钟信号TDITDI:数据输入信号:数据输入信号TDO TDO:数据输出信号:数据输出信号nTRSTnTRST:JTAGJTAG复位信号,复位复位信号,复位JTAGJTAG的状态机和内部的宏单的状态机和内部的宏单元(元(MacrocellMacrocell)第17页/共68页18JTAG与AngelJTAG调试:协议转换器解释上位机传送过来的命令,通过JTAG控制ARM执行。Angel调试
10、:协议转换器可以直接做为目标板的Firmware的一部分。直接执行从宿主机传送过来的调试命令;并回送相应的数据。Angel可以节省专门的JTAG仿真器,但是,它需要软件,或者是嵌入式操作系统的支持,做不到完全的实时仿真。而JTAG仿真是通过硬件和控制ARM的EmbeddedICE实现的,可以做到实时仿真。第18页/共68页19 ARM微处理器的体系结构 第19页/共68页20数据和指令类型ARM采用的是32位架构。ARM约定:Byte:8bitHalfword:16bits(2bytes)Word:32bits(4bytes)大部分ARMcore提供:ARM指令集(32-bit)Thumb指令
11、集(16-bit)第20页/共68页21数据类型字(Word)字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位,请注意区分。半字(Half-Word)半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。字节(Byte)各种处理器体系结构中,字节的长度均为8位。第21页/共68页22ARM微处理器的工作状态从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:ARM状态,此时处理器执行32位的字对齐的ARM指令;Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。第22页/共68页23ARM处理器在两种工作状态之间可以切换:
12、进入Thumb状态。当操作数寄存器的状态位(地址的最低位,即位0)为1时,执行BX指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ、FIQ、Undef、Abort和SWI)返回时,自动转换到Thumb状态。进入ARM状态。当操作数寄存器的状态位(位0)为0时,执行BX指令进入ARM状态。处理器进行异常处理(IRQ、FIQ、Reset、Undef、Abort和SWIARM状态执行)。在此情况下,把PC放人异常模式链接寄存器中。从异常向量地址开始执行也可以进入ARM状态。第23页/共68页24处理器工作模式ARM微处理器支持7个基本工作模式,分别为:用户模式(Use
13、r):非特权模式,大部分任务执行在这种模式,ARM处理器正常的程序执行状态。快速中断模式(FIQ):当一个高优先级(fast)中断产生时将会进入这种模式,用于高速数据传输或通道处理。外部中断模式(IRQ):当一个低优先级(normal)中断产生时将会进入这种模式,用于通用的中断处理。管理模式(Supervisor):当复位或软中断指令执行时将会进入这种模式,操作系统使用的保护模式,系统复位后的缺省模式。第24页/共68页25中止模式(Abort):当存取异常时将会进入这种模式。1.指令中止模式:指令预取终止时进入该模式。2.数据访问中止模式:当数据访问终止时进入该模式,可用于虚拟存储及存储保护
14、。指令未定义模式(Undef):当执行未定义指令时会进入这种模式,支持硬件协处理器指令的软件仿真。系统模式(System):使用和User模式相同寄存器集的特权模式,运行具有特权的操作系统任务。第25页/共68页26ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。除用户模式以外,其余的所有6种模式称为非用户模式或特权模式(PrivilegedModes);其中除去用户模式和系统模式以外的5种又称为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访
15、问受保护的系统资源等情况。第26页/共68页27超级模式(Supervisor)多种特权模式变化用户程序的运行模式复位后的缺省模式主要完成各模式的堆栈设置,注意不要进入用户模式一般为用户模式User处理器模式处理器启动时的模式转换图第27页/共68页28寄存器 ARM 的中央寄存器集是16 个用户寄存器R0 R15。这些寄存器均是32 位宽度,R0 R12没有其他特殊功能,寄存器R13 R15在CPU中有特殊功能。R13被用作堆栈指针被用作堆栈指针(stack pointer,SP),保存当前处理器模式的堆栈的栈顶。,保存当前处理器模式的堆栈的栈顶。R14被称为链接寄存器被称为链接寄存器(li
16、nk register,LR),保存调用子函数的返回地址。,保存调用子函数的返回地址。R15是程序计数器是程序计数器(program counter,PC)。其内容是处理器要取的下一条指令的。其内容是处理器要取的下一条指令的地址。地址。第28页/共68页29ARM状态下的寄存器组织程序状态寄存器:CPSR(current program status register)当前的程序状态寄存器SPSR(saved program status register)备份的程序状态寄存器第29页/共68页30ARM微处理器共有37个32位寄存器。1个用作PC1个用作CPSR5个用作SPSR30个为通用寄
17、存器当前处理器的模式决定着哪组寄存器可操作,任何模式都可以存取:相应的R0R12子集相应的R13(SP),R14(LR)相应的R15(PC)相应的CPSR特权模式(除system模式)还可存取:相应的SPSR6个状态寄存器第30页/共68页31ARM和和Thumb寄存器组织图解寄存器组织图解 第31页/共68页32Thumb状态下和ARM状态下的R0R7是相同的Thumb状态下和ARM状态下的CPSR和所有的SPSR是相同的Thumb状态下的SP对应于ARM状态下的R13Thumb状态下的LR对应于ARM状态下的R14Thumb状态下的程序计数器对应于ARM状态下的R15(1)Thumb状态下
18、的寄存器组织与ARM状态下的寄存器组织的关系第32页/共68页34(2)访问THUMB状态下的高位寄存器(Hi-registers)在Thumb状态下,高位寄存器R8R15并不是标准寄存器集的一部分,但可使用汇编语言程序有限制地访问这些寄存器,将其用作快速的暂存器.使用带特殊变量的MOV指令,数据可以在低位寄存器和高位寄存器之间进行传送,高位寄存器的值可以使用CMP和ADD指令进行比较或加上低位寄存器中的值。第34页/共68页35ARM体系结构包含一个当前程序状态寄存器(CPSR)和5个备份的程序状态寄存器(SPSRs)。备份的程序状态寄存器用来进行异常处理,其功能包括:保存ALU中的当前操作
19、信息。控制允许和禁止中断。设置处理器的运行模式。程序状态寄存器每一位的安排如图所示.(3)程序状态寄存器第35页/共68页36程序状态寄存器的格式第36页/共68页37 条件码标志(Condition Code Flags)N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。在ARM状态下,绝大多数的指令都是有条件执行的。在Thumb状态下仅有分支指令是有条件执行的。第37页/共68页39运行模式位M4:0:M0、M1、M2、M3、M4是模式位。这些位决定了处理器的运行模式。具体含义如下。由表可知,并不是所有的运行模式位的组合都是有效的,其
20、他的组合结果会导致处理器进入一个不可恢复的状态。第39页/共68页40异常异常(exception)由内部或外部源产生以引起处理器处理一个事件,即当正常的程序执行流程发生暂时的停止时。例如,外部中断或试图执行未定义指令都会引起异常。在处理异常之前,处理器状态必须保留,以便在异常处理程序完成后,原来的程序能够重新执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。ARM支持7种类型的异常。列出了异常的类型以及处理这些异常的处理器模式。异常出现后,强制从异常类型对应的固定存储器地址开始执行程序。这些固定的地址称为异常向量(ExceptionVectors)。第40页/共68页41AR
21、M体系结构所支持的异常类型 第41页/共68页42异常向量表(Exception Vectors)第42页/共68页43异常优先级(Exception Priorities)第43页/共68页44高端向量一些ARM实现允许异常向量的定位由32位地址空间低端的正常地址范围Ox00000000Ox000000lC,移到接近于地址空间高端的另一地址范围0 xFFFF00000 xFFFF00lC。这些改变后的地址位置称为高端向量。第44页/共68页45异常的进入和退出只要正常的程序流程被暂时停止,则异常发生,例如服务外部的中断。在异常被处理之前,必须保存当前的处理器状态,以便当处理程序完成后,原来的
22、程序能重新开始。如果几种异常同时发生,则对它们按固定的次序处理,可参考异常优先级。第45页/共68页46当异常产生时,ARMcore:拷贝CPSR到SPSR_设置适当的CPSR位:改变处理器状态进入ARM态改变处理器模式进入相应的异常模式设置中断禁止位禁止相应中断(如果需要)保存返回地址到LR_设置PC为相应的异常向量第46页/共68页47返回时,异常处理需要:从SPSR_恢复CPSR从LR_恢复PCNote:这些操作只能在ARM态执行第47页/共68页483.3 XSBase255开发平台介绍开发平台介绍第48页/共68页49XSBase255的配件第49页/共68页50PXA255处理器结
23、构与特性PXA255除了采用Xscale内核,还具有以下特点:内核工作频率:200MHz、300MHz和400MHz系统存储器接口时钟和电源控制器DMA控制器LCD控制器系统集成模块串行通信口多媒体通信口第50页/共68页51XSBase255硬件介绍 第51页/共68页52XSBase255硬件介绍第52页/共68页53XSBase255 Linux BSP介绍 第53页/共68页54XSBase255 Linux光盘内容第54页/共68页55Xsbase255开发系统-硬件资源 项目描述处理器处理器Intel XScale PXA255 400MHzSDRAMSamsung 64Mbyte
24、FlashIntel strata flash 32MByte以太网以太网CS8900A 10BaseT声卡声卡AC97 Stereo audio显示显示LG TFT LCD 6.4”(640*480)触摸屏触摸屏ADS7843 touch screenUSB Host2 SlotUSB Slave1 SlotPCMCIA1 Slot实时时钟实时时钟Real time clock RTC4513 红外红外HDSL3600CF1 SlotMMC1 Slot 第55页/共68页56Xsbase255开发系统-硬件资源存储器接口主要可以分成3类:SDRAMSDRAM有4块区域静态FLASH静态存储器
25、有6块卡存储器卡存储器有2块。第56页/共68页57Xsbase255开发系统-硬件资源LCD接口PXA255处理器内置的LCD控制器支持被动(DSTN)或主动(TFT)模式的显示器,还支持单色或多种的彩色像点格式,支持单屏或双屏显示;被动彩色方式有65536种颜色(使用16位TMED抖动算法),主动彩色方式有65536种颜色(16位,绕过调色板),显示可以达到1024x1024,推荐使用最大值800 x600;内置2个专用DMA通道。Xsbase255系统使用的LCD是6.4TFT的彩色显示屏,分辨率是640 x480。第57页/共68页58Xsbase255开发系统-硬件资源以太网接口Xs
26、base255开发系统采用CirrusLogic公司CS8900A以太网芯片,是符合协议的工业标准架构总线的一款低成本的以太网芯片。它高度集成了一些常用的部件比如:片内的RAM、10BASE-T传输和接受过滤器和ISA总线接口等。第58页/共68页59Xsbase255开发系统-硬件资源音频接口PXA255处理器包含AC97控制单元,支持音频控制器(AC-link),能通过串口传输数字音频、调制调解器、音频输入、控制寄存器和状态信息等。因为PXA255处理器内置了AC97控制器,需要外扩一个音频解码芯片。Xsbase255外扩了CirrusLogicCS4299用作音频解码器。第59页/共68
27、页60Xsbase255开发系统-硬件资源实时时钟RTC当关闭Xsbase255系统电源,RTC4513可以通过一个电池来保持当前的时间。系统外扩了实时时钟芯片RTC4513和一个纽扣电池组成RTC电路。第60页/共68页61Xsbase255开发系统-硬件资源串口Xsbase开发系统提供1个全功能的(FF,FullFunction)串口,1个蓝牙串口(BT,Bluetooth)和1个标准UART(红外接口)。它们使用PXA255中的第二功能GPIO引脚。全功能串口支持Modem控制功能,其最高波特率为;蓝牙串口是一个高速UART,最高波特率为,可连接蓝牙模块。第61页/共68页62Xsbas
28、e255开发系统-硬件资源USB接口Xsbase255开发系统有1个USB-Client接口和2个USB-Host接口(其中一个是miniUSB接口)。USB-Client接口作为USB的从设备,一般与主设备如宿主机连接,用于下载数据和程序,也可以用作USB网口来使用。USB-Client控制器UDC集成在PXA255处理器内部。USB-Host接口作为USB的主设备,用于连接USB外设,例如U盘、鼠标、键盘和摄像头等。第62页/共68页63Xsbase255开发系统-硬件资源扩展接口1个PCMCIA接口1个CF卡接口1个MMC卡接口120pin的扩展接口。第63页/共68页64PCMCIA通
29、常,台式机和服务器等用的网卡均不支持PCMCIA标准,PCMCIA是专门用在笔记本或PDA、数码相机等便携设备上的一种接口规范(总线结构)。也就是笔记本网卡通常都支持PCMCIA规范,而台式机网卡则不支持此规范。PCMCIA是英文“PERSONALCOMPUTERMEMORYCARDINTERNATIONALASSOCIATION”的缩写,PCMCIA定义了三种不同型式的卡,它们的长宽都是85.654mm,只是在厚度方面有所不同。TypeI是最早的PC卡,厚主要用于RAM和ROM;TypeII将厚度增至适用范围也大大扩展包括了大多数的modem(调制解调器)和faxmodem(传真调制解调器)
30、,LAN适配器和其它电气设备;TypeIII则进一步增大厚度到这种PC卡主要用于旋转式的存储设备(例如硬盘)。PCMCIA总线分为两类,一类为16位的PCMCIA,另一类为32位的CardBus。第64页/共68页65CF卡CF卡(CompactFlash)是1994年由SanDisk最先推出的。CF卡重量只有14g,仅纸板火柴般大小(),是一种固态产品,也就是工作时没有运动部件。CF卡采用闪存(flash)技术,是一种稳定的存储解决方案,不需要电池来维持其中存储的数据。对所保存的数据来说,CF卡比传统的磁盘驱动器安全性和保护性都更高;比传统的磁盘驱动器及型PC卡的可靠性高5到10倍,而且CF
31、卡的用电量仅为小型磁盘驱动器的5%。这些优异的条件使得大多数数码相机选择CF卡作为其首选存储介质。第65页/共68页66MMCMMC(MultiMediaCard)卡由西门子公司和首推CF的SanDisk于1997年推出。1998年1月十四家公司联合成立了MMC协会(MultiMediaCardAssociation简称MMCA),现在已经有超过84个成员。MMC的发展目标主要是针对数码影像、音乐、手机、PDA、电子书、玩具等产品,是把存贮单元和控制器一同做到了卡上,智能的控制器使得MMC保证兼容性和灵活性。MMC被设计作为一种低成本的数据平台和通讯介质,它的接口设计非常简单:只有7针!接口成本低于美元,相比之下SmartMedia和MemoryStick的接口成本都要高于1美元。在接口中,电源供应是3针,而数据操作只用3针的串行总线即可(SPI模式再加上1针用于选择芯片)。MMC的操作电压为伏到伏,写/读电流只有27mA和23mA,功耗很低。第66页/共68页67Xsbase255开发系统-软件资源Linux(Linux2.4.18)第67页/共68页68感谢您的观看!第68页/共68页
限制150内