1. O que é IRQ? O que são FIQs?
IRQ (Interrupt Request): refere-se ao modo de interrupção;
FIQ (Fast Interrupt Request): refere-se ao modo de interrupção rápida;
IRQ e FIQ são dois modos de programação diferentes do processador ARM.
FIQ é usado para interrupções de alta prioridade que requerem resposta rápida.
IRQs são usados para interrupções comuns de prioridade normal.
Em segundo lugar, a diferença entre IRQ e FIQ
-
Prioridade: FIQ tem prioridade mais alta que IRQ;
-
Contexto: o FIQ salva o contexto completo da CPU e o IRQ salva apenas parte do contexto;
-
IRQ é geralmente usado para interrupções externas comuns, e FIQ é geralmente usado para interrupções mais importantes ou sensíveis ao tempo;
- Pilha: o FIQ usa uma pilha FIQ dedicada e o IRQ usa a pilha principal da CPU.
3. Interrompa a resposta
Se a interrupção for definida como IRQ, quando a interrupção for gerada, o processador de interrupção informa ao ARM por meio da linha de solicitação de IRQ, e o ARM sabe que uma interrupção de IRQ está chegando e, em seguida, o ARM alterna para o modo IRQ para executar.
Da mesma forma, se a interrupção for definida como FIQ, quando a interrupção for gerada, o processador de interrupção informa ao ARM por meio da linha de solicitação FIQ e o ARM sabe que uma interrupção FIQ está chegando e, em seguida, alterna para o modo FIQ para executar.