私はgpio割り込みを扱っています。 "/ sys/class/gpio/gpio38/value"にファイルがあります。属性の値がに変わるたびに通知が必要です。だから、どのように私はユーザー空間でこれを達成することができます。すでに情報を収集しているので、select()、poll()またはepoll()を使うことができます。だから、このアプリケーションには正しいですか?または、私が/ proc/irqなどを使用できるかどうかを私に示唆してください。おかげで:)私は助けになるかもしれ何かhereを発見したselect()、poll()またはepoll()? sysfs属性のため
答えて
:
GPIO信号は、/ SYS /クラス/ GPIO/gpio42 /(GPIOの#42) のようなパスを持っていると、次の読み取りを持っています/書き込み属性:
"value" ... 0(低)または1(高)のいずれかと読みます。 GPIO が出力として設定されている場合は、この値を書き込むことができます。 0以外の値はすべてhighとして扱われます。そのファイルと 投票に
ピンは 割り込み割り込み生成として構成することができ、それが(「エッジ」の 説明を参照)、割り込みを生成するように構成されている場合、あなたはポーリングすることができた場合(2)(2 )は、割り込みが発生するたびに戻ります。 poll(2)を使用する場合は、イベントPOLLPRIおよびPOLLERRを設定します。 select(2)を使用する場合は、exceptfdsにファイル記述子を設定します。 poll(2)の後に、sysfs ファイルの先頭にlseek(2)を戻し、新しい値を読み取るか、ファイルを閉じて、再び を開いて値を読み取ります。
"gpio42"用ですが、これはあなたのケースに当てはまると思います。それができない場合は、私の答えにコメントをしてください。
いずれも使用できます。ここでのポイントは、GPIOラインの値に対してsysfsファイルを開いて(例:/sys/class/gpio/gpio42/value
)、それをブロックすることです。
行状態の変更は書き込みではなく例外条件として通知されます(直感的かもしれません)
選択の場合:トニー・ライオン@
fd_set exceptfds;
int res;
FD_ZERO(&exceptfds);
FD_SET(gpioFileDesc, &exceptfds);
res = select(gpioFileDesc+1,
NULL, // readfds - not needed
NULL, // writefds - not needed
&exceptfds,
NULL); // timeout (never)
if (res > 0 && FD_ISSET(gpioFileDesc, &exceptfds))
{
// GPIO line changed
}
注必ずしもすべてのGPIOが割り込み可能であることをGPIO場合は?。あなたは割り込みをサポートしていない(とこれはあなたが使用している正確なCPU/SoCに依存します)で作業している場合、それを定期的に読む必要がありますy。 – duskwuff
GPIOラインがI2Cペリフェラルまたはオーディオコーデックで実装されている場合、これが真実であることは間違いありません。しかし、その場合、 'select()' 'pselect()'、 'poll()'や 'epoll()'を呼び出すことは決してありません。 ['poll()'とその兄弟は、実際には全く投票しません] – marko
こんにちは@Marko返事をありがとうございました。上記のあなたの選択のためのサンプルコードを教えてください。実際に私がやっていることは、echo 1> file_nameを実行すると、通知が表示されるはずです。非常に役に立ちます。 –
- 1. 独自のプロトコル(Python、select、epoll)のための長命のマルチスレッドクライアント
- 2. Djangoチュートリアルパート1 'poll'オブジェクトに属性がありません 'was_published_today'
- 3. EditorForのためのHtml(5)属性
- 4. selectリストにjavascriptで作成した属性を使用する
- 5. サブ属性(または)ネストされた属性を使用する方法
- 6. JPQL SELECT句への属性の挿入
- 7. ネストされた属性のためのRailsフォーム
- 8. 属性でAutofac属性の注入に失敗しました
- 9. 作成した属性の値の属性変更を検出しました
- 10. カーネルソケットプログラミングでのselect()とpoll()の効果をシミュレートします
- 11. カスタムCSSプロパティまたはHTML属性?
- 12. ルビー、ネストされた属性は、最高の属性
- 13. は、私はカスタム検証属性を作成したカスタム属性
- 14. select/epoll/kqueueのC#同等機能とは何ですか?
- 15. SSAS - >年齢 - >属性またはメジャーまたは両方?
- 16. selectまたはlistからドロップダウンするためのjqueryプラグイン
- 17. sysfsの読み書きを行うためのAndroidアプリケーションの作成方法
- 18. Railsのネストされた属性:validates_uniqueness_ofは
- 19. Dのソケットのpoll()またはWSAPoll()と同等
- 20. 検出のためのJavaソースコードの属性
- 21. XML文書内の属性を検索するためのjavascript
- 22. 複数で注文 - ワードプレスの属性のため
- 23. アンドロイドのためのAndroidソースコード:テキスト属性処理?
- 24. 例外を確認するための属性の作成
- 25. 属性のテーブルを見つけるためのDQL
- 26. GridViewには列を生成するためにwithからのプロパティまたは属性がありません
- 27. Rcppコンパイルされた属性
- 28. 継承された属性
- 29. ネストされた属性paperclip
- 30. XML ScaleAnimationでpivotXTypeとpivotYTypeを指定するための属性
おかげで、それは私がエッジファイルまたは値のファイルをポーリングしなければならないことを意味 –