S3C2440A的中断控制器

来源:互联网 发布:家庭网络布线弱电箱 编辑:程序博客网 时间:2024/04/28 04:18

  今天下午看了三星S3C2440A的中断控制器部分, 下面是其DataSheet上有关这一部分的主要内容.

  S3C2440A的中断控制器共可以接收60个中断源的中断请求. 当收到内部或外部的中断请求后, 经过仲裁程序, 中断控制器会向ARM920T内核请求快速中断(FIQ)或中断(IRQ).

    1.Program status Register(PSR)(程序状态寄存器): 若PSR的F-bit被置1, 则CPU不接收来自中断控制器的快速中断请求(FIQ). 同样,如果PSR的I-bit被置1,则CPU不接收来自中断控制器的中断请求(IRQ).

   2.Interrup Mode Register(中断模式寄存器): 对应位置1表示FIQ模式(fast interrupt)否则为IRQ模式(normal interrupt). 另外, 仅能有一个中断源能被设置成FIQ模式.

   3.Interrupt Pending Register(不知道该如何翻译,挂起寄存器?): S3C2440A有两个挂起寄存器,分别是sourse pending register(SRCPND)和interrupt pending register(INTPND). 当中断源请求中断服务的时候, SRCPND的相应位被置为1, 与此同时, 经过仲裁程序, INTPND中仅有一位会自动被置为1.  如果该中断被屏蔽, SRCPND依旧会被置1, 而INTPND不变. 当INTPND中的一位被置1后, 只要I-flag或F-flag被清0, 中断服务程序就会开始. 中断服务程序还必须把SRCPND和INTPND的相应位清0.

   4.Interrupt Mask Register(INTMSK)(中断屏蔽寄存器):  该寄存器相应位置1表示中断禁用, 置0为中断使能. 当中断产生时, 即使相应的屏蔽位被置为1, SRCPND也会被置位.

   5. Sourse Pending Register(SRCPND): 32位的寄存器, 每一位对应一个中断源. 当中断源产生中断请求时, 该寄存器对应位置1, 它也表明中断源在等待中断服务. 需要注意的是, 不管INTMASK寄存器如何设置, SRCPND都会被自动置位. 在中断服务程序(ISR)中, SRCPND的对应位必须要清零, 以便接收下次的中断请求.

   6.Interrupt Offset Register(INTOFFSET): 保存INTPND中是哪个IRQ的中断请求.

   7.Sub Source Pending Register(SUBSRCPND): 略.

   8.Interrupt Sub Mask Register(INTSUBMSK): 略.
 

原创粉丝点击