S3C2410中文手册关于中断请求寄存器的描述模糊不清,让人难以理解,我将对下面这段文字进行一个解释。
一、 中断请求寄存器的概念
在S3C2410处理器中,有两个与中断请求相关的寄存器:
源请求寄存器(SRCPND):这个寄存器记录所有中断源发出的中断请求。也就是说,当任何一个中断源请求服务时,SRCPND寄存器中对应该中断源的位会被置为1,表示该中断源请求了中断。
中断请求寄存器(INTPND):这个寄存器记录当前处理中断的情况。只有经过仲裁,处理器决定要处理某个中断后,INTPND寄存器中对应的位才会被置为1。
二、有屏蔽中断的情况
即使某个中断源被屏蔽,它依然可以向处理器发出中断请求。此时,SRCPND寄存器中对应的位会被置为1,表示这个中断请求已经发出。
但是因为这个中断源被屏蔽,所以处理器不会处理它,因此INTPND寄存器中的对应位不会被置为1。
三、I和F位
当INTPND寄存器中的某一位被置为1时,这表示处理器已经决定要处理这个中断。
同时,处理器还会检查处理器状态寄存器中的I位(中断屏蔽位)和F位(快速中断屏蔽位)。如果这两个位清零,表示允许中断服务,那么处理器就会开始中断服务。
四、红字部分
为了防止中断请求持续影响系统,在中断服务函数中,需要手动清除SRCPND和INTPND寄存器中对应的位。