网站大量收购独家精品文档,联系QQ:2885784924

ARM嵌入式系统结构拥碾编程--复习.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM嵌入式系统结构拥碾编程--复习

嵌入式系统的定义 An Embedded system is the devices used to control,monitor, or assist the operation of equipment,machinery or plants. 以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、功耗严格要求的,专用计算机系统。 嵌入式实时操作系统的特点: (1)采用抢占式的调度策略,任务实时性好,且执行时间是确定的; (2)具有可裁剪性(根据任务的需要与否进行添加或删除操作系统模块)和可移植性(移植到各种处理器上); (3)具有较好的可靠性和可扩展性,适合嵌入式产品的应用开发。 嵌入式系统在工程领域的应用 ARM内核版本命名规则 ARM {x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S} x —系列号,例如ARM7中的“7” y —内部存储管理/保护单元 z —内含有高速缓存Cache; T —支持16位的Thumb指令集; D —支持JTAG片上调试; M —支持用于长乘法操作的ARM指令 I ——带有嵌入式追踪宏单元; E —增强型DSP指令(基于TDMI) J —含有Java加速器Jazelle F—向量浮点单元 ARM内核模块 ICE,在线仿真器,In Circuit Emulator ETM,嵌入式追踪宏单元,Embedded Trace Macro TAP,测试访问端口,Test Access Port JTAG是联合测试工作组(Joint Test Action Group) 三级流水线:取指、译码、执行(进行逻辑电路的实现) 五级流水线:取指、译码、执行(计算要访问的存储器地址)、存储器访问(实现数据缓冲功能)、寄存器回写 程序状态寄存器 T:控制位,0表示ARM指令,1表示Thumb指令 F:FIQ中断使能 I:IRQ中断使能 J:Jazelle状态标志位 V:溢出标志位 C:进位或借位标识 Z:结果为0标识 N:符号位标识 ARM处理器的异常 数据终止、快速中断请求、普通中断请求、预取指中止、软件中断、复位、未定义指令。 ARM所有异常中,除了复位异常外,其余的异常都需要返回。 PC指向正被取指的指令,而非正在执行的指令 寄存器移位 ASR算术右移:空出的最高有效位用“符号位”填充; ROR循环右移:移出的低位依次填入空出的高位 RRX带扩展的循环右移: 数据处理指令寻址方式(第二操作数): 立即数方式、寄存器方式、寄存器移位且移位数为5位立即数、寄存器移位且移位数值放在寄存器中、寄存器进行RRX移位得到 ARM指令集系统:数据处理指令、分支指令、加载/存储指令、批量加载/存储指令、交换指令、程序状态寄存器处理指令、协处理器操作指令、异常产生指令。 程序流跳转:使用专门的分支指令(跳转范围-32M—+32M) 直接向PC写入跳转地址值(在4G的地址空间中任意跳转) 交换指令:能在一条指令中实现存储器和寄存器之间交换数据。 程序状态寄存器PSR访问指令:MSR(读)和MRS(写),通过“读取-修改-写回”的操作序列实现。但必须通过BX等指令完成程序状态等的切换。 ARM处理器最多可支持16个协处理器,每个协处理器只执行针对自身的协处理指令。协处理器执行加载/存储指令失败,将产生未定义的指令异常。 ARM异常产生指令:软中断指令SWI,断点调试指令BKPT 伪指令 ARM处理器支持的汇编语言程序里的特殊助记符,它不在处理器运行期间由机器执行,而是在汇编时被合适的机器指令替代成ARM或Thumb指令,从而实现真正的指令操作。 伪操作 ARM汇编语言程序里的特殊的指令助记符,其作用是为完成汇编程序做各种准备工作。只在汇编过程中起作用。 LDR:将32位的常数或地址值读取到寄存器中。若常数符合立即数的要求,则用MOV或MVN替代,否则放入内存文字池。 ADRL、ADR:将基于PC相对偏移的地址或基于寄存器相对偏移的地址值读取到寄存器。可被两条具有等功能的ADD或SUB指令替代。 .equ /.set symbol expr:给数字常量或程序中的标号指定一个名称 .equiv:功能同上。symbol必须在程序段中第一次定义。 .fill repeat,{size},{value} 分配一段字节内存单元,用长度为size的value值填充repeat次 .zero size 用0初始化长度为size的内存单元 .org offset,{expr} 指定从当前地址加offset开始存放代码,并且用0或指定的数据填充当前地址到当前地址加上offset之间的空间. GN

文档评论(0)

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

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

1亿VIP精品文档

相关文档