
ドライバgpio_keysについて混乱しています。ドライバは2種類のボタンを区別します。
IRQボタンとGPIOドライバボタンのみ
誰もが2つの違いを説明できますか?
答え1
免責事項:最新の内容を読んでいません。gpio_keys
コード、ちょうど見てみました。しかし、GPIOキーとIRQの分離の良い説明があると思います。
カーネルにはIRQイベントテーブルがあるため、既知のIRQに他のイベントを割り当てることができます。イベントリスト(コールバック、実際のポインタ)はPIC(別々のチップまたはCPUに統合されています)に書き込まれ、特定の割り込みが発生すると実行コンテキストがイベント関数に入ります。割り込み内で時間が無駄にならないように、これらの機能は小さくなければなりません。
しかし、ここで本当に重要なのは、(CPUが一時的に割り込みを無視するように指示されない限り)、カーネルがすべての割り込みに応答することです。
レスポンシブアプリケーションでは、割り込みを生成するためにGPIOピンに接続されたデバイス(IRQなど)が必要です。ただし、一部のアプリケーションでは、ボタンをクリックするたびに、またはGPIOに接続されているピンの状態が変わるたびに気にしない場合があります。たとえば、0.5秒ごとに測定したいセンサーがあります。センサーが「押された」ときにカーネルに通知したくないので、ユーザースペースアプリケーションは0.5秒ごとにカーネルを突き刺してセンサーの現在の状態を知らせたいと思います。ボタンのように見えるインターフェイスを公開するセンサーを想像することは難しくなく、2つの状態(たとえば、しきい値を持つ暗さ/明るさ)を持つほぼすべてのセンサーがボタンのように見えることがあります。