問題タブ [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.

0 投票する
0 に答える
300 参照

operating-system - GDT が正しく設定されているかどうかを確認する方法は?

OS の IDT と GDT が全体として機能していません。どれが正しく設定されていないかわかりません。GDT が適切に設定されているかどうかを確認して、どこに問題があるかを突き止めることができますか。

私はCでこれをやっています。

0 投票する
0 に答える
1315 参照

assembly - 割り込み要求レジスターをポーリングしてキーボード割り込みを処理する (x86 の場合)

IRR をポーリングしてキーボード割り込みを処理する x86 用のプログラムを開発する必要があります。プログラムは、ms-dos の下でリアルモードで動作するはずです。私の主な問題は、機能すると思うように機能しないことです。適切なIRRビットは、キーが押されていなくても0以外の値を持ち、ポート0x60から読み取られた値は常に0x1cです。誰かが私が間違ったことを説明できますか? ここに私のポーリングループがあります:

ありがとう!

更新 キーボード バッファーにスキャン コードが含まれていることを見逃していたため、0x1c はリターン キーのスキャン コードのようです。=)

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

c - request_irq は EBUSY を返し、free_irq は IRQ が空いていることを示します

RTC クロックに対応する IRQ 番号 8 のドライバーを開発しています。次の問題があります。request_irq でその IRQ を要求すると、EBUSY エラーが発生します。最初に free_irq(8,NULL) を使用すると問題が解決するはずだと思いました (少なくとも、カーネル バージョン 2.6.24-23-generic では機能しました)。しかし、それを使用すると、「すでにフリーの IRQ 8 を解放しようとしています」というエラーが表示されます。/proc/interrupts を確認すると、次のように表示されます。

8: 1 0 IO-APIC-edge rtc0

これは、dmesg で表示されるエラーです。

私が間違っていることについて何か考えはありますか?前もって感謝します

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

assembly - CodeSourcery CS3 割り込みハンドラのオーバーライド

一部の CS3 割り込みハンドラを私のものに置き換えようとしています。"ISRs for stellaris_blizzard" ファイルの下

そして私のハンドラー

SysTick 割り込みはうまく機能します。ただし、ポート M で GPIO 割り込みが発生すると、デフォルトで「__cs3_isr_interrupt」が呼び出されます。GPIO 割り込みハンドラを置き換えるにはどうすればよいですか?

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

vector - ベクトル化されていない割り込みが発生した場合、プロセッサはベクトル テーブルを検索しますか?

ベクトル化されていない割り込みが発生した場合、プロセッサはベクトル テーブルを検索します?

8085といえば違うの?

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

operating-system - 一般保護違反 (x86) で障害のあるアドレスを特定する

x86 で一般保護違反 (GP#13) の ISR を作成しようとしています。例外の原因となっている障害のあるアドレスを見つける方法について、インテルのドキュメントからはわかりません。ページ フォールト例外 (GP#14) の場合、cr2 レジスタがフォールト アドレスを保持していることを知っています。どんな助けでも大歓迎です。

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

x86 - (カーネルの作成) 割り込み記述子テーブルを変更するにはどうすればよいですか?

低レベルのものを少しいじるために、小さなカーネルを書いています。現在、Virtual Box で起動し、画面にテキストを表示したり、メモリを割り当てたり、その他の非常に基本的なことを行うことができます。C++ と少しの asm で書かれています。

私が探求したかったことの 1 つは、マルチタスクの背後にあるメカニズムでした。私が理解しているように、それは次のようになります。

  1. カーネルは、割り込み記述子テーブルを初期化して、割り込みが定期的に (ミリ秒単位など) 発行されるようにし、カーネルで定義されたルーチンを呼び出します。
  2. ルーチンが呼び出されると、コード/データ セグメントとスタック ポインタを別のプログラムのコンテキスト (「コンテキスト スイッチ」) のセグメントに設定することができます。

ですから、コンセプトは単純に見えましたが、詳細はもっと複雑になることはわかっていました. オンラインでいくつかのものを見つけましたが、用語は大きく異なり、例は私が持っていないコンテキスト (Linux カーネル内など) からのもののようです。

ただし、記述子テーブルを設定する方法は次のようです。

  1. いくつかのデータを PIC (およびその他) に送信outbして初期化します。
  2. 必要なルーチンへの関数ポインターを使用して、メモリ内に割り込みテーブルを準備します。関数がシグナル ハンドラーになることができるように注意してください。
  3. でテーブルをロードしますlidt

ただし、これらのことを具体的に行うこと、またはこれが正しいかどうかについては、あまりわかりません。当惑したカーネルライターのためのリソースを持っている人はいますか?

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

linux - タイマー割り込みをマスクできますか?

タイマー割り込みをマスクできるかどうか知りたいです。ppcの場合を考えてみましょう。「kernel/timer.c」のrun_local_timers()関数は、ローカルのCPUごとのタイマー割り込みによって呼び出されます。

では、このタイマー割り込みがマスクされ、その間にrun_local_timers()関数が呼び出されない可能性はありますか?

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

assembly - カスタム キーボード割り込みハンドラ

標準のキーボード割り込みを、変数をデクリメントするカスタム割り込みに置き換える簡単なプログラムを作成しようとしています。ただし、古いハンドラーを呼び出さないと機能しません。これが私の割り込みハンドラです:

古いハンドラーを呼び出さずに動作させるには、ハンドラーでどのアクションを実行する必要がありますか?

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

multithreading - システムコマンド中にスレッドをタイムアウトする

一見単純な問題があります。一連のシステムコマンド(バッククォートを使用)を並行して実行する必要があります。

以下のコードは、私の問題を示す以外に意味のあるものをすべて取り除いています。

現在、問題は、スレッドがシステムコールでブロックされているときに、スレッドに送信されたALRMシグナルがキャッチされないことです。whileループのコメントを外すと、信号は意図したとおりにキャッチされます。システムコマンドでスタックしている場合でもスレッドをタイムアウトできるように、これを機能させるにはどうすればよいですか?

ありがとう、

キャスパー