WFE 命令はどのように機能しますか? 私が読んだことは、プロセッサが IRQ /FIQ/event/.... を待つようになるということです。
しかし、IRQ を取得するとどうなりますか? irq_fault_handler ベクトルは、WFE が実行された後の割り込みまたは命令の取得時に実行されますか?
WFE 命令はどのように機能しますか? 私が読んだことは、プロセッサが IRQ /FIQ/event/.... を待つようになるということです。
しかし、IRQ を取得するとどうなりますか? irq_fault_handler ベクトルは、WFE が実行された後の割り込みまたは命令の取得時に実行されますか?
WFE は概念的には
while (!event_has_occurred) /*do nothing*/;
ただし、タイトなループを実行する代わりに CPU をオフにします。
割り込みだけでなく、別の CPU (マルチコア プロセッサ内) からの明示的なウェイクアップ イベントなど、 WFE に割り込む可能性のあるいくつかのこと。
WFE 中に割り込みが発生すると、通常のことが起こります。プロセッサは IRQ または FIQ モードに切り替わり、IRQ または FIQ ハンドラにジャンプし、WFE 命令のアドレス (および通常のオフセット 8) が に配置されlr
ます。
CPU が明示的なウェイクアップ イベントによってウェイクアップされた場合、実行は WFE の後の次の命令に進みます。
WFE は、何らかの外部イベントが発生したときにのみ完了する非常に長い NOP と考えてください。