一、什么是IRQ?什么是FIQ?
IRQ(Interrupt Request): 指中断模式;
FIQ(Fast Interrupt Request): 指快速中断模式;
IRQ与FIQ是ARM处理器的两种不同编程模式。
FIQ用于需要快速响应的高优先级中断。
IRQ用于常见的一般优先级中断。
二、IRQ和FIQ的区别
-
优先级:FIQ的优先级高于IRQ;
-
上下文:FIQ保存完整的CPU上下文,IRQ只保存部分上下文;
-
IRQ一般用于普通的外部中断,FIQ一般用于更重要或时间敏感的中断;
- 栈:FIQ使用专用的FIQ栈,IRQ使用主CPU栈。
三、中断的响应
如果该中断设置为了IRQ,那么当该中断产生的时候,中断处理器通过IRQ请求线告诉ARM,ARM就知道有个IRQ中断来了,然后ARM切换到IRQ模式运行。
类似的如果该中断设置为FIQ,那么当该中断产生的时候,中断处理器通过FIQ请求线告诉ARM,ARM就知道有个FIQ中断来了,然后切换到FIQ模式运行。