微处理器系统结构跟嵌入式系统-第七节_arm微处理器编程.ppt

微处理器系统结构跟嵌入式系统-第七节_arm微处理器编程.ppt

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

ARM处理器内核流水线工作流程 ARM芯片、内核和CPU的关系 中断延迟 当允许FIQ中断时,最坏情况下FIQ的中断延迟由以下几部分组成,即 ① Tsyncmax(请求通过同步器的最长时间)。Tsyncmax为4个处理器周期。 ② Tldm(最长指令的完成时间)。最长指令是加载包括PC在内的所有寄存器的LDM指令。在零等待状态的系统中,Tldm为20个处理器周期。 ③ Texc(数据中止异常进入时间)。Texc为3个处理器周期。 ④ Tfiq(FIQ进入时间)。Tfiq为2个处理器周期。 总延迟是29个处理器周期。在使用40 MHz处理器时钟的系统中,总延迟超过0.7 ms。当延迟结束时,处理器执行在0x1C处的指令。 对于最大的IRQ延迟,其计算与FIQ的类似。若必须允许FIQ有更高的优先级,那么其结果是,进入IRQ处理程序的延迟时间是随机的。 作业 7.1、7.2、7.3 * Q 位(27位): 仅ARM 5TE/J架构支持 指示增强型DSP指令是否溢出 J 位(24位) 仅ARM 5TE/J架构支持 J = 1: 处理器处于Jazelle状态 异常exception 异常指正常执行的程序流因故被暂时中止; ARM支持7种异常类型(P231表7-6)、5种异常模式; 若同时发生多个异常,将按优先级顺序处理; 异常类型 对应异常模式 优先级 复位 Supervisor 1(最高优先级) 数据中止 Abort 2 FIQ FIQ 3 IRQ IRQ 4 指令预取中止 Abort 5 未定义指令 Undefined 6 SWI Supervisor 7(最低优先级) 优先级降低 * */95 复位异常Reset 当nRESET引脚信号变为低电平时, ARM立即停止执行当前指令,产生复位异常; 当nRESET再次变为高电平后,ARM处理器执行下列操作: 1.强制CPSR中的M[4:0]变为b10011,进入管理模式; 2.置位CPSR中的I和F位; 3.清零CPSR中的T位; 4.强制PC从地址0x00开始取第一条指令; 5.返回到ARM状态并恢复执行; * */95 中止异常Abort 中止异常包括指令预取中止和数据中止; 预取中止时,ARM将预取的指令标记为无效,但在指令到达流水线的执行阶段时才进入异常。如果指令在流水线中因为发生分支而没有被执行,中止将不会发生。 数据中止时,数据访问被记为无效,中止程序应根据中止原因作出处理,使数据可以被访问。 中止异常表示对存储器的访问失败,这种机制实际保证了虚拟存储技术的实现。 * */95 中断异常(IRQ、FIQ) 中断请求(IRQ)是一个由nIRQ引脚信号低电平所产生的正常中断(nIRQ是内核信号,对用户不可见)。IRQ的优先级低于FIQ,对于FIQ异常它是被屏蔽的。在一个特权模式中可通过置位CPSR中的I 位来禁止IRQ。 快速中断请求(FIQ)适用于对一个突发事件的快速响应。ARM状态中FIQ模式多设置了7个分组寄存器(R8_fiq~R14_fiq)可加速上下文切换的速度。在一个特权模式中可通过置位CPSR中的F位来禁止FIQ异常。 */95 未定义指令异常 当ARM处理器遇到一条自己和系统内任何协处理器都无法处理的指令时,将产生未定义指令陷阱。 软件可使用这一机制通过模拟未定义的协处理器指令来扩展ARM指令集。 * */95 软件中断异常(SWI) 执行指令SWI可进入软件中断异常; 该异常使处理器从用户模式进入管理模式,通常用于请求一个特定的管理函数(即调用系统功能函数)。 * */95 异常向量(表) 向量地址 异常类型 进入时模式 进入时I状态 进入时F状态 0x0000 0000 复位 管理 禁止 禁止 0x0000 0004 未定义指令 未定义 I F 0x0000 0008 软件中断(SWI) 管理 禁止 F 0x0000 000C 预取中止(指令) 中止 I F 0x0000 0010 数据中止 中止 I F 0x0000 0014 保留 保留 — — 0x0000 0018 IRQ 中断 禁止 F 0x0000 001C FIQ 快中断 禁止 禁止 异常发生时处理器将PC值强制设置为对应的异常向量; 异常向量处通常只存放一条跳转指令,指向真正的异常处理 程序; 异常向量表的后面一般紧跟着存放FIQ的异常处理程序,这样 可以减少一次跳转,提高FIQ的响应速度; * */95 异常响应过程 在LR中保存返回地址信息; ARM状态下将当前指令地址加4或加8复制到LR Thumb状态下将当前指令地址加2、4或加8 复制到LR 将CPSR复制到适当的SPSR中; 将CPSR模式位强制设置为与异常类型相对应的值; 强制PC从相关的异常向量

文档评论(0)

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

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

1亿VIP精品文档

相关文档