私は組み込みLinuxボードでレベルトリガー割り込みを取得しようとしている初心者です。poll() を使用して割り込みイベントを待機しています。エッジトリガー割り込みの取得に成功しました。
レベルトリガー割り込みを取得するにはどうすればよいですか? エッジを何に設定しますか?
立ち下がりまたは立ち上がり遷移は、エッジ トリガー割り込みをトリガーします。ポーリングはそのような割り込みを処理するためのオプションですが、CPU サイクルを節約するには、カーネルが割り込みが発生するまでスリープし、割り込みが発生したときにウェイクアップするようにスケジュールできるスレッドを作成します。このようにして、メイン プログラムはポーリングでロックされません。
割り込みラインは、レベル トリガー割り込みの高レベルまたは低レベルにあります。エッジの概念は、レベル トリガー割り込みには適用されません。ここで、CPU はデバイスをスキャンして、割り込みをトリガーしたデバイスを見つけます。デバイスがサービスされると、サービスを必要とする可能性のある他のデバイスの割り込みライン ステータスを再チェックし続けます (割り込み共有)。これがすぐに確認 (クリア/処理) されない場合、割り込みハンドラー アテンションの繰り返し/継続的な呼び出しにより、システムがハング状態になる可能性があります。つまり、保留中の割り込みがデバイス レジスタへの書き込みに関してソフトウェアによってクリアされるまで、外部デバイスは IRQ 信号をアサートする必要があります。多くのデバイスが IRQ 信号をトリガーした場合、すべてのデバイス ドライバーがそれぞれのデバイスにサービスを提供するまで、高レベルまたは低レベルが存在します。そう、