嵌入式系统实训报告-外部中断

嵌入式系统实训报告-外部中断

ID:46584054

大小:893.90 KB

页数:12页

时间:2019-11-25

嵌入式系统实训报告-外部中断_第1页
嵌入式系统实训报告-外部中断_第2页
嵌入式系统实训报告-外部中断_第3页
嵌入式系统实训报告-外部中断_第4页
嵌入式系统实训报告-外部中断_第5页
资源描述:

《嵌入式系统实训报告-外部中断》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《嵌入式系统技术》实训报告学期:日期:实训场所:二级学院信息工程学院班级姓名学号实验题目实训四、外部中断1、实验目的z了解S3C2440A外部中断的工作原理。z掌握S3C2440A外部中断的使用方法。2、实验设备zPC机、Multi-ICE仿真器、2440A实验箱。3、实验内容z通过外部K1、K2、K3、K4、K5、K7按键触发外部中断EINT1、EINT2、EINT3、EINT4、EINT5、EINT74、实验原理4.1ARM的异常中断类型在嵌入式系统中外部设备的功能实现主要是靠中断机制来实现的。中断功能可以解决CPU内部运行速度远远快于外部总线速度而产生的等待延时问题。ARM提供的FIQ和

2、IRQ异常中断用于外部设备向CPU请求中断服务,一般情况下都是采用IRQ中断。七种异常中断中断过程框图4.2异常中断响应过程和返回过程异常中断的响应过程:1).保存处理器当前状态寄存器CPSR的值到备份程序状态寄存器SPSR中。2).设置但前程序状态寄存器CPSR的值,其中包括:设置CPSR响应位的值,使处理器进入特定的处理器模式;按要求屏蔽中断,通常应该屏蔽IRQ中断。在FIQ中断时屏蔽FIQ中断。3).设置Lr寄存器。将相应中断模式的Lr寄存器的值设为异常中断的返回地址。4).处理程序计数器PC,将PC值设为相应的中断向量的地址,从而实现跳转以执行中断服务程序。异常中断的返回当处理器执行完

3、以上流程之后,处理器已经从中断向量进入异常处理的状态。异常中断处理完毕之后,在异常中断程序的末端,处理器进入异常中断的返回状态,其流程如下:1).恢复状态寄存器。将保存的备份程序状态寄存器SPSR值赋给当前程序状态寄存器CPSR。2).将返回地址赋值到程序计数器(PC)。这样程序将返回到异常中断产生的下一条指令或出现问题的指令处执行。需要注意的是:对于不同的异常中断,其返回地址的计算方法也是不同的,IRQ和FIQ异常中断产生时,程序计数器PC已经更新,而SWI中断和未定义指令中断时由当前指令自身产生的,程序计数器PC尚未更新,所以要计算出下一条指令的地址来执行返回操作;指令预取指中指异常中断和

4、数据访问中断要求,返回到出现异常的执行现场,重新执行操作。S3C2440A异常中断的响应-返回流程图:保存状态寄存器CPSR->进入特定模式、屏蔽中断->设置Lr寄存器->设置程序计数器PC进入中断向量、异常中断的处理程序->恢复状态寄存器->将返回地址复制到程序计数器4.3异常中断的安装S3C2440A系统通过异常向量表安装异常中断处理程序。即将异常向量表指向异常中断处理程序的入口,实现面向异常中断的跳转,异常向量中断的的入口地址是固定的(0x00-0x1C),系统运行到满足异常中断时,系统将自动跳入相应的异常中断向量表中,而在异常向量表中保存的正是利用跳转指令或LDR指令指向该中断的异常中

5、断处理程序,这就实现了异常中断处理程序的安装。1).利用跳转指令实现异常中断的安装将BL指令放置到中断向量表的特定位置,跳转目标地址为中断处理程序的首地址,便可直接实现异常中断的安装。其优点是BL指令可以直接保存地址,缺点是BL的跳转范围只有32MB的地址空间。2).利用ldr指令实现异常中断的安装利用ldr直接向程序计数器PC中赋值也可以实现中断处理程序的安装。先要将异常中断处理程序首地址的绝对地址放在临近的一个存储单元中,然后用ldr命令将该内存单元中的地址读取到PC中。其优点是可调用程序的范围不受限制。5、S3C2440A的中断控制器SRCPND――源中断指示寄存器SRCPND寄存器32

6、位中的每一位对应着一个中断源,每一位被设置为1,则相应的中断源产生中断请求并且等待中断被服务。因此,这个寄存器表明了哪个中断源在等待中断请求被处理。注意,SRCPND寄存器的每一位是由中断源自动设置的,而不管INTMSK寄存器中的屏蔽位是否置1。另外,SRCPND寄存器不影响中断控制器的优先级逻辑。在指定中断源的中断服务程序中,SRCPND寄存器相对应的位必须被清除,这样才可以正确地响应来自同一中断源的中断请求。如果从ISR返回而没有清除相应的位,也就是SRCPND寄存器中的对应的位还是1,那么就会一直响应这个中断请求。SRCPND中相应的中断标志位清除的时间依赖于用户的需求,如果想要从同一中

7、断源接收另一次有效的中断请求,你在第一次就应该清除相应的位,并且使能中断。用户可以通过向SRCPND寄存器的相应位写“1”,这样可以清除该位。下表为SRCPND寄存器的地址和位定义说明INTMOD――中断模式寄存器中断模式寄存器(INTMOD)的32位中的每一位对应一个中断源,当INTMOD的谋一位都设置为1,则ARM内核将以FIQ模式响应中断,否则将以IRQ模式响应中断。INTMOD寄存器的定义

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。