0

icスペックでレジスタマップを読み取ることができ、割り込みのアドレスがあることがわかります。また、USBコントローラーなどのオンチップコントローラーの割り込みを登録し、リソースタイプを使用して割り込みハンドラーを登録します。proc / Interruptsの情報を確認すると、割り込みタイプがGIC(汎用割り込みコントローラー)であることがわかります。

割り込みはどのように機能しますか?これはGPIO割り込みのようなものですか?アドレスが割り込み信号を表すことができるのはなぜですか?これは、システムがgpio / addressを割り込み番号にマップすることを意味しますか?詳細を知りたいのですが。

前もって感謝します。

4

1 に答える 1

0

これを共有できてうれしいです。

なぜなら、私はPowerPC、MIPSコアを搭載した組み込みデバイスで作業しているだけなので、x86については説明しません。申し訳ありません。

割り込み信号は、一般に、モジュールコントローラ、例えば、SDコントローラ、UARTコントローラ、SPIコントローラなどによってトリガーされる。

ご存知のように、信号はそのデバイスでイベントが発生していることを示しており、CPUの注意が必要です。

チップ上には、一般的に割り込み処理モジュールがあり、そこにある種のコントローラからの割り込み信号が送信されます。

通常、割り込み処理モジュールには複数の信号ピンがありますが、通常は、そのモジュールからCPUコアへのピンは1つだけです。

割り込み信号ピンが1つのデバイス、たとえば1つのコントローラだけで使用されている場合、割り込みは共有されていないと言えます。共有割り込みを参照する理由は、その処理フローが非共有割り込みと同じではないためです。

割り込みが1つ存在し、コアに送信された場合でも、それを処理するソフトウェアがない場合は処理されません。

したがって、システムのブートストラップまたは初期化中に、通常、各モジュール、主にデバイスモジュールにコードのブロックがあり、request_irq()の呼び出しなどのirqの初期化を担当します。

request_irq()が正確に行うことは、ソフトウェアを何らかの割り込み信号にアタッチすることです。このようにして、ハードウェア割り込み信号とソフトウェアISRの関係が設定されます。

request_irq()を呼び出すことにより、システムはそのイベントを処理したい人がいることを通知され、そのイベントが発生した場合、システムはirqを使用してrequest_irq()に渡される関数を呼び出すことによってその人に知らせます番号。

ちなみに、「割り込みのアドレスがあります」と言うと、よくわかりません。詳細を教えてください。

于 2012-08-01T10:19:55.977 に答える