next up previous contents
Next: VMEのメモリへの割付 Up: VMEバスやCAMACをアクセスする Previous: VMEバスやCAMACをアクセスする

基本的な概念

VMEやCAMACは特殊な入出力装置です。UNIXでは入出力装置もすべて特殊なファ イルとして扱われます。それぞれのデバイスにデバイスドライバーを書くこと によってカーネルのレベルで処理が行なえるようになります。それらの役割の 中で大きなものは、ユーザプロセスのメモリー空間にVMEのアドレス空間を割 り付けることと、モジュールの割り込みを処理することです。/devの下を見て ください。

        % ls /dev/vme*

        /dev/vme16      /dev/vme16d32   /dev/vme24d16   /dev/vme32      /dev/vme32d32

        /dev/vme16d16   /dev/vme24      /dev/vme24d32   /dev/vme32d16

などというのが見えます(DECstationの場合はvme[a-f]0)。それぞれ異なった VMEのアクセス方式を表しています。数字はそれぞれ使用するアドレス線の数 とデータ線の数を表しています。どのモードを使用する必要があるかは使うモ ジュールによって違います。

注意をしていただきたいのは、これらのデバイスは歴史的な理由から実際に VMEインターフェースを持っていないシステムにも形だけ残っていることがあ ります。SunOSの場合もそうです。ですからVMEボードを持ってきてこれらのデ バイスがlsで見えても実際にはインストールされていないことがあるので注意 してください。インストールされていない状態でVMEにアクセスしようとして も正しく働きません。インストールされているかどうかはdme sgなどで立ち上 げ時のデバイスドライバーの出力メッセージをみれば確認できます。例えば次 のような記述があるはずです。

FORCE SPARC CPU-3CE

FORCE Solaris 1.1.1 Rev. B CPU-3CE VME Driver (nexus & memplus) Version 1.1

  Master Window: 0x0-0xfffffff (a32map=0x0)

  Slave  Window: 0x0-0xfffff (slavemap=0x80)

  A16 Mail Box: 0x0 (mbox=0x0)

  VME Interrupt Level Enable: 1, 2, 3, 4, 5, 6, 7,  (intenable=0xfe)

VME0 at SBus slot 0 0xfe00000 and SBus slot 4 0x1380000 pri 2, pri 3, pri 5, pri
 7, pri 9, pri 11, pri 13

こういった記述がdmesgで表示されなければまだそのシステムにはVMEドライバー はインストールされていません。システム管理者にインストールをお願いして ください。

VMEをアクセスするためにはデバイスドライバーを呼び出すためファイルと してopenする必要があります。メモリーの割付や割り込みの処理などもopenで 得られたファイル記述子を通して行なわれます。

        #include        <stdio.h>

        #include        <fcntl.h>

        #include        <sys/types.h>

        #include        <sys/mman.h>



        int     fd;

        caddr_t vme_ptr;



        #ifdef  ultrix

                fd = open( "/dev/vmef0", O_RDWR | O_CREAT );

        #else

                fd = open( "/dev/vme32d32", O_RDWR | O_CREAT );

        #endif

以後、このファイル記述子fdを使ってメモリーを割り付けたり割り込みを操作 するためのioctlシステムコール呼出しを行ったりします。例文では#ifdefで DECstationの場合とSPA RCののったVMEモジュール(FORCE社のCPU-2CEなど)の 場合を取り上げています。



next up previous contents
Next: VMEのメモリへの割付 Up: VMEバスやCAMACをアクセスする Previous: VMEバスやCAMACをアクセスする



Kinya Hibino
Sun Jan 14 21:36:40 JST 1996