中断寄器.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文档。上传文档
查看更多
中断寄器

一. 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)

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

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

1亿VIP精品文档

相关文档