中断寄存器.doc_第1页
中断寄存器.doc_第2页
中断寄存器.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一.S3C2440A 中的中断控制器接受来自60 个中断源的请求。提供这些中断源的是内部外设,如DMA 控制器、UART、IIC 等等。在这些中断源中,UARTn、AC97 和EINTn 中断对于中断控制器而言是“或”关系。当从内部外设和外部中断请求引脚收到多个中断请求时,中断控制器在仲裁步骤后请求ARM920T 内核的FIQ或IRQ。仲裁步骤由硬件优先级逻辑决定并且写入结果到帮助用户通告是各种中断源中的哪个中断发生了的中断挂起寄存器中 二.中断控制器操作用来选择FIQ或IRQ程序状态寄存器(PSR)的F 位和I 位如果ARM920T CPU 中的PSR 的F 位被置位为1,CPU 不会接受来自中断控制器的快中断请求(FIQ)。同样的如果PSR 的I 位被置位为1,CPU 不会接受来自中断控制器的中断请求(IRQ)。因此,中断控制器可以通过清除PSR 的F 位和I 位为0 并且设置INTMSK 的相应位为0 来接收中断。.中断控制器特殊寄存器此处中断控制器中有5 个控制寄存器:源挂起寄存器、中断模式寄存器、屏蔽寄存器、优先级寄存器和中断挂起寄存器。所有来自中断源的中断请求首先被记录到源挂起寄存器中。基于中断模式寄存器,它们被分配到2 个组中,包括快中断请求(FIQ)和中断请求(IRQ)。IRQ 的多仲裁过程是基于优先级寄存器。三.中断挂起寄存器S3C2440A 有两个中断挂起寄存器:源挂起寄存器(SRCPND)和中断挂起寄存器(INTPND)。这些挂起寄存器表明一个中断请求是否为挂起。当中断源请求中断服务,SRCPND 寄存器的相应位被置位为1,并且同时在仲裁步骤后INTPND 寄存器仅有1 位自动置位为1。如果屏蔽了中断,则SRCPND 寄存器的相应位被置位为1。这并不会引起INTPND 寄存器的位的改变。当INTPND 寄存器的挂起位为置位,每当I 标志或F 标志被清除为0 中断服务程序将开始。SRCPND 和INTPND 寄存器可以被读取和写入,因此服务程序必须首先通过写1 到SRCPND寄存器的相应位来清除挂起状态并且通过相同方法来清除INTPND 寄存器中挂起状态。四.中断屏蔽寄存器此寄存器表明如果中断相应的屏蔽位被置位为1 则禁止该中断。如果某个INTMSK 的中断屏蔽位为0,将正常服务中断。如果INTMSK 的中断屏蔽位为1 并且产生了中断,将置位源挂起位。源挂起(SRCPND)寄存器SRCPND 寄存器由32 位组成,其每一位都涉及一个中断源。如果中断源产生了中断则相应的位被设置为1 并且等待中断服务。因此此寄存器指示出是哪个中断源正在等待请求服务。注意SRCPND 寄存器的每一位都是由中断源自动置位,其不顾INTMASK 寄存器中的屏蔽位。另外SRCPND 寄存器不受中断控制器的优先级逻辑的影响。在指定中断源的中断服务程序中,必须通过清除SRCPND 寄存器的相应位来正确的获得来自相同源的中断请求。如果从ISR 中返回并且未清除相应位,则中断控制器的操作就好像其它中断请求已经从同一个源进入了。换句话说,如果SRCPND 寄存器的指定位被设置为1,其通常被认作一个有效中断请求正在等待服务。清除相应位的时间依赖于用户的需要。如果希望收到来自相同源的其它有效请求,则应该首先清除相应位并且接着使能中断。可以通过写入一个数据到此寄存器来清除SRCPND 寄存器的指定位。其只清除那些数据中被设置为1 的相应位置的SRCPND 位。那些数据中被设置为0 的相应位置的位保持不变。 中断模式(INTMOD)寄存器此寄存器由32 位组成,其每一位都都涉及一个中断源。如果某个指定位被设置为1,则在FIQ(快中断)模式中处理相应中断。否则则在IRQ 模式中处理。特别注意,只能有一个中断设置为快速中断模式。中断屏蔽(INTMSK)寄存器此寄存器由32 位组成,其每一位都涉及一个中断源。如果某个指定为被设置为1,则CPU 不会去服务来自相应中断源(请注意即使在这种情况中,SRCPND 寄存器的相应位也设置为1)的中断请求。如果屏蔽位为0,则可以服务中断请求。中断挂起(INTPND)寄存器中断挂起寄存器中32 位的每一位都表明了是否相应未屏蔽并且正在等待中断服务的中断请求具有最高的优先级。当INTPND 寄存器在优先级逻辑后被定位了,只有1 位可以设置为1 并且产生中断请求IRQ 给CPU。IRQ 的中断服务程序中可以读取此寄存器来决定服务32 个中断源的哪个源。就如SRCPND 寄存器,必须在中断服务程序中清除了SRCPND 寄存器后清除此寄存器。可以通过写入数据到此寄存器中来清除INTPND 寄存器的指定位。只会清除数据中设置为1 的相应INTPND 寄存器位的位置。数据中设置为0 的相应位的位置则保持不变。特别注意:在清除源挂起寄存器和中断挂起寄存器时,是向寄存器中的相应位写1,不是写0,这是由寄存器的硬件结构决定的。次级源挂起(SUBSRCPND)寄存器可以通过写入数据到此寄存器来清除SUBSRCPND 寄存器的指定位。只有数据中那些被设置为1 的相应SUBSRCPND 寄存器的位的位置才能被清除。数据中那些被设置为0 的相应位的位置则保持不变。中断次级屏蔽(INTSUBMSK)寄存器此寄存器有11 位,其每一位都与一个中断源相联系。如果某个指定位被设置为1,则相应中断源的中断请求不会被CPU 所服务(请注意即使在这种情况中,SRCPND 寄存器的相应位也设置为1)。如果屏蔽位为0,则可以服务中断请求。还有就是清除中断时有子中断的要先清除子中断位,再清除中断位,有子中断的要设置子中断屏蔽寄存器打开子中断。中断顺序1.设置好中断模式以及相关的栈,可看三星提供的初始化文件。2.在异常向量表设置好相应的跳转指令。那么当产生中断的时候,PC指针就会跳到该向量表处,那么就会执行跳转指令到相应的服务程序入口。3.在设置异常模式下CPU模式和相关的栈之后(三星

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论