Mar 9, 2001 onl5v4: Solaris 7 cc ドライバのデバッグ. cc ドライバの実行 ~~~~~~~~~~~~~~~~~~~ (http://www-online.kek.jp/~inoue/CAMAC/ onl5v4-sol7/camac-step02.txt) 高エネルギー加速器研究機構 素粒子原子核研究所 物理、オンライングループ 井上 栄二 (1). 現状確認 (A). SPARC CPU-5V、Solaris7 を入手した。 (B). FORCE,CPU-5V(microSPARC-II)、に Solaris 7 のシステムを インストールした。 (C). /etc の下の各設定、および /export/home の作成をした。 (D). CPU-5V に Solaris7用の VMEドライバ、FRCdrv-2.7(FRCvme v2.4.1) をインストールした。 (E). onl5v4 に ccドライバ、"FORCE-50T-sol2.6-list"を一部修正して インストールした。 (2). ここでやるべきこと onl5v4、Solaris7 で CAMAC のテストを実行する。 (3). onl5v4、Solaris7 の下で一部修正した cc.cドライバ一式をコンパイル、 リロードする (3-1). camac ドライバのキットをコンパイルし直す onl5v4[39]% which cc /kek/compilers/ws5.0/SUNWspro/bin/cc onl5v4[40]% cc -V cc: WorkShop Compilers 5.0 98/12/15 C 5.0 usage: cc [ options] files. Use 'cc -flags' for details onl5v4[41]% which f77 /kek/compilers/ws5.0/SUNWspro/bin/f77 onl5v4[42]% f77 -V f77: WorkShop Compilers 5.0 98/12/15 FORTRAN 77 5.0 Usage: f77 [ options ] files. Use 'f77 -flags' for details onl5v4[43]% onl5v4[49]% pwd /export/home/onl5v4/inoue/CAMAC/FORCE-50T-sol2.6-list onl5v4[50]% ls -lR .: total 854 -rw-r--r-- 1 inoue kek 2041 Jun 23 2000 Makefile -rw-r--r-- 1 inoue kek 4099 Oct 20 15:35 README -rwxr-xr-x 1 inoue kek 14232 Mar 5 10:28 cam1* -rw-r--r-- 1 inoue kek 1170 Jun 23 2000 cam1.c -rwxr-xr-x 1 inoue kek 104900 Mar 5 10:28 cam2* -rw-r--r-- 1 inoue kek 2295 Jun 23 2000 cam2.f -rwxr-xr-x 1 inoue kek 14620 Mar 5 10:28 cam3* -rw-r--r-- 1 inoue kek 2055 Jul 28 2000 cam3.c drwxr-xr-x 2 inoue kek 512 Oct 20 15:41 camasm/ -rw-r--r-- 1 inoue kek 9803 Oct 3 17:15 camlib.c -rw-r--r-- 1 inoue kek 1415 Jun 23 2000 camlib.h -rw-r--r-- 1 inoue kek 9644 Mar 5 10:28 camlib.o drwxr-xr-x 2 inoue kek 512 Oct 20 16:05 camlist/ drwxr-xr-x 2 inoue kek 512 Oct 20 16:05 camlist-kine/ -rw-r--r-- 1 inoue kek 48276 Mar 5 10:28 cc -rw-r--r-- 1 inoue kek 83124 Feb 28 15:36 cc.c -rw-r--r-- 1 inoue kek 82170 Feb 28 14:21 cc.c-org -rw-r--r-- 1 inoue kek 288 Jun 23 2000 cc.conf -rw-r--r-- 1 inoue kek 2829 Oct 13 10:59 cc.h -rw-r--r-- 1 inoue kek 2288 Jun 23 2000 cc_common.h -rw-r--r-- 1 inoue kek 876 Jun 23 2000 cc_config.h -rw-r--r-- 1 inoue kek 3289 Jun 23 2000 forlib.c -rw-r--r-- 1 inoue kek 3496 Mar 5 10:28 forlib.o -rw-r--r-- 1 inoue kek 4058 Jun 23 2000 k2917.h -rw-r--r-- 1 inoue kek 14000 Mar 5 10:28 libcamac.a drwxr-xr-x 2 inoue kek 512 Oct 2 16:39 script/ ./camasm: total 132 -rw-r--r-- 1 inoue kek 448 Jun 28 2000 Makefile -rw-r--r-- 1 inoue kek 11250 Oct 17 09:30 asm_code.h -rwxr-xr-x 1 inoue kek 27536 Oct 20 15:41 camasm* -rw-r--r-- 1 inoue kek 24762 Jun 28 2000 camasm.c -rw-r--r-- 1 inoue kek 1646 Jun 28 2000 err_code.h ./camlist: total 28 -rw-r--r-- 1 inoue kek 1415 Oct 16 10:45 Makefile -rw-r--r-- 1 inoue kek 2151 Oct 16 11:17 camtest4c.c -rw-r--r-- 1 inoue kek 709 Oct 16 11:45 camtest4dma.asm -rw-r--r-- 1 inoue kek 903 Oct 16 13:58 camtest4int.asm -rw-r--r-- 1 inoue kek 603 Oct 16 14:12 camtest4single.asm -rw-r--r-- 1 inoue kek 2040 Oct 16 14:25 camtest5c.c -rw-r--r-- 1 inoue kek 2027 Oct 16 14:46 camtest5c1.c -rw-r--r-- 1 inoue kek 1994 Oct 16 15:47 camtest5c2.c ./camlist-kine: total 44 -rw-r--r-- 1 inoue kek 1296 Oct 16 16:30 Makefile -rw-r--r-- 1 inoue kek 708 Oct 17 14:35 cam6.asm -rw-r--r-- 1 inoue kek 1880 Oct 17 14:49 cam6.c -rw-r--r-- 1 inoue kek 1541 Oct 17 15:32 cam6a.c -rw-r--r-- 1 inoue kek 2983 Oct 17 15:39 cam6b.c -rw-r--r-- 1 inoue kek 2021 Oct 17 16:07 cam7.c -rw-r--r-- 1 inoue kek 2582 Oct 17 16:13 cam7A.c -rw-r--r-- 1 inoue kek 1753 Oct 17 16:50 cam7B.c -rw-r--r-- 1 inoue kek 322 Oct 18 09:31 cam7a.asm -rw-r--r-- 1 inoue kek 322 Oct 18 10:24 cam7aA.asm -rw-r--r-- 1 inoue kek 679 Oct 18 10:52 cam7b.asm -rw-r--r-- 1 inoue kek 812 Oct 18 13:43 cam7bA.asm -rw-r--r-- 1 inoue kek 353 Oct 18 14:40 cam7cA.asm ./script: total 14 -rw-r--r-- 1 inoue kek 66 Oct 18 14:58 awk1.txt -rw-r--r-- 1 inoue kek 37 Oct 18 15:30 awk2.txt -rwxr-xr-x 1 inoue kek 233 Oct 18 15:32 cc_build.gcc.sh* -rwxr-xr-x 1 inoue kek 234 Oct 18 15:33 cc_build.sh* -rwxr-xr-x 1 inoue kek 811 Mar 7 10:57 cc_link.sh* -rwxr-xr-x 1 inoue kek 808 Oct 18 15:39 cc_load.sh* -rwxr-xr-x 1 inoue kek 270 Jun 23 2000 cc_unload.sh* onl5v4[51]% onl5v4[68]% pwd /export/home/onl5v4/inoue/CAMAC/FORCE-50T-sol2.6-list onl5v4[69]% make clean \rm -f cc *.o libcamac.a cam1 cam2 cam3 *~ core onl5v4[70]% make ./script/cc_build.sh [Building for sun4m] rm -f cc.o cc -O -c camlib.c -o camlib.o -I. cc -O -c forlib.c -o forlib.o -I. rm -f libcamac.a ar rcv libcamac.a camlib.o forlib.o a - camlib.o a - forlib.o ar: writing libcamac.a cc -O cam1.c -o cam1 -I. -L. -lcamac f77 -fast -O3 -u cam2.f -o cam2 -I. -L. -lcamac cam2.f: MAIN: cc -O cam3.c -o cam3 -I. -L. -lcamac onl5v4[71]% onl5v4[73]% cd camasm /export/home/onl5v4/inoue/CAMAC/FORCE-50T-sol2.6-list/camasm onl5v4[74]% make clean rm -f camasm *.obj *.lis *~ *.o core onl5v4[75]% make cc -O -o camasm camasm.c "./asm_code.h", line 192: warning: initializer does not fit or is out of range: -1 onl5v4[76]% onl5v4[76]% cd ../camlist /export/home/onl5v4/inoue/CAMAC/FORCE-50T-sol2.6-list/camlist onl5v4[77]% make clean rm -f camtest4c camtest5c camtest5c1 camtest5c2 \ camtest4single.obj camtest4dma.obj camtest4int.obj \ core onl5v4[78]% make cc -o camtest4c camtest4c.c -I.. -L.. -lcamac cc -o camtest5c camtest5c.c -I.. -L.. -lcamac cc -o camtest5c1 camtest5c1.c -I.. -L.. -lcamac cc -o camtest5c2 camtest5c2.c -I.. -L.. -lcamac ../camasm/camasm camtest4single.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm camtest4dma.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm camtest4int.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 onl5v4[79]% onl5v4[80]% cd ../camlist-kine /export/home/onl5v4/inoue/CAMAC/FORCE-50T-sol2.6-list/camlist-kine onl5v4[81]% make clean rm -f cam6 cam6a cam7 cam6b cam7A cam7B *.lis *.obj *~ *.o core *.klist onl5v4[82]% make cc cam6.c -o cam6 -I.. -L.. -lcamac ../camasm/camasm cam6 a CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 cc cam6a.c -o cam6a -I.. -L.. -lcamac cc cam7.c -o cam7 -I.. -L.. -lcamac ../camasm/camasm cam7a a CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm cam7b a CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 cc cam6b.c -o cam6b -I.. -L.. -lcamac cc cam7A.c -o cam7A -I.. -L.. -lcamac ../camasm/camasm cam7aA a CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm cam7bA a CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm cam7cA a CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 cc cam7B.c -o cam7B -I.. -L.. -lcamac onl5v4[83]% onl5v4[84]% ls -lR .: total 854 -rw-r--r-- 1 inoue kek 2041 Jun 23 2000 Makefile -rw-r--r-- 1 inoue kek 4099 Oct 20 15:35 README -rwxr-xr-x 1 inoue kek 14232 Mar 8 10:48 cam1* -rw-r--r-- 1 inoue kek 1170 Jun 23 2000 cam1.c -rwxr-xr-x 1 inoue kek 104900 Mar 8 10:48 cam2* -rw-r--r-- 1 inoue kek 2295 Jun 23 2000 cam2.f -rwxr-xr-x 1 inoue kek 14620 Mar 8 10:48 cam3* -rw-r--r-- 1 inoue kek 2055 Jul 28 2000 cam3.c drwxr-xr-x 2 inoue kek 512 Mar 8 10:51 camasm/ -rw-r--r-- 1 inoue kek 9803 Oct 3 17:15 camlib.c -rw-r--r-- 1 inoue kek 1415 Jun 23 2000 camlib.h -rw-r--r-- 1 inoue kek 9644 Mar 8 10:48 camlib.o drwxr-xr-x 2 inoue kek 512 Mar 8 10:52 camlist/ drwxr-xr-x 2 inoue kek 1024 Mar 8 14:12 camlist-kine/ -rw-r--r-- 1 inoue kek 48276 Mar 8 10:48 cc -rw-r--r-- 1 inoue kek 83124 Feb 28 15:36 cc.c -rw-r--r-- 1 inoue kek 82170 Feb 28 14:21 cc.c-org -rw-r--r-- 1 inoue kek 288 Jun 23 2000 cc.conf -rw-r--r-- 1 inoue kek 2829 Oct 13 10:59 cc.h -rw-r--r-- 1 inoue kek 2288 Jun 23 2000 cc_common.h -rw-r--r-- 1 inoue kek 876 Jun 23 2000 cc_config.h -rw-r--r-- 1 inoue kek 3289 Jun 23 2000 forlib.c -rw-r--r-- 1 inoue kek 3496 Mar 8 10:48 forlib.o -rw-r--r-- 1 inoue kek 4058 Jun 23 2000 k2917.h -rw-r--r-- 1 inoue kek 14000 Mar 8 10:48 libcamac.a drwxr-xr-x 2 inoue kek 512 Oct 2 16:39 script/ ./camasm: total 134 -rw-r--r-- 1 inoue kek 448 Jun 28 2000 Makefile -rw-r--r-- 1 inoue kek 11250 Oct 17 09:30 asm_code.h -rwxr-xr-x 1 inoue kek 28352 Mar 8 10:51 camasm* -rw-r--r-- 1 inoue kek 24762 Jun 28 2000 camasm.c -rw-r--r-- 1 inoue kek 1646 Jun 28 2000 err_code.h ./camlist: total 154 -rw-r--r-- 1 inoue kek 1415 Oct 16 10:45 Makefile -rwxr-xr-x 1 inoue kek 15160 Mar 8 10:52 camtest4c* -rw-r--r-- 1 inoue kek 2151 Oct 16 11:17 camtest4c.c -rw-r--r-- 1 inoue kek 709 Oct 16 11:45 camtest4dma.asm -rw-r--r-- 1 inoue kek 405 Mar 8 10:52 camtest4dma.obj -rw-r--r-- 1 inoue kek 903 Oct 16 13:58 camtest4int.asm -rw-r--r-- 1 inoue kek 322 Mar 8 10:52 camtest4int.obj -rw-r--r-- 1 inoue kek 603 Oct 16 14:12 camtest4single.asm -rw-r--r-- 1 inoue kek 195 Mar 8 10:52 camtest4single.obj -rwxr-xr-x 1 inoue kek 15072 Mar 8 10:52 camtest5c* -rw-r--r-- 1 inoue kek 2040 Oct 16 14:25 camtest5c.c -rwxr-xr-x 1 inoue kek 15076 Mar 8 10:52 camtest5c1* -rw-r--r-- 1 inoue kek 2027 Oct 16 14:46 camtest5c1.c -rwxr-xr-x 1 inoue kek 15076 Mar 8 10:52 camtest5c2* -rw-r--r-- 1 inoue kek 1994 Oct 16 15:47 camtest5c2.c ./camlist-kine: total 258 -rw-r--r-- 1 inoue kek 1296 Oct 16 16:30 Makefile -rwxr-xr-x 1 inoue kek 14636 Mar 8 14:12 cam6* -rw-r--r-- 1 inoue kek 708 Oct 17 14:35 cam6.asm -rw-r--r-- 1 inoue kek 1880 Oct 17 14:49 cam6.c -rw-r--r-- 1 inoue kek 1518 Mar 8 14:12 cam6.lis -rw-r--r-- 1 inoue kek 258 Mar 8 14:12 cam6.obj -rwxr-xr-x 1 inoue kek 14376 Mar 8 14:12 cam6a* -rw-r--r-- 1 inoue kek 1541 Oct 17 15:32 cam6a.c -rwxr-xr-x 1 inoue kek 16568 Mar 8 14:12 cam6b* -rw-r--r-- 1 inoue kek 2983 Oct 17 15:39 cam6b.c -rwxr-xr-x 1 inoue kek 14784 Mar 8 14:12 cam7* -rw-r--r-- 1 inoue kek 2021 Oct 17 16:07 cam7.c -rwxr-xr-x 1 inoue kek 15100 Mar 8 14:12 cam7A* -rw-r--r-- 1 inoue kek 2582 Oct 17 16:13 cam7A.c -rwxr-xr-x 1 inoue kek 14552 Mar 8 14:12 cam7B* -rw-r--r-- 1 inoue kek 1753 Oct 17 16:50 cam7B.c -rw-r--r-- 1 inoue kek 322 Oct 18 09:31 cam7a.asm -rw-r--r-- 1 inoue kek 697 Mar 8 14:12 cam7a.lis -rw-r--r-- 1 inoue kek 27 Mar 8 14:12 cam7a.obj -rw-r--r-- 1 inoue kek 322 Oct 18 10:24 cam7aA.asm -rw-r--r-- 1 inoue kek 697 Mar 8 14:12 cam7aA.lis -rw-r--r-- 1 inoue kek 27 Mar 8 14:12 cam7aA.obj -rw-r--r-- 1 inoue kek 679 Oct 18 10:52 cam7b.asm -rw-r--r-- 1 inoue kek 1228 Mar 8 14:12 cam7b.lis -rw-r--r-- 1 inoue kek 90 Mar 8 14:12 cam7b.obj -rw-r--r-- 1 inoue kek 812 Oct 18 13:43 cam7bA.asm -rw-r--r-- 1 inoue kek 1419 Mar 8 14:12 cam7bA.lis -rw-r--r-- 1 inoue kek 111 Mar 8 14:12 cam7bA.obj -rw-r--r-- 1 inoue kek 353 Oct 18 14:40 cam7cA.asm -rw-r--r-- 1 inoue kek 757 Mar 8 14:12 cam7cA.lis -rw-r--r-- 1 inoue kek 48 Mar 8 14:12 cam7cA.obj ./script: total 14 -rw-r--r-- 1 inoue kek 66 Oct 18 14:58 awk1.txt -rw-r--r-- 1 inoue kek 37 Oct 18 15:30 awk2.txt -rwxr-xr-x 1 inoue kek 233 Oct 18 15:32 cc_build.gcc.sh* -rwxr-xr-x 1 inoue kek 234 Oct 18 15:33 cc_build.sh* -rwxr-xr-x 1 inoue kek 811 Mar 7 10:57 cc_link.sh* -rwxr-xr-x 1 inoue kek 808 Oct 18 15:39 cc_load.sh* -rwxr-xr-x 1 inoue kek 270 Jun 23 2000 cc_unload.sh* onl5v4[85]% onl5v4# pwd /export/home/onl5v4/inoue/CAMAC/FORCE-50T-sol2.6-list onl5v4# make install /usr/ucb/install -d /usr/local/vme/camac/include /usr/ucb/install -d /usr/local/vme/camac/lib /usr/ucb/install -m 644 camlib.h cc_config.h cc_common.h cc.h \ k2917.h /usr/local/vme/camac/include /usr/ucb/install -m 644 libcamac.a /usr/local/vme/camac/lib onl5v4# (3-2). camacドライバをロードし直す onl5v4# pwd /export/home/onl5v4/inoue/CAMAC/FORCE-50T-sol2.6-list onl5v4# make unload ./script/cc_unload.sh [Removing CAMAC device driver] [Removing CAMAC device driver from system] [Deleting CAMAC device files] onl5v4# make load ./script/cc_load.sh [Installing CAMAC device driver] [Adding CAMAC device driver to system] [Configuring CAMAC device driver] [Making CAMAC device files] sun4m onl5v4# ls -l /dev/cc lrwxrwxrwx 1 root other 54 Mar 8 14:30 /dev/cc -> /devices/iommu@ 0,10000000/VME@0,7ffffe00/cc@2d,ff00:cc onl5v4# (4). 例題プログラムの実行(その1) (4-1). cam1、シングル・アクション 24ビット camac read/write の実行 onl5v4[39]% pwd /export/home/onl5v4/inoue/CAMAC/FORCE-50T-sol2.6-list onl5v4[40]% cam1 5 Input n a f (data)>3 0 0 N=3 A=0 F=0 Q=1 X=1 Data:000000(Hex) 00000000(Dec) Input n a f (data)>3 0 16 5555 N=3 A=0 F=16 Q=1 X=1 Data:0015B3(Hex) 00005555(Dec) Input n a f (data)>3 0 0 N=3 A=0 F=0 Q=1 X=1 Data:0015B3(Hex) 00005555(Dec) Input n a f (data)>3 0 16 777 N=3 A=0 F=16 Q=1 X=1 Data:000309(Hex) 00000777(Dec) Input n a f (data)>3 0 0 N=3 A=0 F=0 Q=1 X=1 Data:000309(Hex) 00000777(Dec) onl5v4[41]% onl5v4[41]% onl5v4[41]% cam1 Input n a f (data)>3 0 16 123 N=3 A=0 F=16 Q=1 X=1 Data:00007B(Hex) 00000123(Dec) Input n a f (data)>3 0 0 N=3 A=0 F=0 Q=1 X=1 Data:00007B(Hex) 00000123(Dec) Input n a f (data)>3 0 16 567 N=3 A=0 F=16 Q=1 X=1 Data:000237(Hex) 00000567(Dec) Input n a f (data)>3 0 0 N=3 A=0 F=0 Q=1 X=1 Data:000237(Hex) 00000567(Dec) Input n a f (data)>^Conl5v4[42]% onl5v4[42]% ok. cam1、シングル・アクション 24ビット camac read/write は正常に 実行できた。 (4-2). cam3、camac LAM割り込み処理の実行 onl5v4[42]% cam3 *** Now waiting LAM ... N=3 Loop=10 Timeout=0 sec Interrupted !! count=1 Interrupted !! count=2 Interrupted !! count=3 Interrupted !! count=4 Interrupted !! count=5 Interrupted !! count=6 Interrupted !! count=7 Interrupted !! count=8 Interrupted !! count=9 Interrupted !! count=10 *** cam3 nomal end. onl5v4[43]% onl5v4[43]% onl5v4[43]% cam3 *** Now waiting LAM ... N=3 Loop=10 Timeout=0 sec Interrupted !! count=1 Interrupted !! count=2 Interrupted !! count=3 Timeout !! count=4 <-- ここで、故意にタイムアウトを起こしてみた。 Timeout !! count=5 <-- ここで、故意にタイムアウトを起こしてみた。 Interrupted !! count=6 Interrupted !! count=7 Timeout !! count=8 <-- ここで、故意にタイムアウトを起こしてみた。 Interrupted !! count=9 Interrupted !! count=10 *** cam3 nomal end. onl5v4[44]% onl5v4[44]% onl5v4[44]% cam3 *** Now waiting LAM ... N=3 Loop=10 Timeout=0 sec Timeout !! count=1 <-- ここで、故意にタイムアウトを起こしてみた。 Interrupted !! count=2 Timeout !! count=3 <-- ここで、故意にタイムアウトを起こしてみた。 Interrupted !! count=4 Timeout !! count=5 <-- ここで、故意にタイムアウトを起こしてみた。 Interrupted !! count=6 Interrupted !! count=7 Timeout !! count=8 <-- ここで、故意にタイムアウトを起こしてみた。 Interrupted !! count=9 Timeout !! count=10 <-- ここで、故意にタイムアウトを起こしてみた。 *** cam3 nomal end. onl5v4[45]% ok. cam3、camac LAM割り込み処理は timeout処理も含めて正常に実行できた。 (4-3). cam2プログラムの実行 (4-3-1). cam2、ブロック転送 16ビット read/write の実行 onl5v4[45]% cam2 Input transfer mode (1:word 2:long word) >1 Input loop >5 Input mode (0:QSTOP 1:QIGNORE 2:QREPEAT 3:QSCAN) >1 Input data counts >5 Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 0 0x 0(Hex) Data( 2)= 0 0x 0(Hex) Data( 3)= 0 0x 0(Hex) Data( 4)= 0 0x 0(Hex) Data( 5)= 0 0x 0(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 16 Input data >1234 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 1234 0x 4D2(Hex) Data( 2)= 1234 0x 4D2(Hex) Data( 3)= 1234 0x 4D2(Hex) Data( 4)= 1234 0x 4D2(Hex) Data( 5)= 1234 0x 4D2(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 1234 0x 4D2(Hex) Data( 2)= 1234 0x 4D2(Hex) Data( 3)= 1234 0x 4D2(Hex) Data( 4)= 1234 0x 4D2(Hex) Data( 5)= 1234 0x 4D2(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 16 Input data >9876 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 9876 0x 2694(Hex) Data( 2)= 9876 0x 2694(Hex) Data( 3)= 9876 0x 2694(Hex) Data( 4)= 9876 0x 2694(Hex) Data( 5)= 9876 0x 2694(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 9876 0x 2694(Hex) Data( 2)= 9876 0x 2694(Hex) Data( 3)= 9876 0x 2694(Hex) Data( 4)= 9876 0x 2694(Hex) Data( 5)= 9876 0x 2694(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) onl5v4[46]% onl5v4[46]% onl5v4[46]% onl5v4[46]% cam2 Input transfer mode (1:word 2:long word) >1 Input loop >5 Input mode (0:QSTOP 1:QIGNORE 2:QREPEAT 3:QSCAN) >1 Input data counts >5 Input n a f >3 0 16 Input data >6587 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 6587 0x 19BB(Hex) Data( 2)= 6587 0x 19BB(Hex) Data( 3)= 6587 0x 19BB(Hex) Data( 4)= 6587 0x 19BB(Hex) Data( 5)= 6587 0x 19BB(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 6587 0x 19BB(Hex) Data( 2)= 6587 0x 19BB(Hex) Data( 3)= 6587 0x 19BB(Hex) Data( 4)= 6587 0x 19BB(Hex) Data( 5)= 6587 0x 19BB(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 16 Input data >777 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 777 0x 309(Hex) Data( 2)= 777 0x 309(Hex) Data( 3)= 777 0x 309(Hex) Data( 4)= 777 0x 309(Hex) Data( 5)= 777 0x 309(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 16 Input data >8888 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 8888 0x 22B8(Hex) Data( 2)= 8888 0x 22B8(Hex) Data( 3)= 8888 0x 22B8(Hex) Data( 4)= 8888 0x 22B8(Hex) Data( 5)= 8888 0x 22B8(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 8888 0x 22B8(Hex) Data( 2)= 8888 0x 22B8(Hex) Data( 3)= 8888 0x 22B8(Hex) Data( 4)= 8888 0x 22B8(Hex) Data( 5)= 8888 0x 22B8(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) onl5v4[47]% ok. cam2、ブロック転送 16ビット read/write は正常に実行できた。 (4-3-2). cam2、ブロック転送 24ビット read/write の実行 onl5v4[47]% cam2 Input transfer mode (1:word 2:long word) >2 Input loop >5 Input mode (0:QSTOP 1:QIGNORE 2:QREPEAT 3:QSCAN) >1 Input data counts >5 Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= -16777216 0x FF000000(Hex) Data( 2)= -16777216 0x FF000000(Hex) Data( 3)= -16777216 0x FF000000(Hex) Data( 4)= -16777216 0x FF000000(Hex) Data( 5)= -16777216 0x FF000000(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 16 Input data >6636321 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 6636321 0x 654321(Hex) Data( 2)= 6636321 0x 654321(Hex) Data( 3)= 6636321 0x 654321(Hex) Data( 4)= 6636321 0x 654321(Hex) Data( 5)= 6636321 0x 654321(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= -10140895 0x FF654321(Hex) Data( 2)= -10140895 0x FF654321(Hex) Data( 3)= -10140895 0x FF654321(Hex) Data( 4)= -10140895 0x FF654321(Hex) Data( 5)= -10140895 0x FF654321(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 16 Input data >66666 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 66666 0x 1046A(Hex) Data( 2)= 66666 0x 1046A(Hex) Data( 3)= 66666 0x 1046A(Hex) Data( 4)= 66666 0x 1046A(Hex) Data( 5)= 66666 0x 1046A(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= -16710550 0x FF01046A(Hex) Data( 2)= -16710550 0x FF01046A(Hex) Data( 3)= -16710550 0x FF01046A(Hex) Data( 4)= -16710550 0x FF01046A(Hex) Data( 5)= -16710550 0x FF01046A(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) onl5v4[48]% onl5v4[48]% onl5v4[48]% cam2 Input transfer mode (1:word 2:long word) >2 Input loop >5 Input mode (0:QSTOP 1:QIGNORE 2:QREPEAT 3:QSCAN) >1 Input data counts >5 Input n a f >3 0 16 Input data >77777 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 77777 0x 12FD1(Hex) Data( 2)= 77777 0x 12FD1(Hex) Data( 3)= 77777 0x 12FD1(Hex) Data( 4)= 77777 0x 12FD1(Hex) Data( 5)= 77777 0x 12FD1(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= -16699439 0x FF012FD1(Hex) Data( 2)= -16699439 0x FF012FD1(Hex) Data( 3)= -16699439 0x FF012FD1(Hex) Data( 4)= -16699439 0x FF012FD1(Hex) Data( 5)= -16699439 0x FF012FD1(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= -16699439 0x FF012FD1(Hex) Data( 2)= -16699439 0x FF012FD1(Hex) Data( 3)= -16699439 0x FF012FD1(Hex) Data( 4)= -16699439 0x FF012FD1(Hex) Data( 5)= -16699439 0x FF012FD1(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 16 Input data >777 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 777 0x 309(Hex) Data( 2)= 777 0x 309(Hex) Data( 3)= 777 0x 309(Hex) Data( 4)= 777 0x 309(Hex) Data( 5)= 777 0x 309(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= -16776439 0x FF000309(Hex) Data( 2)= -16776439 0x FF000309(Hex) Data( 3)= -16776439 0x FF000309(Hex) Data( 4)= -16776439 0x FF000309(Hex) Data( 5)= -16776439 0x FF000309(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) onl5v4[49]% ok. cam2、ブロック転送 24ビット read/write は正常に実行できた。 配布キット "FORCE-50T-sol2.6-list"を一部修正して onl5v4 上で camacの 例題プログラムのテストを行った。 o cam1、シングル・アクション 24ビット camac read/write の実行 o cam3、camac LAM割り込み処理の実行 o cam2、ブロック転送 16ビット read/write の実行 o cam2、ブロック転送 24ビット read/write の実行 は、すべて正常に実行できた。 続いて、KEKリスト処理の例題プログラムの テストを行う。 (5). KEKリスト処理用の例題プログラムの実行(その2) onl5v4[52]% pwd /export/home/onl5v4/inoue/CAMAC/FORCE-50T-sol2.6-list/camlist onl5v4[53]% ls -l total 154 -rw-r--r-- 1 inoue kek 1415 Oct 16 10:45 Makefile -rwxr-xr-x 1 inoue kek 15160 Mar 8 10:52 camtest4c* -rw-r--r-- 1 inoue kek 2151 Oct 16 11:17 camtest4c.c -rw-r--r-- 1 inoue kek 709 Oct 16 11:45 camtest4dma.asm -rw-r--r-- 1 inoue kek 405 Mar 8 10:52 camtest4dma.obj -rw-r--r-- 1 inoue kek 903 Oct 16 13:58 camtest4int.asm -rw-r--r-- 1 inoue kek 322 Mar 8 10:52 camtest4int.obj -rw-r--r-- 1 inoue kek 603 Oct 16 14:12 camtest4single.asm -rw-r--r-- 1 inoue kek 195 Mar 8 10:52 camtest4single.obj -rwxr-xr-x 1 inoue kek 15072 Mar 8 10:52 camtest5c* -rw-r--r-- 1 inoue kek 2040 Oct 16 14:25 camtest5c.c -rwxr-xr-x 1 inoue kek 15076 Mar 8 10:52 camtest5c1* -rw-r--r-- 1 inoue kek 2027 Oct 16 14:46 camtest5c1.c -rwxr-xr-x 1 inoue kek 15076 Mar 8 10:52 camtest5c2* -rw-r--r-- 1 inoue kek 1994 Oct 16 15:47 camtest5c2.c onl5v4[54]% (5-1). KEKリスト処理でシングルアクション(16ビット/24ビット)read/write を実行 onl5v4[54]% cat camtest4single.asm ; File name : camtest4single.asm ; Creation date : July 1992 ; Author : Y.Yasu, Online group, Physics department, KEK ; Modified : July 21, 2000 E.Inoue SW equ 3 ; CAMAC SWITCH REGISTER MEM equ 4 ; CAMAC BUFFER MEMORY MOUDLE INT equ 5 ; CAMAC INTERRUPT REGISTER LEN equ 10 ; 10 words ; MOVE #1,A SETCRATE A SETCRATE #0 GENZ GENC SETI REMI ; READ (0,SW,1) READ.l (0,SW,1) READ (0,SW,1),A MOVE A,(PTR)+ READ.l (0,SW,1),A MOVE.l A,(PTR)+ WRITE #0x5555,(16,SW,0) WRITE #0x80081,(16,SW,0) WRITE.l #0x80082,(16,SW,0) WRITE A,(16,SW,0) WRITE.l A,(16,SW,0) ; STOP end onl5v4[55]% onl5v4[55]% camtest5c CamReaLIST : OK lenlist = 36 list = 329 1 0 10a ef7768bc CamLisExeWAIt : OK contents of iosb : iosb.status = fffffff6 iosb.ret_length = 6 iosb.s_reg = f iosb.devinfo = a000 a0 contents of buffer : 5 0 5 5 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 onl5v4[56]% ok. KEKリスト処理でのシングルアクション(16ビット/24ビット)read/write は正常に実行できた。 (5-2). KEKリスト処理でLAM割り込み処理を実行 LAM源として、EG&E社製のNIMの "Puls Generator, PG-1900" を使用した。 このモジュールを使って、CAMAC 8 bit Interrupt Registerモジュールの チャンネル1 に繰り返し周期 100ms、パルス幅 2ms のNIM信号を入力した。 onl5v4[57]% cat camtest4int.asm ; File name : camtest4int.asm ; Creation date : July 1992 ; Author : Y.Yasu, Online group, Physics department, KEK ; Modified : Jul 31,2000 E.Inoue SW equ 3 ; CAMAC SWITCH REGISTER MEM equ 4 ; CAMAC BUFFER MEMORY MOUDLE INT equ 5 ; CAMAC INTERRUPT REGISTER LEN equ 10 ; 10 words ; SETCRATE #0 GENZ GENC SETI REMI ; MOVE #0x10,A ; INT module's LAM mask. Station # = 5. ENBINT MOVE.l #1000,T NDT (26,INT,0) LOOPIN1 MOVE #0xa,A ; Setting up timeout time. WAITINT ; GENC NDT (9,INT,0) MOVE.l T,A WRITE.l A,(16,SW,0) SUB #1,T BGT #0,LOOPIN1 LOAD COUNT MOVE.l A,(PTR)+ LOAD PTR MOVE.l A,(PTR)+ MOVE.l #1000,T LOOPIN2 MOVE #0xa,A ; Setting up timeout time. WAITEVENT ; GENC NDT (9,INT,0) MOVE.l T,A WRITE.l A,(16,SW,0) SUB #1,T BGT #0,LOOPIN2 LOAD COUNT MOVE.l A,(PTR)+ LOAD PTR MOVE.l A,(PTR)+ DSBINT ; STOP end onl5v4[58]% onl5v4[58]% camtest5c1 CamReaLIST : OK lenlist = 61 list = 20b 0 10c 10d ef7768bc CamLisExeWAIt : OK contents of iosb : iosb.status = fffffff6 iosb.ret_length = 8 iosb.s_reg = f iosb.devinfo = a000 a0 contents of buffer : 0 0 0 2 0 3e8 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 onl5v4[59]% onl5v4[59]% onl5v4[59]% onl5v4[59]% camtest5c1 CamReaLIST : OK lenlist = 61 list = 20b 0 10c 10d ef7768bc CamLisExeWAIt : OK contents of iosb : iosb.status = fffffff6 iosb.ret_length = 8 iosb.s_reg = f iosb.devinfo = a000 a0 contents of buffer : 0 3e8 0 2 0 7d0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 onl5v4[60]% ok. インタラプト・モジュールを使った、KEKリスト処理による LAM割り込み 処理は正常に実行できた。 (5-3). KEKリスト処理で DMA camacブロック転送をを実行 onl5v4[61]% cat camtest4dma.asm ; File name : camtest4dma.asm ; Creation date : July 1992 ; Author : Y.Yasu, Online group, Physics department, KEK SW equ 3 ; CAMAC SWITCH REGISTER MEM equ 4 ; CAMAC BUFFER MEMORY MOUDLE LEN equ 10 ; 10 words ; SETCRATE #0 GENZ GENC SETI REMI NDT (9,MEM,0) MOVE #LEN,T MOVE #0,A LOOP WRITE A,(16,MEM,0) ADD #1,A SUB #1,T BGT #0,LOOP ; MOVE #1,A QS.l (0,SW,1),#1 QS.l (0,SW,1),A AS.l (0,SW,1),#1 AS.l (0,SW,0),A IGQ.l (0,SW,1),#1 IGQ.l (0,SW,1),A ; MOVE #LEN,A NDT (9,MEM,0) QS (0,MEM,0),#LEN NDT (9,MEM,0) QS (0,MEM,0),A NDT (9,MEM,0) AS (0,MEM,0),#LEN NDT (9,MEM,0) AS (0,MEM,0),A NDT (9,MEM,0) IGQ (0,MEM,0),#LEN NDT (9,MEM,0) IGQ (0,MEM,0),A ; ; STOP end onl5v4[62]% onl5v4[62]% camtest5c2 CamReaLIST : OK lenlist = 76 list = 20b 0 10c 10d ef7768bc CamLisExeWAIt : OK contents of iosb : iosb.status = fffffff6 iosb.ret_length = 48 iosb.s_reg = f iosb.devinfo = 800 080 contents of buffer : ff00 5 ff00 5 ff00 5 ff00 0 ff00 5 ff00 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 onl5v4[63]% ok. KEKリスト処理による DMA camacブロック転送は正常に実行できた。 (5-4). CamLisLOAD および CamExeWAIt のテスト camtest4single.objファイルを CamLisLOAD および CamExeWAIt関数を使用して KEKリスト処理を行う例題プログラムである。 onl5v4[63]% cat camtest4single.asm ; File name : camtest4single.asm ; Creation date : July 1992 ; Author : Y.Yasu, Online group, Physics department, KEK ; Modified : July 21, 2000 E.Inoue SW equ 3 ; CAMAC SWITCH REGISTER MEM equ 4 ; CAMAC BUFFER MEMORY MOUDLE INT equ 5 ; CAMAC INTERRUPT REGISTER LEN equ 10 ; 10 words ; MOVE #1,A SETCRATE A SETCRATE #0 GENZ GENC SETI REMI ; READ (0,SW,1) READ.l (0,SW,1) READ (0,SW,1),A MOVE A,(PTR)+ READ.l (0,SW,1),A MOVE.l A,(PTR)+ WRITE #0x5555,(16,SW,0) WRITE #0x80081,(16,SW,0) WRITE.l #0x80082,(16,SW,0) WRITE A,(16,SW,0) WRITE.l A,(16,SW,0) ; STOP end onl5v4[64]% onl5v4[64]% camtest4c CAM_Open : Done CamReaLIST : OK lenlist = 36 CamLisLOAD : OK list = 329 1 0 10a ef7768bc CamExeWAIt : OK contents of iosb : iosb.status = fffffff6 iosb.ret_length = 6 iosb.s_reg = f iosb.devinfo = a000 a0 contents of buffer : 5 0 5 5 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 onl5v4[65]% ok. CamLisLOAD および CamExeWAIt関数は正常に機能している。 (6). Kineticリスト処理用の例題プログラムの実行(その3) onl5v4[69]% pwd /export/home/onl5v4/inoue/CAMAC/FORCE-50T-sol2.6-list/camlist-kine onl5v4[70]% ls -l total 258 -rw-r--r-- 1 inoue kek 1296 Oct 16 16:30 Makefile -rwxr-xr-x 1 inoue kek 14636 Mar 8 14:12 cam6* -rw-r--r-- 1 inoue kek 708 Oct 17 14:35 cam6.asm -rw-r--r-- 1 inoue kek 1880 Oct 17 14:49 cam6.c -rw-r--r-- 1 inoue kek 1518 Mar 8 14:12 cam6.lis -rw-r--r-- 1 inoue kek 258 Mar 8 14:12 cam6.obj -rwxr-xr-x 1 inoue kek 14376 Mar 8 14:12 cam6a* -rw-r--r-- 1 inoue kek 1541 Oct 17 15:32 cam6a.c -rwxr-xr-x 1 inoue kek 16568 Mar 8 14:12 cam6b* -rw-r--r-- 1 inoue kek 2983 Oct 17 15:39 cam6b.c -rwxr-xr-x 1 inoue kek 14784 Mar 8 14:12 cam7* -rw-r--r-- 1 inoue kek 2021 Oct 17 16:07 cam7.c -rwxr-xr-x 1 inoue kek 15100 Mar 8 14:12 cam7A* -rw-r--r-- 1 inoue kek 2582 Oct 17 16:13 cam7A.c -rwxr-xr-x 1 inoue kek 14552 Mar 8 14:12 cam7B* -rw-r--r-- 1 inoue kek 1753 Oct 17 16:50 cam7B.c -rw-r--r-- 1 inoue kek 322 Oct 18 09:31 cam7a.asm -rw-r--r-- 1 inoue kek 697 Mar 8 14:12 cam7a.lis -rw-r--r-- 1 inoue kek 27 Mar 8 14:12 cam7a.obj -rw-r--r-- 1 inoue kek 322 Oct 18 10:24 cam7aA.asm -rw-r--r-- 1 inoue kek 697 Mar 8 14:12 cam7aA.lis -rw-r--r-- 1 inoue kek 27 Mar 8 14:12 cam7aA.obj -rw-r--r-- 1 inoue kek 679 Oct 18 10:52 cam7b.asm -rw-r--r-- 1 inoue kek 1228 Mar 8 14:12 cam7b.lis -rw-r--r-- 1 inoue kek 90 Mar 8 14:12 cam7b.obj -rw-r--r-- 1 inoue kek 812 Oct 18 13:43 cam7bA.asm -rw-r--r-- 1 inoue kek 1419 Mar 8 14:12 cam7bA.lis -rw-r--r-- 1 inoue kek 111 Mar 8 14:12 cam7bA.obj -rw-r--r-- 1 inoue kek 353 Oct 18 14:40 cam7cA.asm -rw-r--r-- 1 inoue kek 757 Mar 8 14:12 cam7cA.lis -rw-r--r-- 1 inoue kek 48 Mar 8 14:12 cam7cA.obj onl5v4[71]% (6-1). kineticリスト処理でシングルアクションおよび DMA転送の実行 この例題プログラムでは次の事項についてテストしている。 (1). 16/24ビットのシングルアクション read/write (2). 16/24ビットの DMA、イグノア Q (3). 16/24ビットの DMA、Qストップ (4). 16/24ビットの DMA、アドレス・スキャン onl5v4[72]% cat cam6.asm ***************************************************************** * cam6.ASM 20-FEB-1992 Y.Takeuchi * * Modified : 4-Jul-2000 E.Inoue * * * * camasm cam6 a * ***************************************************************** SW equ 3 ; Switch Register ; IGQ (0,SW,1),#6 NDT (10,SW,0) READ (0,SW,1) READ.l (0,SW,1) WRITE #6,(16,SW,0) WRITE #7,(16,SW,0) WRITE.l #6636321,(16,SW,0) IGQ (0,SW,1),#100 IGQ.l (0,SW,1),#7 IGQ.l (0,SW,1),#100 QS (0,SW,1),#7 QS (0,SW,1),#100 QS.l (0,SW,1),#7 QS.l (0,SW,1),#100 AS (0,SW,1),#1 AS.l (0,SW,1),#1 ; STOP end onl5v4[73]% onl5v4[73]% cam6 list length = 48 Now execute cam6.obj ... data[ 0]=0x 0 0 usp[ 0]=0x 0 0 usp[ 1]=0x 287 647 data[ 1]=0x 287 647 usp[ 2]=0x 5 5 usp[ 3]=0x 5 5 data[ 2]=0x 5 5 usp[ 4]=0x 5 5 usp[ 5]=0x 5 5 data[ 3]=0x 5 5 usp[ 6]=0x 5 5 usp[ 7]=0x 5 5 data[ 4]=0x 5 5 usp[ 8]=0x 5 5 usp[ 9]=0xff00 65280 data[ 5]=0x 5 5 usp[ 10]=0x 5 5 usp[ 11]=0x 5 5 data[ 6]=0x 5 5 usp[ 12]=0x 5 5 usp[ 13]=0x 5 5 data[ 7]=0x 5 5 usp[ 14]=0x 5 5 usp[ 15]=0x 5 5 data[ 8]=0x 5 5 usp[ 16]=0x 5 5 usp[ 17]=0x 5 5 data[ 9]=0x ff00 65280 usp[ 18]=0x 5 5 usp[ 19]=0x 5 5 onl5v4[74]% ok. シングルアクションおよび DMA転送は正常に実行できた。 (6-2). kineticリスト処理でシングルアクションおよび DMA転送の実行(その2) 項目(6-1)での実行時に CKSAVE() 関数でセーブした Kineticリストをここでは CKLOAD()関数でロードして実行する例題プログラムである。 onl5v4[74]% cam6a Now execute ---test1--- data[ 0]=0x 287 647 usp[ 0]=0x 0 0 usp[ 1]=0x 287 647 data[ 1]=0x 50005 327685 usp[ 2]=0x 5 5 usp[ 3]=0x 5 5 data[ 2]=0x 50005 327685 usp[ 4]=0x 5 5 usp[ 5]=0x 5 5 data[ 3]=0x 50005 327685 usp[ 6]=0x 5 5 usp[ 7]=0x 5 5 data[ 4]=0x 5ff00 392960 usp[ 8]=0x 5 5 usp[ 9]=0xff00 65280 data[ 5]=0x 50005 327685 usp[ 10]=0x 5 5 usp[ 11]=0x 5 5 data[ 6]=0x 50005 327685 usp[ 12]=0x 5 5 usp[ 13]=0x 5 5 data[ 7]=0x 50005 327685 usp[ 14]=0x 5 5 usp[ 15]=0x 5 5 data[ 8]=0x 50005 327685 usp[ 16]=0x 5 5 usp[ 17]=0x 5 5 data[ 9]=0x 50005 327685 usp[ 18]=0x 5 5 usp[ 19]=0x 5 5 onl5v4[75]% ok. 正常に実行できた。 (6-3). kineticリスト処理でシングルアクションおよび DMA転送の実行(その2) 項目(6-2)でやったテストを複数回繰り返した。 CKDEL()関数を使って、 ロードされている kineticリストを途中で一旦削除した後で再ロードして 実行動作確認を行っている。 onl5v4[75]% cam6b Now execute ---test1--- data[ 0]=0x 287 647 usp[ 0]=0x 0 0 usp[ 1]=0x 287 647 data[ 1]=0x 50005 327685 usp[ 2]=0x 5 5 usp[ 3]=0x 5 5 data[ 2]=0x 50005 327685 usp[ 4]=0x 5 5 usp[ 5]=0x 5 5 data[ 3]=0x 50005 327685 usp[ 6]=0x 5 5 usp[ 7]=0x 5 5 data[ 4]=0x 5ff00 392960 usp[ 8]=0x 5 5 usp[ 9]=0xff00 65280 data[ 5]=0x 50005 327685 usp[ 10]=0x 5 5 usp[ 11]=0x 5 5 data[ 6]=0x 50005 327685 usp[ 12]=0x 5 5 usp[ 13]=0x 5 5 data[ 7]=0x 50005 327685 usp[ 14]=0x 5 5 usp[ 15]=0x 5 5 data[ 8]=0x 50005 327685 usp[ 16]=0x 5 5 usp[ 17]=0x 5 5 data[ 9]=0x 50005 327685 usp[ 18]=0x 5 5 usp[ 19]=0x 5 5 Now execute ---test1--- data[ 0]=0x 287 647 usp[ 0]=0x 0 0 usp[ 1]=0x 287 647 data[ 1]=0x 50005 327685 usp[ 2]=0x 5 5 usp[ 3]=0x 5 5 data[ 2]=0x 50005 327685 usp[ 4]=0x 5 5 usp[ 5]=0x 5 5 data[ 3]=0x 50005 327685 usp[ 6]=0x 5 5 usp[ 7]=0x 5 5 data[ 4]=0x 5ff00 392960 usp[ 8]=0x 5 5 usp[ 9]=0xff00 65280 data[ 5]=0x 50005 327685 usp[ 10]=0x 5 5 usp[ 11]=0x 5 5 data[ 6]=0x 50005 327685 usp[ 12]=0x 5 5 usp[ 13]=0x 5 5 data[ 7]=0x 50005 327685 usp[ 14]=0x 5 5 usp[ 15]=0x 5 5 data[ 8]=0x 50005 327685 usp[ 16]=0x 5 5 usp[ 17]=0x 5 5 data[ 9]=0x 50005 327685 usp[ 18]=0x 5 5 usp[ 19]=0x 5 5 Now execute ---test1--- data[ 0]=0x 0 0 usp[ 0]=0x 0 0 usp[ 1]=0x 0 0 data[ 1]=0x 0 0 usp[ 2]=0x 0 0 usp[ 3]=0x 0 0 data[ 2]=0x 0 0 usp[ 4]=0x 0 0 usp[ 5]=0x 0 0 data[ 3]=0x 0 0 usp[ 6]=0x 0 0 usp[ 7]=0x 0 0 data[ 4]=0x 0 0 usp[ 8]=0x 0 0 usp[ 9]=0x 0 0 data[ 5]=0x 0 0 usp[ 10]=0x 0 0 usp[ 11]=0x 0 0 data[ 6]=0x 0 0 usp[ 12]=0x 0 0 usp[ 13]=0x 0 0 data[ 7]=0x 0 0 usp[ 14]=0x 0 0 usp[ 15]=0x 0 0 data[ 8]=0x 0 0 usp[ 16]=0x 0 0 usp[ 17]=0x 0 0 data[ 9]=0x 0 0 usp[ 18]=0x 0 0 usp[ 19]=0x 0 0 Now execute ---test1--- data[ 0]=0x 287 647 usp[ 0]=0x 0 0 usp[ 1]=0x 287 647 data[ 1]=0x 50005 327685 usp[ 2]=0x 5 5 usp[ 3]=0x 5 5 data[ 2]=0x 50005 327685 usp[ 4]=0x 5 5 usp[ 5]=0x 5 5 data[ 3]=0x 50005 327685 usp[ 6]=0x 5 5 usp[ 7]=0x 5 5 data[ 4]=0x 5ff00 392960 usp[ 8]=0x 5 5 usp[ 9]=0xff00 65280 data[ 5]=0x 50005 327685 usp[ 10]=0x 5 5 usp[ 11]=0x 5 5 data[ 6]=0x 50005 327685 usp[ 12]=0x 5 5 usp[ 13]=0x 5 5 data[ 7]=0x 50005 327685 usp[ 14]=0x 5 5 usp[ 15]=0x 5 5 data[ 8]=0x 50005 327685 usp[ 16]=0x 5 5 usp[ 17]=0x 5 5 data[ 9]=0x 50005 327685 usp[ 18]=0x 5 5 usp[ 19]=0x 5 5 onl5v4[76]% ok. 正常に実行できた。 (6-4). KEKリスト処理の中から kineticリスト処理を実行 2917 のコマンド・メモリ・レジスタにロードしておいた kineticリストを KEKリスト処理プログラムの中から実行する例題プログラムである。 onl5v4[76]% cat cam7a.asm ***************************************************************** * cam7a.ASM 29-MAR-1992 Y.Takeuchi * * Modified: 4-Jul-2000 E.Inoue * * * * camasm cam7a a * ***************************************************************** SW equ 3 ; Switch Register ; READ.l (0,SW,1) ; STOP end onl5v4[77]% onl5v4[77]% cat cam7b.asm ***************************************************************** * cam7b.ASM 29-MAR-1992 Y.Takeuchi * * Modified: 4-Jul-2000 E.Inoue * * * * camasm cam7b a * ***************************************************************** SW equ 3 ; CAMAC SW register ; NDT (10,SW,0) ; Clear LAM READ (0,SW,1) ; Read SW READ (0,SW,1) ; Read SW MOVE #0,A ; Set Klist name to "test1" LOAD TIMER ; Execute Klist READ (0,SW,1) ; Read SW READ (0,SW,1) ; Read SW ; STOP end onl5v4[78]% onl5v4[78]% cam7 list length = 4 list length = 16 Now execute cam7b.obj ... data[ 0]=0x 50005 327685 usp[ 0]=0x 5 5 usp[ 1]=0x 5 5 data[ 1]=0x 2 2 usp[ 2]=0x 0 0 usp[ 3]=0x 2 2 data[ 2]=0xff000005 4278190085 usp[ 4]=0xff00 65280 usp[ 5]=0x 5 5 data[ 3]=0x 50005 327685 usp[ 6]=0x 5 5 usp[ 7]=0x 5 5 data[ 4]=0x 0 0 usp[ 8]=0x 0 0 usp[ 9]=0x 0 0 data[ 5]=0x 0 0 usp[ 10]=0x 0 0 usp[ 11]=0x 0 0 data[ 6]=0x 0 0 usp[ 12]=0x 0 0 usp[ 13]=0x 0 0 data[ 7]=0x 0 0 usp[ 14]=0x 0 0 usp[ 15]=0x 0 0 data[ 8]=0x 0 0 usp[ 16]=0x 0 0 usp[ 17]=0x 0 0 data[ 9]=0x 0 0 usp[ 18]=0x 0 0 usp[ 19]=0x 0 0 onl5v4[79]% ok. 正常に実行できた。 (6-5). KEKリスト処理の中から kineticリスト処理を実行(その2) 複数の kineticリストを、任意に選択実行できるかテストする例題プログラム である。 onl5v4[79]% cat cam7aA.asm ***************************************************************** * cam7aA.ASM 29-MAR-1992 Y.Takeuchi * * Modified: 4-Jul-2000 E.Inoue * * * * camasm cam7aA a * ***************************************************************** SW equ 3 ; Switch Register ; READ.l (0,SW,1) ; STOP end onl5v4[80]% onl5v4[80]% cat cam7cA.asm ***************************************************************** * cam7cA.ASM 29-MAR-1992 Y.Takeuchi * * Modified: 4-Jul-2000 E.Inoue * * * * camasm cam7cA a * ***************************************************************** SW equ 3 ; Switch Register ; READ (0,SW,1) READ (0,SW,1) ; STOP end onl5v4[81]% onl5v4[81]% cat cam7bA.asm ***************************************************************** * cam7bA.ASM 29-MAR-1992 Y.Takeuchi * * Modified: 4-Jul-2000 E.Inoue * * * * camasm cam7bA a * ***************************************************************** SW equ 3 ; CAMAC SW register ; NDT (10,SW,0) ; Clear LAM READ (0,SW,1) ; Read SW READ (0,SW,1) ; Read SW MOVE #1,A ; Set Klist name to "test1" LOAD TIMER ; Execute Klist READ (0,SW,1) ; Read SW MOVE #0,A ; Set Klist name to "test0" LOAD TIMER ; Execute Klist READ (0,SW,1) ; Read SW ; STOP end onl5v4[82]% onl5v4[82]% cam7A list length = 4 list length = 6 list length = 20 Now execute cam7bA.obj ... data[ 0]=0x 50005 327685 usp[ 0]=0x 5 5 usp[ 1]=0x 5 5 data[ 1]=0x 2 2 usp[ 2]=0x 0 0 usp[ 3]=0x 2 2 data[ 2]=0x 50005 327685 usp[ 4]=0x 5 5 usp[ 5]=0x 5 5 data[ 3]=0x 50000 327680 usp[ 6]=0x 5 5 usp[ 7]=0x 0 0 data[ 4]=0x 2ff00 196352 usp[ 8]=0x 2 2 usp[ 9]=0xff00 65280 data[ 5]=0x 50005 327685 usp[ 10]=0x 5 5 usp[ 11]=0x 5 5 data[ 6]=0x 0 0 usp[ 12]=0x 0 0 usp[ 13]=0x 0 0 data[ 7]=0x 0 0 usp[ 14]=0x 0 0 usp[ 15]=0x 0 0 data[ 8]=0x 0 0 usp[ 16]=0x 0 0 usp[ 17]=0x 0 0 data[ 9]=0x 0 0 usp[ 18]=0x 0 0 usp[ 19]=0x 0 0 onl5v4[83]% ok. 正常に実行できた。 (6-6). KEKリスト処理の中から kineticリスト処理を実行(その3) 項目(6-5)での実行時に CKSAVE() 関数でセーブした複数の Kineticリストを ここではCKLOAD()関数でロードして実行する例題プログラムである。 onl5v4[83]% cat cam7bA.asm ***************************************************************** * cam7bA.ASM 29-MAR-1992 Y.Takeuchi * * Modified: 4-Jul-2000 E.Inoue * * * * camasm cam7bA a * ***************************************************************** SW equ 3 ; CAMAC SW register ; NDT (10,SW,0) ; Clear LAM READ (0,SW,1) ; Read SW READ (0,SW,1) ; Read SW MOVE #1,A ; Set Klist name to "test1" LOAD TIMER ; Execute Klist READ (0,SW,1) ; Read SW MOVE #0,A ; Set Klist name to "test0" LOAD TIMER ; Execute Klist READ (0,SW,1) ; Read SW ; STOP end onl5v4[84]% onl5v4[84]% cam7B list length = 20 Now execute cam7bA.obj ... data[ 0]=0x 50005 327685 usp[ 0]=0x 5 5 usp[ 1]=0x 5 5 data[ 1]=0x 2 2 usp[ 2]=0x 0 0 usp[ 3]=0x 2 2 data[ 2]=0x 50005 327685 usp[ 4]=0x 5 5 usp[ 5]=0x 5 5 data[ 3]=0x 50000 327680 usp[ 6]=0x 5 5 usp[ 7]=0x 0 0 data[ 4]=0x 2ff00 196352 usp[ 8]=0x 2 2 usp[ 9]=0xff00 65280 data[ 5]=0x 50005 327685 usp[ 10]=0x 5 5 usp[ 11]=0x 5 5 data[ 6]=0x 0 0 usp[ 12]=0x 0 0 usp[ 13]=0x 0 0 data[ 7]=0x 0 0 usp[ 14]=0x 0 0 usp[ 15]=0x 0 0 data[ 8]=0x 0 0 usp[ 16]=0x 0 0 usp[ 17]=0x 0 0 data[ 9]=0x 0 0 usp[ 18]=0x 0 0 usp[ 19]=0x 0 0 onl5v4[85]% ok. 正常に実行できた。 これで、キット中の例題プログラムによる動作確認は全て正常に終了した。 SPARC CPU-5V、Solaris7の下での CAMAC動作確認は完了。 正常に実行できる ことを確認した。 このテストを実行するのに際してccドライバのキット"FORCE-50T-sol2.6-list" を一部修正して使用した。 そこで、この変更を加えてものを CPU-5V用のキット として "FORCE-5V-sol7-list" のバージョンのキットとして提供することに する。 次に、"FORCE-5V-sol7-list"キットを作成する。 ---xxxx ここまでやった(継続中) --- (6). 項目タイトル (6-1). サブ項目タイトル (6-1-1). サブサブ項目タイトル