Sep 11, 1998 onl7v2: Solaris 2.6 cc ドライバのデバッグ. cc ドライバの実行 ~~~~~~~~~~~~~~~~~~~ (http://www-online.kek.jp/~inoue/CAMAC/ onl7v2-sol2.6/camac-step04.txt) 高エネルギー加速器研究機構 素粒子原子核研究所 物理、オンライングループ 井上 栄二 (1). 現状確認 (A). 英語版 Soalris2.6 & VMEドライバ v2.2.2 が届いた。 (B). CPU-7V に Solaris2.6 のシステムをインストールした。 (C). /etc の下の各設定、および /export/home の作成をやった。 (D). Solaris2.6用の VMEドライバ、FRCvme-2.2.2 をインストールした。 (E). onl7v2 に ccドライバをインストールする。 (G). サンプル・プログラムを実行した。 (G-1). 24ビットのシングル・アクション read/writeプログラム、cam1 は 正常終了した。 (G-2). 割り込み処理プログラム、cam3 は正常終了した。 (G-3). 16ビットのブロック転送 read/writeプログラム、cam2 は ok。 (G-4). 24ビットのブロック転送 read/writeプログラム、cam2 は ok。 (2). ここでやるべきこと onl7v2 上で ccドライバの動作確認をするために、サンプル・プログラムを 実行する(その3)。 24ビットのシングル・アクション read/write を実行 した時のリターン値をチェックする。 (3). サンプル・プログラムの修正およびコンパイル 24ビットのシングル・アクション read/write を実行した時に返される リターン値をチェックするように cam1プログラムを修正する。 (3-1). サンプル・プログラム、cam1.c を修正する onl7v2[52]% pwd /export/home/onl7v2/inoue/CAMAC/Driver/FORCE-5V-sol2.5 onl7v2[53]% onl7v2[53]% ls -l total 486 -rw-r--r-- 1 inoue kek 2041 May 23 1997 Makefile -rw-r--r-- 1 inoue kek 2730 Jul 1 1997 README -rwxr-xr-x 1 inoue kek 13316 Apr 22 13:48 cam1* -rw-r--r-- 1 inoue kek 1170 May 13 1997 cam1.c -rwxr-xr-x 1 inoue kek 27844 Apr 22 13:48 cam2* -rw-r--r-- 1 inoue kek 2295 May 22 1997 cam2.f -rwxr-xr-x 1 inoue kek 13876 Apr 22 13:48 cam3* -rw-r--r-- 1 inoue kek 2055 May 21 1997 cam3.c -rw-r--r-- 1 inoue kek 9740 May 21 1997 camlib.c -rw-r--r-- 1 inoue kek 1415 May 13 1997 camlib.h -rw-r--r-- 1 inoue kek 9528 Apr 22 13:48 camlib.o -rw-r--r-- 1 inoue kek 54400 Apr 22 13:48 cc -rw-r--r-- 1 inoue kek 64403 Jun 2 1997 cc.c -rw-r--r-- 1 inoue kek 288 May 13 1997 cc.conf -rw-r--r-- 1 inoue kek 2748 May 13 1997 cc.h -rw-r--r-- 1 inoue kek 2288 May 13 1997 cc_common.h -rw-r--r-- 1 inoue kek 876 May 13 1997 cc_config.h -rw-r--r-- 1 inoue kek 3289 May 13 1997 forlib.c -rw-r--r-- 1 inoue kek 3480 Apr 22 13:48 forlib.o -rw-r--r-- 1 inoue kek 4058 May 13 1997 k2917.h -rw-r--r-- 1 inoue kek 13868 Apr 22 13:48 libcamac.a drwxr-xr-x 2 inoue kek 512 Nov 10 1997 script/ onl7v2[54]% mv cam1.c cam1.c.org onl7v2[55]% cp cam1.c.org cam1.c onl7v2[56]% vi cam1.c : while (loop-- > 0) { rewind(stdin); printf("Input n a f (data)>"); scanf("%d %d %d*", &n, &a, &f); if ((f & 0x1C) == 0x10) scanf("%d*", &dat); printf(" return value = %x(Hex)\n", CAMAC(NAF(n, a, f), &dat, &q, &x)); printf(" N=%d A=%d F=%d Q=%d X=%d Data:%06X(Hex) %08d(Dec)\n\n", n, a, f, q, x, dat, dat); } CAM_Close(); : onl7v2[57]% (3-2). サンプル・プログラム、cam1.c をコンパイルする onl7v2[63]% make cam1 cc -O cam1.c -o cam1 -I. -L. -lcamac onl7v2[64]% ls -l cam1* -rwxr-xr-x 1 inoue kek 13360 Sep 11 15:22 cam1* -rw-r--r-- 1 inoue kek 1207 Sep 11 15:21 cam1.c -rw-r--r-- 1 inoue kek 1170 May 13 1997 cam1.c.org onl7v2[65]% (3-3). サンプル・プログラム、cam1 を実行する onl7v2[66]% cam1 Input n a f (data)>3 0 0 return value = 0(Hex) N=3 A=0 F=0 Q=1 X=1 Data:000000(Hex) 00000000(Dec) Input n a f (data)>3 0 16 5555 return value = 0(Hex) N=3 A=0 F=16 Q=1 X=1 Data:0015B3(Hex) 00005555(Dec) Input n a f (data)>3 0 0 return value = 0(Hex) N=3 A=0 F=0 Q=1 X=1 Data:0015B3(Hex) 00005555(Dec) Input n a f (data)>3 0 16 0 return value = 0(Hex) N=3 A=0 F=16 Q=1 X=1 Data:000000(Hex) 00000000(Dec) Input n a f (data)>3 0 0 return value = 0(Hex) N=3 A=0 F=0 Q=1 X=1 Data:000000(Hex) 00000000(Dec) Input n a f (data)>^Conl7v2[67]% onlsun1[45]% ok. 24ビットのシングル・アクション read/write は正常に実行できた。 実行時のリターン値は、ゼロになっている。 --- (6). 項目タイトル (6-1). サブ項目タイトル (6-1-1). サブサブ項目タイトル