中断控制器为中断系统提供简单的软件接口。
某些中断位是为任何系统中所需的基本功能定义的,而其余位可供任何特定实现中的其他设备使用。
在ARM系统中,可以使用两种级别的中断:
·用于快速、低延迟中断处理的快速中断请求(FIQ)·用于更一般中断的中断请求(IRQ)。
理想情况下,在ARM系统中,在任何特定时间都只有一个FIQ源在使用。
这提供了真正的低延迟中断,因为单个源确保可以直接执行中断服务例程,而无需确定中断的源。
它还减少了中断延迟,因为额外的存储体寄存器可用于FIQ中断,可通过避免上下文保存来最大限度地提高效率。
FIQ和IRQ使用单独的中断控制器。
FIQ只定义了一个位位置,供单个中断源使用,而IRQ控制器中最多有32位可用。
标准配置仅提供六条中断请求线。
通过更改IRQSize常量并增加PD的宽度,可以将其扩展到最多32个源。IRQ中断控制器为每个不同的中断源使用一个位位置。
为软件编程中断、
通信通道和计数器定时器定义位位置。
IRQ控制器中的位0未分配,因此它可以与FIQ控制器共享相同的中断源。
所有中断源输入必须有效、高且电平敏感。
必须在中断的产生源处提供提供边沿灵敏度所需的任何反转或锁存。
不提供硬件优先级方案,也不提供任何形式的中断引导,因为这些功能可以在软件中提供。
还提供了编程中断寄存器,以在软件控制下生成中断。
通常,这可用于将FIQ中断降级为IRQ中断。