嵌入式ARM微处理器概述和编程模型_第1页
嵌入式ARM微处理器概述和编程模型_第2页
嵌入式ARM微处理器概述和编程模型_第3页
嵌入式ARM微处理器概述和编程模型_第4页
嵌入式ARM微处理器概述和编程模型_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式ARM微处理器概述和编程 模型 第二章 基于ARM9处理器的硬件开发平台 n2.1 ARM微处理器概述 n2.2 ARM微处理器的编程模型 n2.3 ARM微处理器的指令系统 n2.4 ARM程序设计基础 n2.5 S3C2410体系结构与外设 n2.6 ADS调试软件 嵌入式ARM微处理器概述和编程 模型 2.1 ARM微处理器概述 n2.1.1 ARM简介 n2.1.2 ARM微处理器的应用领域 n2.1.3 ARM微处理器的特点 n2.1.4 ARM微处理器系列 n2.1.5 ARM微处理器的结构 n2.1.6 ARM微处理器的应用选型 嵌入式ARM微处理器概述和编程 模型 ARM

2、(Advanced RISC Machines),既可以认为 是一个公司的名字,也可以认为是对一类微处理器的 通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片 设计技术的授权。基于ARM技术的微处理器应用约占 据了32位RISC微处理器75以上的市场份额,ARM技 术正在逐步渗入到我们生活的各个方面。 2.1.1 ARMAdvanced RISC Machines 嵌入式ARM微处理器概述和编程 模型 世界各大半导体生产商从ARM公司购买其设计的 ARM微处理器核,根据各自不同的应用领域,加入适 当的外围电路,从而形成自己的ARM微处理器芯片进 入市场。 2

3、.1.1 ARMAdvanced RISC Machines 嵌入式ARM微处理器概述和编程 模型 2.1.2 ARM 微处理器的应用领域 n工业控制 n无线通讯 n网络应用 n消费类电子产品 n成像和安全产品 嵌入式ARM微处理器概述和编程 模型 2.1.3 ARM 微处理器的特点 n体积小、低功耗、低成本、高性能 n支持Thumb/ARM双指令集 n大量使用寄存器,指令执行速度快 n寻址方式灵活简单,执行效率高 n指令长度固定 嵌入式ARM微处理器概述和编程 模型 2.1.4 ARM微处理器系列 nARM7系列 nARM9系列 nARM9E系列 nARM10E系列 nARM11系列 nSe

4、curcore系列 nIntel的StrongARM/Xscale 嵌入式ARM微处理器概述和编程 模型 ARM7 微处理器系列 具有嵌入式ICE逻辑,调试开发方便 极低的功耗,适合便携式产品 能够提供的三级流水线结构 代码密度高并兼容16位的Thumb指令集 对操作系统的支持广泛,包括Windows CE、Linux、 Palm OS等 指令系统与ARM9、ARM9E和ARM10E兼容 主频最高可达130MIPS 嵌入式ARM微处理器概述和编程 模型 ARM7 微处理器系列 主要应用领域 工业控制、Internet设备、网络和调制解调器设备、移 动电话等多种多媒体和嵌入式应用 微处理器核类型

5、 ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ 嵌入式ARM微处理器概述和编程 模型 ARM7 微处理器系列 ARM7TMDI是目前使用最广泛的32位嵌入式RISC处 理器,属低端ARM处理器核。TDMI的基本含义为: T 支持16为压缩指令集Thumb; D 支持片上Debug; M 内嵌硬件乘法器(Multiplier); I 嵌入式ICE,支持片上断点和调试点 嵌入式ARM微处理器概述和编程 模型 ARM9 微处理器系列 5级整数流水线,指令执行效率更高。 提供的哈佛结构。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA总线接口。 全性

6、能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 MPU支持实时操作系统。 支持数据Cache和指令Cache,具有更高的指令和数 据处理能力。 嵌入式ARM微处理器概述和编程 模型 ARM9 微处理器系列 主要应用领域 无线设备、仪器仪表、安全系统、机顶盒、高 端打印机、数码相机和数码摄像机等 微处理器核类型 ARM920T、ARM922T和ARM940T 嵌入式ARM微处理器概述和编程 模型 2.1.5 ARM 微处理器的结构 CISC(Complex Instruction Set Computer) 复杂指令集计算机 随着计算机技术的发展而不断

7、引入新的复杂的 指令集,计算机的体系结构会越来越复杂。 大约有20的指令会被反复使用,占整个程序 代码的80,而余下的80的指令却不经常使用, 在程序设计中只占20 。 嵌入式ARM微处理器概述和编程 模型 2.1.5 ARM 微处理器的结构 RISC(Reduced Instruction Set Computer) 精简指令集计算机 采用固定长度的指令格式 使用单周期指令 大量使用寄存器 可用加载/存储指令批量传输数据 在循环处理中使用地址的自动增减 嵌入式ARM微处理器概述和编程 模型 2.1.6 ARM 微处理器的应用选型 n ARM微处理器内核 n 系统的工作频率 n 芯片内存储器的

