インターバルタイマ割り込みを有効に設定し、インターバルタイマの 設定後, キイボードからの入力待ち状態で割り込みが発生するのを確 認するテストプログラムを作成しなさい。
キイ入力された後は, 割り込みとインターバルタイマを停止してから 終了するようにテストプログラムを作成すること。
この実験に成功したら、/proc/interrupts
ファイルを参照して、割り込み番
号と割り込み回数を確認すること(L.D.Dの「9.3.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; }