实验5-外部中断应用实验.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验五 外部中断应用实验 一、实验目的: 1.了解S3C2440外部中断的工作原理。 2.掌握S3C2440外部中断的使用方法。 二、实验设备: PC机、仿真器、ARM 实验箱。 三、实验内容: 通过外部S201、S202、S203 按键触发外部中断。 四、实验原理: 5.1 ARM 的异常中断类型 在嵌入式系统中外部设备的功能实现主要是靠中断机制来实现的。中断功能可以解决 CPU 内部运行速度远远快于外部总线速度而产生的等待延时问题。ARM 提供的FIQ 和 IRQ 异常中断用于外部设备向CPU 请求中断服务,一般情况下都是采用IRQ 中断。 5.2 异常中断响应过程和返回过程 异常中断的响应过程: 1).保存处理器当前状态寄存器CPSR 的值到备份程序状态寄存器SPSR 中。 2).设置但前程序状态寄存器CPSR 的值,其中包括:设置CPSR 响应位的值,使处理 24 器 进入特定的处理器模式;按要求屏蔽中断,通常应该屏蔽IRQ 中断。在FIQ 总断时屏 蔽FIQ 中断。 3).设置Lr 寄存器。将相应中断模式的Lr 寄存器的值设为异常中断的返回地址。 4).处理程序计数器PC,将PC 值设为相应的中断向量的地址,从而实现跳转以执行中 断服务程序。 异常中断的返回过程: 当处理器执行完以上流程之后,处理器已经从中断向量进入异常处理的状态。异常中断 处理完毕之后,在异常中断程序的末端,处理器进入异常中断的返回状态,其流程如下: 1).恢复状态寄存器。将保存的备份程序状态寄存器SPSR 值赋给当前程序状态寄存器 CPSR。 2).将返回地址赋值到程序计数器(PC)。这样程序将返回到异常中断产生的下一条指令 或出现问题的指令处执行。 需要注意的是:对于不同的异常中断,其返回地址的计算方法也是不同的,IRQ 和FIQ 异常中断产生时,程序计数器PC 已经更新,而SWI 中断和未定义指令中断时由当前指令 自身产生的,程序计数器PC尚未更新,所以要计算出下一条指令的地址来执行返回操作; 指令预取指中指异常中断和数据访问中断要求,返回到出现异常的执行现场,重新执行操作。 保存状态寄存器CPSR-进入特定模式、屏蔽中断-设置Lr 寄存器-设置程序计 数器PC进入中断向量、异常中断的处理程序-恢复状态寄存器-将返回地址复制到程序 计数器。 5.3 异常中断的安装 S3C2440 系统通过异常向量表安装异常中断处理程序。即将异常向量表指向异常中断 处理程序的入口,实现面向异常中断的跳转,异常向量中断的的入口地址是固定的(0x00 -0x1C),系统运行到满足异常中断时,系统将自动跳入相应的异常中断向量表中,而在异 常向量表中保存的正是利用跳转指令或LDR 指令指向该中断的异常中断处理程序,这就实 现了异常中断处理程序的安装。 1).利用跳转指令实现异常中断的安装 将 BL 指令放置到中断向量表的特定位置,跳转目标地址为中断处理程序的首地址, 便可直接实现异常中断的安装。其优点是BL指令可以直接保存地址,缺点是BL的跳转范 围只有32MB 的地址空间。 2).利用ldr 指令实现异常中断的安装 利用ldr 直接向程序计数器PC 中赋值也可以实现中断处理程序的安装。先要将异常 中断处理程序首地址的绝对地址放在临近的一个存储单元中,然后用ldr 命令将该内存单 元中的地址读取到PC 中。其优点是可调用程序的范围不受限制。 五、S3C2440 的中断控制器: SRCPND――源中断指示寄存器 SRCPND 寄存器32 位中的每一位对应着一个中断源,每一位被设置为 1,则相应的 中断源产生中断请求并且等待中断被服务。因此,这个寄存器表明了哪个中断源在等待中 断请求被处理。注意,SRCPND 寄存器的每一位是由中断源自动设置的,而不管INTMSK 寄存器中的屏蔽位是否置 1。另外,SRCPND 寄存器不影响中断控制器的优先级逻辑。 在指定中断源的中断服务程序中,SRCPND 寄存器相对应的位必须被清除,这样才可 以正确响应来自同一中断源的中断请求。如果从ISR 返回而没有清除相应的位,也就是 SRCPND 寄存器中的对应的位还是1,那么就会一直响应这个中断请求。 SRCPND 中相应的中断位清除的时间依赖于用户的需求,如果想要从同一中断源接收 另一次有效的中断请求,你在第一次就应该清除相应的位,并且使能中断。用户可以通过向 SRCPND 寄存器的相应位写“1”,这样可以清除该位。下表为SRCPND 寄存器的地址和位 定义说明。 INTMOD――中断模式寄存器 中断模式寄存器(INTMOD)的32 位中的每一位对应一个中断源,当INTMOD 的每 一位都设置位 1,则ARM 内核将以FIQ 模式相应中断,否则将以IRQ 模式相应中断。 25 INTMOD

文档评论(0)

js1180 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档