インターバルタイマ割り込みを有効に設定し、インターバルタイマの
設定後, キイボードからの入力待ち状態で割り込みが発生するのを確
認するアプリケーションプログラムを作成しなさい。
キイ入力された後は, 割り込みとインターバルタイマを停止してから
終了するようにプログラムを作成すること。
実験が成功したら、/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