Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxについて >> Linuxシステムで共有割り込みを処理するためのテクニック

Linuxシステムで共有割り込みを処理するためのテクニック

  

Linuxシステムでは、複数のデバイスが同時に割り込みに応答して割り込みリストを形成できるように、割り込みを共有することができます。割り込みを発生させないプログラムも実行されます。この記事では、Linuxシステムで共有割り込みを処理する方法を説明します。
ログイン

共有割込みなし共有差

1、request_irq()パラメータフラグがSA_SHIRQフラグを設定しなければなりません。

2.登録されている各割り込みハンドラに対して、dev_idパラメータは一意である必要があります。どのデバイス構造へのポインタでもこの要件を満たすことができますが、デバイス構造は一意であり、割り込みハンドラによって使用される可能性があるため、通常選択されます。共有ハンドラにNULL値を渡すことはできません。

3、割り込みハンドラは、そのデバイスが実際に割り込みを生成したかどうかを区別できなければなりません。これには、ハードウェアサポートとハンドラ内の処理ロジックの両方が必要です。ハードウェアがこの機能をサポートしていない場合は、対応するデバイスが割り込みを発行したのか、割り込みラインを共有する他のデバイスが割り込みを発行したのかを単に知ることはできません。

割り込みラインを共有するすべてのドライバは、上記の要件を満たす必要があります。どのデバイスもルールによって共有されていない限り、割り込みラインは共有できません。 SA_SHIRQフラグがrequest_irq()を呼び出すように指定されている場合、割り込みラインが現在登録されていない場合、またはライン上のすべての登録済みハンドラーにSA_SHIRQが指定されている場合にのみ成功します。

注:この時点で2.6は以前のカーネルとは異なり、共有ハンドラーはSA_INTERRUPTを混在させることができます。

上記はLinuxシステムの共有割り込み処理の共有です。割り込みが発生した後、プログラムは応答するかどうかを決定します。これはほとんどのハードウェアで簡単に実装できます。

Copyright © Windowsの知識 All Rights Reserved