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

課題1

インターバルタイマ割り込みを有効に設定し、インターバルタイマの 設定後, キイボードからの入力待ち状態で割り込みが発生するのを確 認するアプリケーションプログラムを作成しなさい。

キイ入力された後は, 割り込みとインターバルタイマを停止してから 終了するようにプログラムを作成すること。

実験が成功したら、/proc/interruptsファイルを参照して、割り込み番 号と割り込み回数を確認すること(L.D.D.3の「10.2.1 /procインターフェース」参照)。

プログラム作成のヒント: 割り込みの設定、インターバルタイマの設定、インターバルタイマの解除、割り込みの解除を行なえばよい。

#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "dio_ioctl.h"

int main(void)
{
   int fd, i, devno, ret;
   unsigned char buff[1024], timer_config;
   DIO_EVENT event;

   fd = open("/dev/pci2726c", O_RDWR);
   if (fd < 0){
      printf("[open] no Shippai.\n");
      return -errno;
   }

   ret = ioctl(fd, IOCTL_DIO_RESET);
   if (ret < 0) 
       printf("[ioctl reset] no Machigai = %d\n", ret);

   // Warikomi no Settei
         .
         .
   // [Interval Timer] no Settei
         .
         .
   printf("[Key] wo Ose! :");
   fgets(buff, 255, stdin);

   // [Interval Timer] no kaijo
         .
         .
   // Warikomi no Kaijo
         .
         .
   close(fd);

   return 0;
}

このアプリケーションプログラムを完成させたらdio_app.cというファイ ル名でセーブし、つぎのようにコンパイルして実行すること。

     # make dio_app

     # ./dio_app



MANOME Yoichi 平成19年1月6日