8、容量 n 片内外围电路的选择 嵌入式ARM微处理器概述和编程 模型 2.2 ARM微处理器的编程模型 n2.2.1 ARM微处理器的工作状态 n2.2.2 ARM微处理器的存储器格式 n2.2.3 指令长度及数据类型 n2.2.4 处理器模式 n2.2.5 寄存器组织 n2.2.6 异常 嵌入式ARM微处理器概述和编程 模型 2.2 ARM微处理器的编程模型 字(Word) 在ARM体系结构中,字的长度为32位。 半字(Half-Word) 在ARM体系结构中,半字的长度为16位。 字节(Byte) 在ARM体系结构中,字节的长度为8位。 嵌入式ARM微处理器概述和编程 模型 2.2.1 AR

9、M微处理器的工作状态 ARM状态 处理器执行32位的字对齐的ARM指令 Thumb状态 处理器执行16位的、半字对齐的Thumb指令 嵌入式ARM微处理器概述和编程 模型 进入Thumb状态 q 执行BX指令,使操作数寄存器的状态位为1 q 当处理器处于Thumb状态时发生异常,则异常处理返回 时,自动切换到Thumb状态。 嵌入式ARM微处理器概述和编程 模型 进入ARM状态 q 执行BX指令,使操作数寄存器的状态位为0 q 在处理器进行异常处理时,把PC放入异常模式链接寄 存器中,并从异常向量地址开始执行程序 嵌入式ARM微处理器概述和编程 模型 2.2.2 ARM微处理器的存储器格式 q

10、 ARM体系结构所支持的最大寻址空间为4GB(232字节) q ARM体系结构将存储器看作是从零地址开始的字节的线 性组合。从零字节到三字节放置第一个存储的字数据, 从第四个字节到第七个字节放置第二个存储的字数据, 依次排列。 q ARM体系结构可以用两种方法存储字数据,称之为大端 格式和小端格式 嵌入式ARM微处理器概述和编程 模型 大端格式 字数据的高字节存储在低地址,低字节存放在高地址 嵌入式ARM微处理器概述和编程 模型 小端格式 字数据的高字节存储在高地址,低字节存放在低地址 嵌入式ARM微处理器概述和编程 模型 q ARM微处理器的指令长度可以是32位(在ARM状态下), 也可以为

11、16位(在Thumb状态下)。 q ARM微处理器中支持字节(8位)、半字(16位)、字 (32位)三种数据类型,其中,字需要4字节对齐(地 址的低两位为0)、半字需要2字节对齐(地址的最低 位为0) 2.2.3 指令长度及数据类型 嵌入式ARM微处理器概述和编程 模型 q 用户模式(usr):ARM处理器正常的程序执行状态 q 快速中断模式(fiq):用于高速数据传输或通道处理 q 外部中断模式(irq):用于通用的中断处理 q 管理模式(svc):操作系统使用的保护模式 q 终止模式(abt):当数据或指令预取终止时进入 q 系统模式(sys):运行具有特权的操作系统任务 q 未定义模式(

12、und):当未定义指令执行时进入 2.2.4 处理器模式 嵌入式ARM微处理器概述和编程 模型 2.2.5 寄存器组织 ARM微处理器共有37个32位寄存器,其 中31个为通用寄存器,6个为状态寄存器。 微处理器的状态及模式决定具体哪些寄存 器可以编程访问。 嵌入式ARM微处理器概述和编程模 型 嵌入式ARM微处理器概述和编程 模型 未分组寄存器R0R7 在所有的运行模式下,未分组寄存器都指向同一 个物理寄存器,在中断或异常处理进行模式转换时, 可能会造成寄存器中数据的破坏。 嵌入式ARM微处理器概述和编程 模型 分组寄存器R8R12 q R8R12:每个寄存器对应两个不同的物理寄存器 当使用

13、fiq模式时,访问寄存器R8_fiqR12_fiq; 当使用除fiq模式以外的其他模式时,访问寄存器 R8_usrR12_usr。 嵌入式ARM微处理器概述和编程 模型 分组寄存器R13R14 q R13、R14:每个寄存器对应6个不同的物理寄存器 1个是用户模式与系统模式共用 其它5个对应于其他5种模式 q 采用以下的记号来区分不同的物理寄存器: R13_ R14_ q mode为以下几种之一:usr、fiq、irq、svc、abt、und。 嵌入式ARM微处理器概述和编程 模型 堆栈指针 R13 q R13在ARM指令中常用作堆栈指针,但这只是一种习惯用 法,用户也可使用其他的寄存器作为堆

