1

私はLinuxを初めて使用し、最近、割り込みに関連するLinuxドライバーコードを調べています。私はこのチュートリアルhttp://www.redhat.com/mirrors/LDP/LDP/tlk/dd/interrupts.htmlから始めていますが、それが正しいかどうかわかりません。

これが私がFig.7.1から得たと思う事実です:

  1. PIC1の左側にある矢印の線は、CPUの割り込みピンに接続します
  2. PIC1の右側の0〜7は、割り込みコントローラのピンを示します
  3. 各割り込みコントローラピンは、PCIスロットのハードウェアデバイスに接続します

質問:

  1. 「CPUの割り込みピン」、「割り込みライン」と同じですか?つまり、関数の「irq」パラメータ:

    int request_irq(unsigned int irq、(* handler)()、...)

  2. もしそうなら、割り込みハンドラ関数'(* handler)()'は、割り込みソース0〜7を完全に処理する'結合ISR関数'でなければなりませんよね?

  3. そうでない場合は、「irq」とは何ですか、代わりに「割り込みコントローラーピン」ですか?

  4. 割り込みコントローラのピン0〜7に接続されたデバイスが物理的にどのように割り込みを生成しますか?ピンの電圧を上げることにより、PICレジスタに書き込みますか?PICの割り込みステータスレジスタは、どのピンが現在の割り込みであるかをどのように知るのですか?

いくつかの質問が素朴な場合は申し訳ありません。

ありがとう、

4

1 に答える 1

0
  1. 「CPUの割り込みピン」は「割り込みライン」と同じですが、関数のirqパラメータとまったく同じではありません。
  2. irqは、各割り込みピンに割り当てられた番号です。この情報は、プロセッサハードウェアのマニュアルで定義されている割り込みベクタテーブルから読み取ることができます。
于 2012-12-17T05:44:06.700 に答える