[005 割り込み] IRQ と FIQ の違いは何ですか? CPU 内でどのように行われますか?

1.IRQとは何ですか? FIQ とは何ですか?

IRQ (割り込み要求):割り込みモードを指します;
FIQ (高速割り込み要求):高速割り込みモードを指します;
IRQ と FIQ は、ARM プロセッサの 2 つの異なるプログラミング モードです。

FIQ は、高速応答が必要な優先度の高い割り込みに使用されます。

IRQ は、一般的な通常優先度の割り込みに使用されます。


次に、IRQ と FIQ の違い

  1. 優先度: FIQ は IRQ よりも高い優先度を持ちます。

  2. コンテキスト: FIQ は完全な CPU コンテキストを保存しますが、IRQ はコンテキストの一部のみを保存します。

  3. IRQ は通常の外部割り込みに使用され、FIQ はより重要な割り込みまたは時間に敏感な割り込みに使用されます。

  4. スタック: FIQ は専用の FIQ スタックを使用し、IRQ はメイン CPU スタックを使用します。


3. 割り込み応答

割り込みが IRQ に設定されている場合、割り込みが生成されると、割り込みプロセッサは IRQ 要求ラインを通じて ARM に通知し、ARM は IRQ 割り込みが来ることを認識し、ARM は IRQ モードに切り替えて実行します。

同様に、割り込みが FIQ に設定されている場合、割り込みが生成されると、割り込みプロセッサは FIQ 要求ラインを通じて ARM に通知し、ARM は FIQ 割り込みが来ることを認識し、FIQ モードに切り替えて実行します。

おすすめ

転載: blog.csdn.net/qq_41709234/article/details/131236882