14、栈指针。 q 在Thumb指令集中,某些指令强制性的要求使用R13作为 堆栈指针。 q 由于处理器的每种运行模式均有自己独立的物理寄存器 R13,在初始化部分,都要初始化每种模式下的R13,这样, 当程序的运行进入异常模式时,可以将需要保护的寄存器 放入R13所指向的堆栈,而当程序从异常模式返回时,则 从对应的堆栈中恢复。 嵌入式ARM微处理器概述和编程 模型 子程序链接寄存器 R14 q 当执行BL子程序调用指令时,R14得到R15(PC)的 备份。其他情况下,R14用作通用寄存器。 q 当异常或中断发生时,相应的分组寄存器R14用于保 存PC的返回值。 嵌入式ARM微处理器概述和编程 模型

15、 BL SUB1 /* 将R14存入堆栈 */ SUB1: STMFD SP!, , LR /* 完成子程序返回 */ LDMFD SP!, PC 子程序链接寄存器 R14 嵌入式ARM微处理器概述和编程 模型 程序计数器 R15(PC) q ARM状态下,位1:0为0,位31:2用于保存PC; q Thumb状态下,位0为0,位31:1用于保存PC; 嵌入式ARM微处理器概述和编程 模型 程序状态寄存器(CPSR/SPSR) R16用作CPSR(当前程序状态寄存器),包含条件标志 位、中断禁止位、当前处理器模式标志位。 每一种运行模式下有1个专用的SPSR(备份程序状 态寄存器),异常发生时

16、,SPSR用于保存CPSR的值, 从异常退出时由SPSR来恢复CPSR。 嵌入式ARM微处理器概述和编程模 型 嵌入式ARM微处理器概述和编程 模型 Thumb状态下的寄存器组织 q 直接访问8个通用寄存器(R7R0)、程序计数器(PC) 堆栈指针(SP)、连接寄存器(LR)和CPSR。 q 每种特权模式下都有1组SP、LR和SPSR。 嵌入式ARM微处理器概述和编程模 型 嵌入式ARM微处理器概述和编程 模型 ARM与THUMB状态寄存器关系 R0R7独立 CPSR和SPSR独立 SP、LR和PC相同 嵌入式ARM微处理器概述和编程 模型 程序状态寄存器 ARM体系结构包含1个当前程序状态寄

17、存器(CPSR) 和5个备份程序状态寄存器(SPSR)。 保存ALU当前操作的信息 控制中断的允许和禁止 设置处理器的运行模式 嵌入式ARM微处理器概述和编程模 型 程序状态寄存器 嵌入式ARM微处理器概述和编程 模型 程序状态寄存器的条件码标志 N、Z、C、V均为条件码标志位,可被算术或逻 辑运算改变,并可用于测试来决定某条指令是否执行。 q 在ARM状态下,所有指令都是有条件执行的。 q 在Thumb状态下,分支指令是有条件执行的。 嵌入式ARM微处理器概述和编程模 型 影响标志位的指令 标志位含 义 N 当用两个补码表示的带符号数进行运算时,N=1 表示运算的结 果为负数;N=0 表示运

18、算的结果为正数或零; ZZ=1 表示运算的结果为零;Z=0表示运算的结果为非零; C 加法运算(包括比较指令CMN):当运算结果产生了进位时 (无符号数溢出),C=1,否则C=0。 减法运算(包括比较指令CMP):当运算时产生了借位(无 符号数溢出),C=0,否则C=1。 对于包含移位操作的指令,C为移出值的最后1位。 V 对于加/减法运算指令,当操作数和运算结果为二进制的补码 表示的带符号数时,V=1表示符号位溢出。 对于其他的非加/减运算指令,V的值通常不改变。 Q 在ARM v5及以上版本的E系列处理器中,用Q标志位指 示增强的DSP运算指令是否发生了溢出。 嵌入式ARM微处理器概述和编

19、程 模型 程序状态寄存器的控制位 状态寄存器的低8位(I、F、T和M4:0)称为控 制位,发生异常时这些位可以被改变。如果处理器运 行特权模式,这些位也可以由程序修改。 q 中断禁止位I、F: I=1 禁止IRQ中断; F=1 禁止FIQ中断。 嵌入式ARM微处理器概述和编程 模型 程序状态寄存器的控制位 q T标志位:该位反映处理器的运行状态 ARM体系结构v5及以上的版本的T系列处理器,当 该位为1时,程序运行于Thumb状态,否则运行于 ARM状态。 ARM体系结构v5及以上的版本的非T系列处理器, 当该位为1时,执行下一条指令以引起未定义的指 令异常;当该位为0时,表示运行于ARM状态

