Linuxのユーザ空間で動作させるアプリケーションを作成する。
処理内容としては、ビット単位の基本動作を確認するために、 CHK-2101(スイッチ & LEDテストボード)の任意のスイッチをONに して、それに対応するLEDを点灯する。合わせて32個のスイッチの どれをONにしたかを画面に表示することにする。
次のコードを記述し、dio_tst.c
というソースファイルにする。
#include <stdio.h> #include <errno.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int main(void) { int fd, i; ssize_t r_count, w_count; unsigned char buff[32]; fd = open("/dev/pci2726c", O_RDWR); if (fd < 0) { printf("[open] no Shippai.\n"); return -errno; } // INPUT SW1-SW32 r_count = read(fd, buff, 32); if (r_count > 0){ printf("read buff ="); for (i = 0; i < r_count; i++){ printf(" %x", buff[i]); } printf("\n"); } printf("read count = %ld\n", r_count); // OUTPUT LED33-LED64 w_count = write(fd, buff, r_count); printf("write count = %ld\n", w_count); close(fd); return 0; }
最初にテストプログラムdio_tst.c
を次のようにコンパイルする。
# make
コンパイルでエラーが出なければ、実行可能イメージとしてのdio_tst
ア
プリケーションが生成されているので、念のためls
コマンドで確かめる
こと。
任意のスイッチをONにして、
# ./dio_tst
を実行すれば、ONにしたスイッチに対応するビットが画面に表示され、それに対 応するLEDが点灯する。