next up previous
次へ: 課題3 上へ: 割り込みシステムコールの実行 戻る: 課題1

課題2

現在のプログラムを変更する前に、関連するファイルを保存し ておく。


\begin{boxedminipage}{6cm}
\begin{verbatim}...

現在のデバイスドライバの割り込みハンドラ(dio_interrupt_handler)は、 カーネルログとして単にINTERRUPTとしか出力しないので、どのような種 類の割り込みであるかが分からない。

割り込みステータスを確認して発生した割り込みの種類をカーネルログに出力す るようにデバイスドライバを修正しなさい。

例えば、割り込みの種類がSIG1のインタラプトだったら、「I/O資料」を 参考にして、printk("INTERRUPT\n")を次のように書き直せばよい。

    if (status & 0x01)
       printk("SIG1 INTERRUPT\n");

SIG1 INTERRUPTのほかに、SIG2 INTERRUPTSIG3 INTERRUPTSIG4 INTERRUPTTIMER INTERRUPTRSTIN INTERRUPTなどもカーネルログに出力でき るようにすること。

修正したデバイスドライバの機能を確認するためのアプリケーションプログラムは、 課題1と同じdio_appを使う。



MANOME Yoichi 平成19年1月6日