嵌入式期末考试重点整理幻灯片.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
各种异常地址相对应的址 ARM异常向量表P66 Reset:0x0 Und:0x4 Swi:0x8 Abt(指令预取):0xc Abt(dA):0x10 Irq:0x18 Fiq:0x1c 高端地址:0xffff0000 合法立即数是怎么组成的 一、立即数指令码的组成 ARM公司将32bit指令码分为如下两部分: 指令编码部分(20bit) 立即数部分(12bit) D31——D12 D11——D0 ? D11——D8 D7——D0 ? ROR值 Imm8值 32bit立即数通过Imm8值循环右移ROR值*2bit得到。即:shifter_operand = immed_8 Rotate_Right (rotate_imm * 2)。 二、如何判断一个数是否是合法立即数? 首先将这个数转换为32bit16进制形式,例如218=0xDA=0x000000DA 除零外,仅有一位数为合法立即数。 除零外,仅有二位数,并且相邻(包括首尾,如0x1000000A)的为合法立即数。 除零外,仅有三位数,并且相邻(包括中间有0相间,例如0包括首尾相邻,如:0,这三位数中,最高位取值仅能为1、2、3,最低位取值仅能为4、8、C,中间位0x0~0xF。这种组合的为合法立即数。 除了以上三种,其他基本是非法立即数。 三、非法立即数如何输入? 利用LDR伪指令可将任意32bit的立即数赋给寄存器。 格式:LDR RD,=#Imm32 编译时,编译器会优先使用MOV或者MVN指令来加载立即数,以便提高代码运行效率,如不行,则一般编译成如下形式: LDR RD,[PC,#offset] .... PC+OFFSET:.word Imm32 1.如十六进制数在0x00到0xFF之间,则它一定是合法的 1.若十六进制数0XFF则将十六进制的数转化成十进制 2.如果这个十进制数能够被4整除则这个十六进制的立即数和合法的,否则是非法的 3例如:0x101=257/4=64.25 非法 0x104=260/4=65 合法 Arm指令 特权模式(2-7),异常模式(2-7除掉5) ARM有七种工作方式: 1、用户模式(usr):正常的程序执行状态 2、快速中断模式(fiq): 3、中断模式(irq): 4、管理模式(svc):操作系统使用的保护模式 5、系统模式(sys):运行具有特权的操作系统任务 6、数据访问终止模式(abt):数据或指令预取终止时进入该模式 7、未定义指令终止模式(und):未定义的指令执行时进入该模式 可以通过软件来进行模式切换,或者发生各类中断、异常时CPU自动进入相应的模式。 除用户模式外,其余6种工作模式都属于特权模式。 特权模式中除了系统模式以外的其余5种模式称为异常模式。 大多数程序运行于用户模式。 进入特权模式是为了处理中断、异常、或者访问被保护的系统资源。 未定义指令终止摸式:虚拟存储和存储保护 系统模式:主要运行操作系统 数据访问终止模式:用来支持用软件仿真硬件协处理器 除用户模式外均是特权模式,特权模式之间模式可以任意切换,访问全局资源,但是由用户进入到特权模式需异常中断;这6种模式中,除了系统模式,其余的又是异常模式, 当相应程序发生异常时就进入相应的模式,每种模式有自己的堆栈和寄存器。 系统模式即不是通过异常进入的,但是也可以进行全局的数据访问;和用户 是一样的寄存器;也是特权模式的一种;同时也可以切换模式, 异常向量表:共8*4大小的空间,共七种异常向量源,除上面4种异常模式外,增加了复位项,同时增加了指令预取异常和软中断 0x00 复位 0x04 指令未定义 0x0b 软中断 0x0c 指令预取异常 0x10 数据异常 0x14 保留 0x18 IRQ 0x1c FIQ 各种异常返回的指令 eg subs pc,lr_irq,#4 ? Reset ? Und ? Swi ? Pabt ? Dabt ? Irq ? fiq 掌握各种异常下相应的工作模式 一、ARM体系的CPU有以下7种工作模式: 1、用户模式(usr):正常的程序执行状态 2、快速中断模式(fiq): 3、中断模式(irq): 4、管理模式(svc):操作系统使用的保护模式 5、系统模式(sys):运行具有特权的操作系统任务 6、数据访问终止模式(abt):数据或指令预取终止时进入该模式 7、未定义指令终止模式(und):未定义的指令执行时进入该模式 注解: 可以通过软件来进行模式切换,或者发生各类中断、异常时CPU自动进入相应的模式; 除用户模式外,其余6种工作模式都属于特权模式; 特权模式中除了系统模式以外的其余5种模式称为异常

文档评论(0)

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

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

1亿VIP精品文档

相关文档