S3C2410A中断控制器详解

需积分: 10 7 下载量 38 浏览量 更新于2024-11-27 收藏 329KB DOC 举报
"s3c2410a的中断控制器设计和操作" S3C2410A中断控制器是该微处理器系统中一个至关重要的组件,它负责管理和协调来自不同中断源的请求。该控制器能够处理多达56个中断源,包括内部外设如DMA控制器、UART、IIC等,以及外部中断引脚EINTn和UARTn。中断的处理流程是,当这些中断源产生中断请求时,请求会被汇集并通过仲裁逻辑,然后根据硬件优先级确定哪个中断应该优先响应。 中断控制器的运作与ARM920T核心的程序状态寄存器(PSR)紧密相关。PSR中的F位和I位分别控制快速中断(FIQ)和普通中断(IRQ)的使能状态。如果F位为1,CPU将忽略FIQ请求;如果I位为1,CPU会忽略IRQ请求。因此,为了响应中断,需要清除PSR的F和I位,并确保中断屏蔽寄存器INTMSK的相应位为0。 中断模式在ARM920T中有两种:FIQ和IRQ。每个中断源都可以指定其请求是通过FIQ还是IRQ模式传递。FIQ通常用于高速数据处理,因为它提供了更快的中断响应路径,而IRQ则适用于一般性的中断处理。 中断未决寄存器包括源未决寄存器(SRCPND)和中断未决寄存器(INTPND)。这两个寄存器记录了当前哪些中断源正在请求服务。当中断源请求服务时,SRCPND的相应位被置1。仲裁程序执行后,INTPND的相应位也会被自动置1,但只有在中断未被屏蔽的情况下才会发生。中断服务例程的启动需要INTPND寄存器中的未决位为1,且PSR的I和F标志都为0。清除中断状态需要分别向SRCPND和INTPND寄存器的相应位写入1。 中断屏蔽寄存器(INTMSK)用于控制中断的启用和禁用。如果INTMSK中的某一位被设为1,对应的中断将被禁止,即使中断发生,源未决位也会被置位,但不会触发中断服务。相反,如果INTMSK的位为0,中断将会正常触发。 中断源的种类繁多,包括INT_ADC,它涵盖了ADC转换结束和触摸屏中断。每个中断源都有特定的描述和在仲裁组中的优先级。中断控制器通过这样的方式确保了系统能有效、高效地处理各种实时事件,从而维持系统的稳定运行。