当前位置:首页 > 问问

arm fiq中断 为什么需要禁止irq 禁止IRQ的原因:ARM FIQ中断

ARM FIQ中断为什么需要禁止IRQ

ARM处理器及其内核,除了中断请求(IRQ)外,还支持高速中断请求(FIQ)的处理机制。但是,在处理FIQ中断时,需要禁止IRQ中断,这是为什么呢?

1、区分FIQ和IRQ

首先,我们需要了解一下FIQ和IRQ之间的区别。IRQ是普通中断请求,比如异步串口中断、GPIO中断等等,用于处理时间稍长的异步事件。而FIQ适用于一些紧急情况,它是用于快速处理中断请求的。比如在手机上,接通充电后的电池电量低于20%,就会触发FIQ中断请求。这种情况下,需要及时处理FIQ以防止手机关机。

2、FIQ需要尽可能快速响应

FIQ中断请求是一种可急可快的中断请求,处理时需要尽可能快速响应,比如在极短的时间内保存现场,同时又要求能够在极短的时间内恢复现场,继续处理CPU的其他任务。一旦CPU进入FIQ模式,CPU就会立刻暂停正在执行的指令,并切换到FIQ中断处理程序中去执行。所以需要尽快响应。

3、禁止IRQ是为了防止冲突

当进入FIQ中断时,因为FIQ中断请求是比较紧急的,所以中间是不允许有其他中断请求的。这样能够保证FIQ中断处理程序的快速响应。而IRQ中断请求的响应比较慢,为了防止中断响应时的冲突,需要在FIQ中断处理程序中禁用IRQ请求。

4、FIQ中断可以优先处理于IRQ中断

在处理FIQ中断时,如果IRQ中断请求同时也出现了,由于IRQ已经被禁用,CPU不会响应IRQ请求,而是优先处理FIQ请求。这样可以保证FIQ中断的快速响应处理,同时又保证了IRQ中断请求在FIQ中断处理结束后的正常响应。

总结

因此,在处理FIQ中断时,需要禁用IRQ中断。这样既能够保证FIQ中断的快速响应处理,也能够避免中断请求的冲突,同时IRQ中断请求在FIQ中断处理结束后正常响应。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章