問題タブ [irq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
669 参照

linux - 割り込みハンドラは FIFO に書き込むことができますか

FIFO で受信したイベントを待機しているスレッドがあります。ほとんどのイベントは、同じプロセス内の別のスレッドから送信される構成イベントです。FIFO に書き込む割り込みハンドラを使用して、スレッドが割り込みイベントを処理できるようにしたいのですが、それは可能ですか?

FIFO を使用する代わりに他の提案を歓迎します!

0 投票する
1 に答える
578 参照

linux - __alloc_pages_slowpath() は再入可能ですか?

__alloc_pages_slowpath() への呼び出しは、__alloc_pages_slowpath() への呼び出しも行うデバイス割り込みに耐えることができますか、または 2 番目の呼び出しが最初の呼び出しを破損しますか?

XFS ファイル システム上の通常のファイルのプログラム コール read(2) が表示されます。カーネル スタック トレースは、最終的に __alloc_pages_slowpath() が呼び出され、e1000e IRQ が発生し、最終的に __alloc_pages_slowpath() が呼び出され、ログ メッセージ "fooprog: page allocation failure. order:0, mode:0x4020" がほぼ即座に発生することを示しています。

スタック トレース全体は、 https ://gist.github.com/790577 で確認できます。

0 投票する
2 に答える
5473 参照

c - request_irq と __interrupt の違い

私が読んだことから、両方が割り込みハンドラの登録に使用されています。request_irqカーネル コードで多くの呼び出しが見られましたが、呼び出しは 1 つもありませんでし__interruptた。__interruptユーザー空間からハンドラーを登録する方法はありますか?

0 投票する
2 に答える
5189 参照

linux-device-driver - ARMベースの組み込みLinux上のGPIOIRQ

AT91SAM9M10-EKES評価ボードでGPIOIRQをプログラムしようとしています。IRQの登録に成功し、IRQが機能しています。ただし、一部の割り込みは失われます。26を送信していますが、22しか取得できません。

コード:

これはドライバー全体ではありませんが、これはIRQを処理する実際の部分です。誰かがコードに問題を見つけた場合、または私が4つの割り込みを失った理由を知る方法を提案できる場合は、返信してください。私はこれに何時間も立ち往生しています...:(

ありがとう。ラモン。

0 投票する
2 に答える
21085 参照

kernel - request_threaded_irq()がドライバーで使用されているのはなぜrequest_irq()ではないのですか?2つの違いは何ですか?

これはrequest_threaded_irqについて議論したスレッドですが、返信がありませんでした。だから私はそれを新たに投稿しています。

私は静電容量式タッチスクリーン用のタッチスクリーンドライバーに取り組んでいます。request_irq()の代わりにrequest_threaded_irq()呼び出しを使用しました。2つの基本的な違いがわかりませんでした。それは言う:-

名前

request_threaded_irq —割り込みラインを割り当てます

あらすじ

int request_threaded_irq(unsigned int irq、irq_handler_t handler、irq_handler_t thread_fn、unsigned long irqflags、const char * devname、void * dev_id);

引数

  1. irq-割り当てる割り込みライン
  2. ハンドラー-IRQが発生したときに呼び出される関数。スレッド割り込みのプライマリハンドラNULLおよびthread_fn!= NULLの場合、デフォルトのプライマリハンドラがインストールされます
  3. thread_fn-irqハンドラスレッドから呼び出された関数NULLの場合、irqスレッドは作成されません
  4. irqflags-割り込みタイプフラグ
  5. devname-要求しているデバイスのASCII名
  6. dev_id-ハンドラー関数に返されるCookie

Handler引数とThread_fn引数は、紛らわしいものです。また、ドライバーには仕事関数が定義されていません。

これが私が参照しているドライバーです。

誰かがこれを理解するのを手伝ってくれますか?

0 投票する
1 に答える
235 参照

linux-kernel - IRQ ハンドラーからユーザー アプリケーションを強制終了するにはどうすればよいですか?

組み込み Linux システムで作業していますが、特定の IRQ ハンドラーが実行されたときにシステムをシャットダウンする必要があります。あまり時間がありません (数十ミリ秒)。Emergency_restart() を使用していましたが、フラッシュ ドライバがサポートしていないため、割り込みコンテキストから実行できない作業 (シャットダウン関連の情報をフラッシュに書き込む) を実行する必要があります。

これを達成するための良い方法を誰かが推奨できますか? ユーザー空間アプリケーションに信号を送信して、フラッシュ書き込みを実行できるようにすることで、ユーザー空間アプリケーションを適切に強制終了したいと考えています。どうすればいいですか?別の方法として、割り込みが生成するセマフォを待機している優先度の高いプロセスを持つことができると思います...私のオプションは何ですか? 前もって感謝します!

0 投票する
1 に答える
420 参照

assembly - arm7tdmiIRQおよびFIQの優先度

こんにちは私は現在、「ベアメタル」で実行されているAT91SAM7X256を使用しています。私はデータシートとアーキテクチャマニュアルをよく読みました。そのことを念頭に置いて、FIQはIRQよりも優先度が高いため、FIQはIRQに取って代わられるべきではないという結論に達しました。

ただし、実際には、CPSRのFビットに触れていなくても、IRQがFIQハンドラーの実行を一時停止していることに気づいています。IRQにサービスを提供するためにFIQを一時停止すべきではないと想定するのは間違っていますか?

FIQサービスルーチンが中断されないようにするには、何をする必要がありますか?

ありがとうございます

0 投票する
3 に答える
4824 参照

c++ - IRQ によって変更できる変数によって制御されるループを g++ が最適化するのを防ぐにはどうすればよいですか?

次のコードを検討してください。

globalIRQ によって呼び出される関数で変更されます。ただし、g++ は「is-not-zero」テストを削除し、while ループを無限ループに変換します。

コンパイラの最適化を無効にすると問題は解決しますが、C++ はそのための言語構造を提供していますか?

0 投票する
1 に答える
1621 参照

linux - IRQスコープの非モノリシックカーネルモジュールからソフトリブートする方法は?

カーネルランドでIRQを処理したら再起動する必要があります。

バイナリを呼び出したいのですが/sbin/reboot、IRQスコープのために制限があります。

コードは次のとおりです:

IRQがいつトリガーされるかはわかりますが、printk(...)に置き換えてもエラーが発生/sbin/reboot/bin/rm /tmp/its-not-workingます。

mvBoardReset()、、、、、、、などの再起動machine_halt()を行う他の方法をテストしました。IRQスコープ外arm_pm_restart()では発生しないエラーが常に発生します。pm_power_off()kill(1, SIGTSTP)reboot()handle_sysrq('b')

クリーンソフトリセット/sbin/rebootを行うので、本当に電話したいです。

お時間をいただきありがとうございます。

0 投票する
1 に答える
1101 参照

c# - WMIハードウェアアドレスとIRQ

ハードウェアアドレスとIRQを取得するためのWMIメソッドを見つけるのを手伝ってくれる人はいますか?

これまで見てきたクラスは、実際にリソースを使用しているデバイスを示すために少し空っぽに見えますが、Windowsの「システム情報」ツールで利用できる場合は可能である必要があります。

最終的には、C#アプリケーションでアドレスマップとIRQマップを作成したいと思います。

次のクラスを簡単に見てきました。

  • Win32_DeviceMemoryAddress
  • Win32_IRQResource

そして、私はこの2番目に別のものを見ましたが、実際には調べていません。

  • Win32_AllocatedResource

たぶんそれをWin32_PnPEntityとペアリングしますか?