20、。 q 运行模式位M4:0:模式位,决定处理器的运行模式 嵌入式ARM微处理器概述和编程模 型 处理器运行模式及可以访问的寄存器 M4:0处理器模式ARM状态可访问的寄存器 10000用户模式PC,CPSR,R0-R14 10001FIQ模式PC,CPSR, SPSR_fiq,R14_fiq-R8_fiq, R7R0 10010IRQ模式PC,CPSR, SPSR_irq,R14_irq, R13_irq, R12R0 10011管理模式PC,CPSR, SPSR_svc,R14_svc, R13_svc, R12R0, 10111终止模式PC,CPSR, SPSR_abt,R14_abt,R

21、13_abt, R12R0, 11011未定义模式PC,CPSR, SPSR_und,R14_und, R13_und, R12R0, 11111系统模式PC,CPSR(ARM v4及以上版本), R14R0 嵌入式ARM微处理器概述和编程 模型 当正常的程序执行流程发生暂时的停止时,称之 为异常。在处理异常之前,当前处理器的状态必须保 留,以便当异常处理完成后,原来的程序可以恢复。 当多个异常同时发生时,按照固定的优先级进行 处理。 2.2.6 异常(Exceptions) 嵌入式ARM微处理器概述和编程模 型 ARM体系结构支持的异常类型 异常类型具体含义 复位复位电平有效时,产生复位异常

22、,程序跳转到 复位处理程序处执行。 未定义指令遇到不能处理的指令时,产生未定义指令异常。 软件中断执行SWI指令产生,用于用户模式下的程序调 用特权操作指令。 指令预取终 止 处理器预取指令的地址不存在,或该地址不允 许当前指令访问,产生指令预取中止异常。 数据终止处理器数据访问指令的地址不存在,或该地址 不允许当前指令访问时,产生数据中止异常。 IRQ外部中断请求有效,且CPSR中的I位为0时,产 生IRQ异常。 FIQ快速中断请求引脚有效,且CPSR中的F位为0时, 产生FIQ异常。 嵌入式ARM微处理器概述和编程 模型 进入异常处理 将下一条指令的地址保存到相应链接寄存器LR 将CPSR

23、复制到相应的SPSR 根据异常类型,强制设置CPSR的运行模式位 强制PC从相关的异常向量地址取下一条指令执行 嵌入式ARM微处理器概述和编程 模型 R14_ = Return Link SPSR_ = CPSR CPSR4:0 = Exception Mode Number CPSR5 = 0 If = Reset or FIQ then CPSR6 = 1 CPSR7 = 1 PC = Exception Vector Address 异常响应伪代码 处理器处于Thumb状态,则当异常向量地址加载 入PC时,处理器自动切换到ARM状态。 在ARM状态下执行 禁止快速中断 禁止正常中断 转入

24、异常入口地址 嵌入式ARM微处理器概述和编程 模型 从异常处理返回 将连接寄存器LR的值减去相应的偏移量后送到PC 将SPSR复制回CPSR 若在进入异常处理时设置了中断禁止位,要在此清除 嵌入式ARM微处理器概述和编程 模型 FIQ(Fast Interrupt Request) FIQ异常是为了支持数据传输或者通道处理而设计的。 q 若将CPSR的F位置为1,则会禁止FIQ中断,若将CPSR的 F位清零,处理器会在指令执行时检查FIQ的输入。注意 只有在特权模式下才能改变F位的状态。 q 可由外部通过对处理器上的nFIQ引脚输入低电平产生FIQ。 不管是在ARM状态还是在Thumb状态下进

25、入FIQ模式, FIQ处理程序均可以执行以下指令从FIQ模式返回: SUBS PC, R14_fiq , #4 嵌入式ARM微处理器概述和编程 模型 IRQ(Interrupt Request) IRQ异常属于正常的中断请求,可通过对处理器 的nIRQ引脚输入低电平产生,IRQ的优先级低于FIQ, 当程序执行进入FIQ异常时,IRQ可能被屏蔽。 q 若将CPSR的I位置为1,则会禁止IRQ中断,若将CPSR 的I位清零,处理器会在指令执行完之前检查IRQ的输入。 注意只有在特权模式下才能改变I位的状态。 q 不管是在ARM状态还是在Thumb状态下进入IRQ模式, IRQ处理程序均可以执行以下指令从IRQ模式返回: SUBS PC , R14_irq , #4 嵌入式ARM微处理器概述和编程 模型 ABORT(终止) 产生终止异常意味着对存储器的访问失败。ARM微 处理器在存储器访问周期内检查是否发生终止异常。 q 终止异常包括两种类型: 指令预取终止 数据终止

温馨提示

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

评论

0/150

提交评论