DSP

关于ARM嵌入式微处理器的讲解既然是这样的

2019-07-13 19:34发布

1、嵌入式系统的处理核心嵌入式系统主要分四类:嵌入式微控制器,嵌入式DSP处理器,嵌入式微处理器,嵌入式片上系统。嵌入式微控制器(Microcontroller Unit, MCU) :嵌入式微控制器又称单片机,是将整个计算机系统浓缩集成到一块芯片中。 一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash、 RAM、EEPROM等各种必要功能和外设。嵌入式微处理器(Embedded Microprocessor Unit, EMPU):以通用处理器(CPU)为基础。将微处理器装配在专门设计的电路板 上,只保留和嵌入式应用有关的功能。嵌入式DSP处理器(Embedded Digital Signal Processor, EDSP):嵌入式DSP处理器有两个发展来源,一是DSP处理器经过单片化、EMC 改造、增加片上外设成为嵌入式DSP处理器。二是在通用单片机或SOC中增加DSP协处理器。 14506470-6980495fa5d0a11a 嵌入式片上系统(System On Chip):2、嵌入式系统处理核心的演化晶体管逻辑电路,大规模IC逻辑电路,微处理器,DSP,FPGA技术,SOC3、ARM处理器概述ARM32位嵌人式RISC(Reduced Instruction Set Computer)处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统 应用领域的领先地位。ARM处理器的3大特点如下:小体积、低功耗、成本低、高性能;16位/32位双指令集;全球众多的合作伙伴。当前ARM体系结构的扩充包括:Thumb:16位指令集,用以改善代码密度;DSP:用于DSP应用的算术运算指令集;Jazeller:允许直接执行Java代码的扩充。ARM体系结构提供了在无线、消费电子和图像应用方面的解决方案。4、ARM体系主要特征ARM体系主要特征是Advanced RISC Machine特征。ARM公司商业模式的强大之处在于其价格合理,全世界范围有超过100个合作伙伴。ARM公司专注于设计,其内核耗电少、成本低、功能强,特有16/32位双指令集。ARM已成为移动通信、 手持计算、多媒体数字消费等嵌入式解决方案的RISC标准。支持快速中断,支持函数调用,支持虚拟内存。大量的寄存器,都可用于多种用途Load/Store体系结构,每条指令都条件执行包含非常强大的多寄存器Load和Store指令地址指令(两个源操作数寄存器和结果寄存器独立设定)能在单时钟周期执行的单条指令内完成一项普通的移位操作和一项普通的ALU操作能过协处理器指令集来扩展ARM指令集,包括在编程模式下增加了新的寄存器和数据类型。在Thumb体系结构中以高密度16位压缩形式表示指令集条件指令5、ARM处理器版本处理器版本通常指体系结构,ARM产品家族一般对应不同体系。ARM7:ARM系列具有32位整数运算核。T:内含16位压缩指令集ThumbD:支持片内Debug调试M:采用增强型乘法器(Multiplier)I:内含嵌入式ICE宏单元ARM系列产品的后缀提供了各种形式与功能的选择-S:可综合的软核Softcore,-E:具有DSP的功能-J:Jazeller,允许直接执行Java字节码6、ARM架构版本ARM架构自诞生至今,已经发生了很大的演变,至今已定义7种不同的版本。□V1版架构该版架构只在原型机ARM1出现过,基本性能有:基本的数据处理指令(无乘法),字节、半字和字的LOAD/STORE指令,转移指令,包括子程序调用及链接指令。软件中断指令。寻址空间:64M字节。但是这个版本没有cache和MMU。□V2版架构该版架构对V1版进行了扩展,如ARM2与ARM3。增加功能有:乘法和乘加指令,支持协处理器操作指令,快速中断模式,SWP/SWPB的最基本存储器与寄存器交换指令,寻址空间没有改变还是64M字节。□V3版架构把寻址空间增至32位(4G字节),增加了当前程序状态寄存器CPSR(CurrentProgramStatusRegister)和程序状态保存寄存器SPSR(SavedProgramStatusRegister)。增加了中止(Abort)和未定义二种处理器模式。ARM6就采用该版架构。具备cache和MMU。□V4版架构V4版架构是目前应用最广的ARM体系结构,对V3版架构 进行了进一步扩充。引进了16位的Thumb指令集,使ARM使用更加灵活。ARM7、ARM8、ARM9和StrongARM(为了推XScale,intel停产了strongarm)都采用该版架构。处理器的操作状态:AARM - 32-bit, 按字排列的ARM指令集;Thumb -16-bit, 按半字排列的Thumb指令集。□V5版架构在V4版基本上增加了一些新的指令,ARM10和XScale都采用该版架构,这些新增指令有:带有链接和交换的转移BLX指令计数前导零CLZ指令BRK中断指令增加了信号处理指令(V5TE版)为协处理器增加更多可选择的指令□V6版架构ARMv6,发布于2001年10月,是目前最流行的架构,形成ARM11系列嵌入式处理器。特点:增强的Cache结构,支持实地址Cache和减少Cache的刷新和重载和减少上下文切换的开销。加强媒体处理能力,使MPEG4编码/解码/音频处理加快一倍。低功耗:0.13um工艺,1.2v下,ARM11功耗0.4mW/MHz。用户定制能力强,保持了100%的二进制向下兼容,支持多处理器系统MPCORE(由2-4个ARM11内核组成)。□V7版架构ARMv7,发布于2005年,是目前最新的架构。超标量流水线,能够同时执行多条指令。可调尺寸的L2。支持Thumb-2技术和NEON技术。7、ARM的7种工作模式用户模式(usr): - 正常的程序执行模式快速中断模式(fiq): - 支持高速数据传输或通道处理中断模式(irq): - 用于通用中断处理管理员模式(svc): - 操作系统的保护模式中止模式(abt): - 支持虚拟内存和/或内存保护系统模式(sys): - 支持操作系统的特殊用户模式(运行操作系统任务)未定义模式(und) - 支持硬件协处理器的软件仿真除了用户模式外,其他模式均可视为特权模式。改变模式的方法一共有三个:软件控制,外部中断和异常处理。通常在用户模式下不能访问被保护的系统资源,一般不能改变模式,但是异常发生可以导致模式改变。8、处理器模式对应寄存器组每一种处理器模式中有一组相应的寄存器组任意时刻(也就是任意的处理器模式下),可见的寄存器(逻辑寄存器编号)包括:15个通用寄存器(R0~R14),一个或两个状态寄存器和程序计数器(PC)。有些是各模式共用的同一个物理寄存器,有些是各模式自己拥有的独立的物理寄存器。9、寄存器分配:通用寄存器R0-R15:可以直接访问,R0-R14:通用寄存器。R13:堆栈指针(sp)通常每种处理器模式都有单独的堆栈,每个寄存器对应6个不同的物理寄存器R14:链接寄存器(Link Register,LR)R15的备份,子程序的返回地址,异常返回地址。不需要存放在堆栈中,函数调用速度快,每个寄存器对应6个不同的物理寄存器。R15:程序计数器(PC)R16,就是CPSR(状态寄存器)。当前程序状态寄存器,包括代码标志状态和当前模式位。这些寄存器的功能是:包括关于最近执行的ALU操作的信息,控制中断的使用和禁止,设置处理器操作模式。Thumb状态下的寄存器组织和ARM状态下大致相同,T状态下寄存器集是ARM状态下的子集。10、ARM异常中断由内部、外部引起的事件。一共有7种异常。复位,进入管理模式未定义指令:未定义模式软件中断(SWI):管理模式预取中止:中止模式数据中止:中止模式IRQ:IRQ模式FIQ:FIQ模式11、未定义的指令处理当ARM接受到一条不能处理的指令,ARM把这条指令提供给任何一个协处理器执行。如果协处理器可以执行这条指令但此时协处理器忙,ARM将等待直到协处理器准备好或中断发生。如果没有协处理器处理这条指令,那么ARM将处理未定义的指令陷井。12、异常中断向量表和中断优先级中断向量地址 异常中断类型 异常中断模式 优先级(6最低)0x00 复位 特权模式 10x04 未定义的指令 UND终止模式 60x08 软件中断 特权模式 60x0C 指令预取终止 终止模式 50x10 数据访问终止 终止模式 20x14 保留 未使用 未使用0x18 外部中断请求 IRQ模式 40x1C 快速中断请求 FIQ模式 313、用户模式到FIQ快速中断模式切换将一个从用户模式计算的PC计数器值存储到FIQ模式中R14的位置。用户模式的CPSR复制到FIQ模式的SPSR。异常返回由链接寄存器LR的值恢复PC,返回到发生异常中断的指令的下一条指令处执行程序。将SPSR复制回CPSR中。若在进入异常处理时设置了中断禁止位,要在此清除。复位系统后,开始整个异常应用程序的执行,因此,复位异常处理程序不需要返回。14、什么是JTAG?JTAG是Joint Test Action Group的缩写。JTAG的建立使得集成电路固定在PCB上,只通过边界扫描便可以被测试。在ARM7TDMI处理器中,可以通过JTAG直接控制ARM的内部总线,IO口等信息,从而达到调试的目的。15、ARM的断点设置设置EmbeddedICE的两个watchpoint单元:地址、数据、控制信号等断点的类型:硬件断点:在ARM中直接设定watchpoint中的地址,当ARM运行到制定的地址时,就进入Debug状态。硬件断点数目受EmbeddedICE中的Watchpoint数目的限制;但是,可以在任何地方设置断点。软件断点:改变存储器中的ARM指令为一个特殊的数据X(ARM的未定义指令),同时设置watchpoint中的断点数据也为X,当ARM把X数据作为指令读入的时候,ARM就进入Debug状态。软件断点数目不受限制,但是,软件断点是通过替换系统的断点地址的指令实现的,所以,软件断点只能在可写的存储器的地址中设置(比如:RAM),而不能在ROM(比如:Flash)中设置。16、ARM指令集数据处理指令,跳转指令,内存指令,程序状态寄存器处理指令,协处理器指令,异常产生指令。ARM指令集是32位长度字对准,可以传送8bit,16bit,32bit符号/无符号数据。Thumb指令集和ARM指令没有太大的区别。ARM条件指令是只要满足条件,这条指令就可以执行。17、ARM汇编程序设计硬件与软件考虑平衡。涉及硬件和时间的尽量用汇编。在调用与存储器I/O等硬件相关的函数时,要作相应的裁减。要针对每一个具体的目标平台,根据具体的目标存储器资源进行修改(移植)。ARM混合编程:ATPCS(ARM-Thumb Procedure Call Standard);统一定义了函数过程调用标准。变量定义与边界对齐:要尽量考虑到16位32位访问对齐。定义1:char a;short b;char c;int d;定义2:char a;char c;short b;int d;18、嵌入式处理器处理器的两个基本单元是:程序流控制单元(CU)和执行单元(EU),CU中包含了一个取指单元,用于从存储器中取指令,EU中含有执行指令的电路,用于数据转移操作以及数据从一种形式到另一种形式的转换操作。