ARM基础知识详解.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
复习问题提纲 第一讲 基础知识 什么是嵌入式系统(IEEE定义和国内普遍认同的定义分别是什么)? IEEE(国际电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置” 国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 更简单的讲:就是嵌入到对象体中的专用计算机系统。 三要素:嵌入、专用、计算机 嵌入性:嵌入到对象体系中,有对象环境要求 专用性:软、硬件按对象要求裁减 计算机:实现对象的智能化功能 所谓的大端模式,是指中,而中所谓的小端模式,是指中,而中ARM微处理器支持7种运行模式,分别为:    用户模式(usr):ARM处理器正常的程序执行状态。    快速中断模式(fiq):用于高速数据传输或通道处理。    外部中断模式(irq):用于通用的中断处理。    模式(svc):操作系统使用的保护模式。    数据访问止模式(abt):可用于虚拟存储及存储保护。 当     定义指令中止模式(und):可用于支持硬件协处理器的软件仿真。当未定义的指令执行时 系统模式(sys):运行具有特权的操作系统任务。ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括30个通用寄存器和6个状态寄存器,1个程序计数器(PC指针)及所有寄存器(均为32位)。 未寄存器:包括R0~R7。寄存器:包括R8~R14 (3) 未分组寄存器(R0-R7)指的都是同一个物理寄存器,但是在异常中断切换时,由于使用相同的物理寄存器,所以和容易使寄存器中的数据被破坏。 对于分组寄存器R8~R14,他们每一次所访问的物理寄存器与处理器当前的运行模式有关R15用作程序计数器(PC),用来保存读取指令的地址。R13,R14,CPSR是各个模式专有的 R0~R7是所用模式公用的; R8~R12对于快速中断FIQ模式之外的其他模式都是公用的,而FIQ模式另外有一套自己寄存器R8_fiq~R12_fiq,FIQ处理程序在保存和恢复现场时可以少保存和恢复几个寄存器(R8-R12),从而提高中断处理迅速 (6)R13通常用作栈指针寄存器(SP),每一种模式有自己的R13,所以允许每一种异常都有自己的栈指针。 R14用作连接或返回地址寄存器(LR),每一种模式有自己的 R14。 R15用作程序计数器(PC),用来保存读取指令的地址。 CPSR)存储ARM微处理器当前的状态和模式标志。 SPSR)异常模式下的CPSR的备份寄存器,当一个异常发生时保存当前的CPSR值。结合连接寄存器可使处理器返回先前的状态。 第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令,对应ARM指令集; 第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令,对应Thumb指令集。 流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术 寄存器R16用作程序状态寄存器CPSR(Current Program Status Register,当前程序状态寄存器)。在所有处理器模式下都可以访问CPSR。CPSR包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。每种异常模式都有一个程序状态保存寄存器SPSR(Saved Program Status Register)。当异常出现SPSR用于保留CPSR的状态。 CPSR和SPSR的格式如下: (1)条件码标志 N、Z、C、V(Negative、Zero、Carry、oVerflow)均为条件码标志位(Condition Code Flags),它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。CPSR中的条件码标志可由大多数指令检测以决定指令是否执行。在ARM状态下,绝大多数的指令都是有条件执行的。在Thumb状态下,仅有分支指令是有条件执行的。通常条件码标志通过执行比较指令(CMN、CMP、TEQ、TST)、一些算术运算、逻辑运算和传送指令进行修改。 条件码标志的通常含义如下: N:如果结果是带符号二进制补码,那么,若结果为负数,则N=1;若结果为正数或0,则N=0。 Z:若指令的结果为0,则置1(通常表示比较的结果为“相等”),否则置0。 C:可用如下4种方法之一设置: 加法(包括比较指令CMN)。若加法产生进位(即无符号溢出),则C置1;否则置0。 减法(包括比较指令CMP)。若减法产生借位(即无符号溢出),则C置0;否则置1。 对于结合移位操作的非加法/减法指令,C置为移出值的最后1位。 对于其他非加法/减法指令,C通常不改变。 V:可用如下两种方法设置,即 对于加法

您可能关注的文档

文档评论(0)

ee88870 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档