May 13, 1998 onl5v4: Solaris 2.6 cc ドライバのデバッグ. cc ドライバの実行 ~~~~~~~~~~~~~~~~~~~ (http://www-online.kek.jp/~inoue/CAMAC/ onl5v4-sol2.6/camac-step05.txt) 高エネルギー加速器研究機構 素粒子原子核研究所 物理、オンライングループ 井上 栄二 (1). 現状確認 (A). 英語版 Soalris2.6 & VMEドライバ v2.2.2 が届いた。 (B). CPU-5V に Solaris2.6 のシステムをインストールした。 (C). /etc の下の各設定、および /export/home の作成をやった。 (D). sendmail のバージョンをアップをやった。 (E). Solaris2.6用の VMEドライバ、FRCvme-2.2.2 をインストールした。 (F). onl5v4 に ccドライバをインストールした。 (G). サンプル・プログラムを実行した。 (G-1). 24ビットのシングル・アクション read/writeプログラム、cam1 は 正常終了した。 (G-2). 割り込み処理プログラム、cam3 は正常終了した。 (G-3). 16ビットのブロック転送 read/writeプログラム、cam2 は NG。 ハングする。 (H). onl5v4 に VMEドライバ v2.2.2、および CAMACドライバをインストール した後、onl7v2 上での cam2 の実行もハングするようになってしまった。 (H-1). onl5v4 のボードを引き抜いて、cam2 を実行しみたところ、以前と 同様に正常に実行できることを確認した。 (2). ここでやるべきこと onl7v2 のボードを引き抜いてから onl5v4、Solaris2.6 で CAMAC のテストを 再度実行してみる。 (3). テスト環境 スロット #1 #2 #3 #4 #5 #6 +----------------------------------------------------+ |+--+ +--+ +--++--+ | || | | | | || | | || | | | | || | | || | | | | || | | || | | | | <------- スロット#5 のボードは | || | | | | || | 引き抜いた。 | || | | | | || | | || |+--+| |+--+| || | | || || || || || || | | || || || || || || | | || || || || || || | | || || || || || || | | || |+--+| |+--+| || | | |+--+ +--+ +--++--+ | +----------------------------------------------------+ スロット#1: SPARC CPU-7V(onl7v1)、Solaris2.5.1 VMEドライバ、CAMACドライバは無し。 スロット#2: このスロットはスロット#1のCPU-7VのSBusに差した FastEthernetボードが占有している。 スロット#3: SPARC CPU-5V(onl5v4)、Solaris2.6 VMEドライバは V2.2.2あり、CAMACドライバあり。 slavewindow が設定してある。 スロット#4: このスロットはスロット#3のCPU-5VのSBusに差した FastEthernetボードが占有している。 スロット#5: SPARC CPU-7V(onl7v2)、Solaris2.6 VMEドライバは V2.2.2あり、CAMACドライバあり。 slavewindow が設定してある。 スロット#6: K2917 (4). サンプル・プログラムを使った ccドライバの動作テスト (4-1). camacシングル・アクション 24ビット read/write テスト camacクレートのスロット番号3に差したスイッチ・レジスタ・モジュールに 対して、camacシングル・アクション 24ビット read/write を実行した。 onl5v4[49]% pwd /export/home/onl5v4/inoue/CAMAC/Driver/FORCE-5V-sol2.5 onl5v4[50]% 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 7777 N=3 A=0 F=16 Q=1 X=1 Data:001E61(Hex) 00007777(Dec) Input n a f (data)>3 0 0 N=3 A=0 F=0 Q=1 X=1 Data:001E61(Hex) 00007777(Dec) Input n a f (data)>3 0 16 0 N=3 A=0 F=16 Q=1 X=1 Data:000000(Hex) 00000000(Dec) Input n a f (data)>3 0 0 N=3 A=0 F=0 Q=1 X=1 Data:000000(Hex) 00000000(Dec) onl5v4[51]% ok. 正常に実行できた。 (4-2). camac LAM 割り込み処理テスト camacクレートのスロット番号3に差したスイッチ・レジスタ・モジュール から LAM 割り込みを発生させて、 LAM 割り込みが正しく処理できるかどうか 調べた。 onl5v4[51]% 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[52]% cam3 *** Now waiting LAM ... N=3 Loop=10 Timeout=0 sec Interrupted !! count=1 Interrupted !! count=2 Timeout !! count=3 <-- ここで、故意にタイム・アウトを起こしてみた。 Timeout !! count=4 <-- ここで、故意にタイム・アウトを起こしてみた。 Interrupted !! count=5 Interrupted !! count=6 Timeout !! count=7 <-- ここで、故意にタイム・アウトを起こしてみた。 Timeout !! count=8 <-- ここで、故意にタイム・アウトを起こしてみた。 Timeout !! count=9 <-- ここで、故意にタイム・アウトを起こしてみた。 Interrupted !! count=10 *** cam3 nomal end. onl5v4[53]% ok. 正常に実行できた。 (4-3). camacブロック転送 16ビット read/write テスト camacクレートのスロット番号3に差したスイッチ・レジスタ・モジュールに 対して camacブロック転送 16ビット read/write を実行した。 onl5v4[47]% 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 >17185 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 17185 0x 4321(Hex) Data( 2)= 17185 0x 4321(Hex) Data( 3)= 17185 0x 4321(Hex) Data( 4)= 17185 0x 4321(Hex) Data( 5)= 17185 0x 4321(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)= 17185 0x 4321(Hex) Data( 2)= 17185 0x 4321(Hex) Data( 3)= 17185 0x 4321(Hex) Data( 4)= 17185 0x 4321(Hex) Data( 5)= 17185 0x 4321(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 >0 MODE=1 N= 3 A= 0 F=16 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 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) onl5v4[48]% ok. 正常に実行できた。 (4-4). camacブロック転送 24ビット read/write テスト camacクレートのスロット番号3に差したスイッチ・レジスタ・モジュールに 対して camacブロック転送 24ビット read/write を実行した。 onl5v4[53]% 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 >0 MODE=1 N= 3 A= 0 F=16 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 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) onl5v4[54]% ok. 正常に実行できた。 --- (6). 項目タイトル (6-1). サブ項目タイトル (6-1-1). サブサブ項目タイトル