問題タブ [interrupt-handling]
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.
linux - Linux での割り込み処理。共有を中断します
これが私の質問です。マニュアルには、「カーネルが割り込みを受け取ると、登録されているすべてのハンドラーが呼び出される」と書かれています。そして、ハンドラーが呼び出される順序を指定する規則があるのだろうか?
iphone - スプラッシュ画面でスリープが中断された後、iPhone が黒い画面に戻る
OS に関連していると思われる奇妙なバグが発生しています。OS 制御のスプラッシュ スクリーン Default.png が表示されている間にデバイスにスリープ割り込みを与え、すぐにデバイスを起動すると、黒いメッセージが表示されます。 screenapplicationDidFinishLaunching:
が呼び出されるまで、OS が制御をアプリに渡します。
デバイスの起動時に Default.png が適切に表示されると便利です。割り込みハンドラ(など)がいつ呼び出されるかを確認するためにいくつかのログを入力しましたapplicationWillResignActive:
が、呼び出されません-割り込みが発生するのが早すぎると思います。
黒い画面に戻らないようにする方法についてのアイデアはありますか?
前もって感謝します!
linux - エラー: デバイスまたはリソースがビジーです
irq 1 ハンドラを置き換える単純なモジュールを作成しようとしています。そして、常に次のエラーが発生します:「-1 デバイスまたはリソースがビジーです」。それを修正する方法はありますか?これが私のコードです:
たぶん、誰が間違っていると言うことができます。PS。私は 2.6.39.3 カーネルで作業しています。
architecture - プログラムの実行と割り込み
プログラムの実行中に割り込みを確認して使用する方法を知りたいです。レベル、エッジ、ハイブリッド、およびメッセージタイプの割り込みについて読み、デバイスがパルスを送信して割り込みの信号を送信することを読みましたが、プログラムはその割り込みをどのように認識しますか?または、割り込みはプログラムにまったく表示されますか?これで助けてくれてありがとう
assembly - 8086/88のIVTを変更します
ご存知のように、割り込みが発生したとき、8086は割り込みのコードタイプを取得し、それを4で乗算してから、IVTでチェックします。
8086でIVTを変更したいのですが、emu8086を使用しています。
私はそれのために何をすべきですか?
assembly - 割り込みサービスルーチンからの奇妙な動作
タイマーで使用するためにint70hとIRQ8を使用してRTCによって引き起こされた割り込みを処理することになっている割り込みサービスルーチンを書いています。残念ながら、私はそれに関して多くの問題を抱えていたので、私は問題をいくつかの小さな問題に分けて、それぞれを独立して解決することにしました。まず、ハードウェアの部分をあきらめて、最初にソフトウェアに割り込みを実装することにしました。
現在、NASMとDosBoxを使用しています。
ISRコードは次のとおりです。
次のプログラムを使用して、この割り込みをテストしています。
と
今、私たちは興味深い部分に到達しています。
インストールプログラムを呼び出すと、割り込みがインストールされ、プログラムが正常に終了したように見えるというメッセージが表示されます。
INT70H.COMを呼び出すと、メモリ領域のダンプのように見えるものが表示されます。その中で唯一読めるものは:
Testing!Testing!int 70h working
とC:\NASM-DOS\NASM.EXE
。
mov ax, 0
INT70Hのandmov dx, 0
行のコメントを外すTesting!
と、DosBoxがハングし、クラッシュすることがあります。VMwareとVirtualBoxでも同じことが起こります。
INT70Hからの2つのmovsがコメントされた状態でRTCのレジスタCを読み取っている行をコメントアウトすると、取得Testing!Testing!int 70h working
してDosBoxがハングします。VirtualBoxとVMwareでも同じことが起こります。INT70Hの2つのmovがコメントされていない場合、私は取得Testing!
してハングします。
これにより、一部のDOSシステムコール(最終製品で使用することは想定されていません)が何か悪いことをしている可能性があると思いましたが、コメントアウトしても、INT70Hを実行するとコンピューターがハングします。
私の主な問題は、今のところ、この問題に取り組み始める方法がまったくわからないということです。
c - 割り込みハンドラ内の printk 、それは本当に悪いですか?
割り込みハンドラはできるだけ短くする必要があることは誰もが知っています。また、割り込みハンドラ内でのデバッグなどの関数の追加printk
は、行うべきではありません。実際、私が書いた割り込み駆動の char デバイスの Linux カーネルをデバッグしていたときに試してみたところ、ドライバーのタイミングが台無しになりました。
私が持っている質問は、なぜこれが起こっているのですか?
printk
関数はバッファリングされます! これは、データがキューに挿入され、後で処理されることを理解している限り、おそらく割り込みハンドラーが終了した後に処理されることを意味します。
では、なぜ機能しないのでしょうか。
embedded - Keil MCB1700 評価ボードのプログラムを実装する最良の方法は何ですか?
MCB1700評価ボードのプログラムを開発したい。PCのクライアントソフトがHDDから画像を読み込みます。次に、ソケット (イーサネット) を介して画像を MCB1700 評価ボードに送信します。MCB1700 のサーバーは、ソケット接続を介して PC から画像を受信し、LCD に表示します。
また、サーバーは次のタスクを実行する必要があります。
- 画像を USB スティックに保存するには;
- USB スティックから画像を読み取り、ソケットを介してクライアントに送信します。
- CAN経由で情報を送受信するには
- COM ロギング。
- 等
ソケット接続は、CMSIS および RL-ARM ライブラリを使用して実装できます。
しかし、私が理解している限り、どちらの場合も、ソフトウェアは着信 TCP 接続をリッスンし、ネットワークのイベントを無限ループで処理する必要があります。Keil のすべての例は、そのような原則に基づいています。
私はいつも、組み込みプログラミングで無限ループを使用するのは悪い方法だと思っていました。しかもこんな面白い発言を読んだ
「RTOS なしで (1 つまたは複数のタスクをループで実行することにより) リアルタイム プログラムを作成することは確かに可能です」
http://www.keil.com/support/man/docs/rlarm/rlarm_ar_artxarm.htm それで、私が理解したように、多くのタスクをループで実行するのは通常の習慣ですか?
while (1) { task1(); task2(); ... taskN(); }
全てのイベントを割り込みで処理した方が良いと思います。
CMSIS および RL-ARM ライブラリのソケット接続を使用し、割り込みを処理することによってすべてのソフトウェアを整理することは可能ですか? 私のサーバー (MCB1700 上) は、多くのタスクを実行する必要があります。ソフトウェアで RTOS RTX を使用する必要があると思います。そうじゃない?RTX なしでソフトウェアを実装した方が良いですか?
iphone - iPhone アプリケーションで通話の中断を検出するにはどうすればよいでしょうか?
アプリケーションで着信の割り込みを検出する必要があります。アプリケーションがアクティブ状態にあり、着信または SMS がある場合、私のアプリケーションは、電話の場合は発信者番号を取得し、SMS の場合はすべての詳細を取得します。これらをアプリケーションに保存したいと思います。
これは、iPhone アプリケーションで通話の中断と着信 SMS アラートを検出することは可能ですか?