[
KLOE Online Software ] [ Previous ] [ Index ] [ Bottom ]

VME Utilities

This page describes briefly some useful VME utilities build on top of the VME access library.


Index


Vmetst: VME test program

This program allows to access the VME bus in various modes including single word access and BLT transfers (if supported). It also supports timing information to measure performance figures. The primary purpose is to have a quick test program for the VME access software.

% Vmetst
Usage: Vmetst [opt] <map-addr> <offset>          [<datum>]     
                    <map-addr> <offset>,<length> [<datum>]
                    <map-addr> <offset>:<length> [<datum>]

Parameter: <map-addr> VME address to map
           <offset>   Offset from <map-address>
           <datum>    VME Write with that specified data
                      if given otherwise VME Read
           <length>   VME copy with the specified length
                      or from:to depending on the seperator

Options:  -a##  VME address modifier [0x09]
          -s##  VME space size to map [0x100]
          -d##  VME data type D32, D16 or D8 [D32]
          -n##  Number of loops (repeat count)
          -f    FIFO access enabled
          -t    Timing enabled
          -v    Verbose printout for VME copy
    
Just some examples to show how the program can be used:
  1. VME A32/D32 read and write at 0x10000000 with (default) address modifier 0x09:
    % Vmetst 10000000 0 BEEFFACE
    map_addr=10000000, map_size=100, am=09, D32, offset=0, len=0, datum=BEEFFACE
    map_ptr =C4000000
    VME-Addr:10000000, D32 data written: beefface
    
    % Vmetst 10000000 0
    map_addr=10000000, map_size=100, am=09, D32, offset=0, len=0
    map_ptr =C4000000
    VME-Addr:10000000, D32 data read: beefface
            
  2. VME A24/D16 read and write at 0x300000 with address modifier 0x39:
    % Vmetst -a39 -D16 300000 0 BEEF
    map_addr=  300000, map_size=100, am=39, D16, offset=0, len=0, datum=BEEF
    map_ptr =C4000000
    VME-Addr:  300000, D16 data written: beef
    
    % Vmetst -a39 -D16 300000 0
    map_addr=  300000, map_size=100, am=39, D16, offset=0, len=0
    map_ptr =C4000000
    VME-Addr:  300000, D16 data read: beef
            
  3. VME BLT D32 block transfer of 1MB from VME address 0x10000000 with address modifier 0x0B. Note: Do not forget to map suffcient VME space via option -s. For the write <datum> defines the data writen of the first byte, each subsequent byte is then incremented by one.
    % Vmetst -a0B -s1M 10000000 0,1M 0
    map_addr=10000000, map_size=100000, am=0B, D32, offset=0, len=100000, datum=0
    map_ptr =C4000000
    VME-Addr: 10000000, 1st,2nd .. last byte written:  1,  2 ..  0
    
    % Vmetst -a0B -s1M 10000000 0,1M
    map_addr=10000000, map_size=100000, am=0B, D32, offset=0, len=100000
    map_ptr =C4000000
            
  4. VME A32/D32 copy of VME address space from 0x10040000 to 0x10080000 (256K). To get better timing information the repeat count is used:
    % Vmetst -a09 -s1M -t -n20 10000000 256K:512K 0
    map_addr=10000000, map_size=100000, am=09, D32, offset=40000, len=40000, datum=0
    map_ptr =C4000000
    VME-Addr: 10040000, 1st,2nd .. last byte written:  1,  2 ..  0
    ------------------------------------------------------------
    Total Time:      1.6 sec, CPU usage: 100.0% for 5242880 bytes
    Cycle Time:  82000.0usec, MByte/sec: 3.0
    ------------------------------------------------------------
    
    % Vmetst -a09 -s1M -t -n20 10000000 256K:512K
    map_addr=10000000, map_size=100000, am=09, D32, offset=40000, len=40000
    map_ptr =C4000000
    ------------------------------------------------------------
    Total Time:      2.6 sec, CPU usage: 100.0% for 5242880 bytes
    Cycle Time: 128500.0usec, MByte/sec: 1.9
    ------------------------------------------------------------
            
  5. VME A32/D32 read of 32 bytes from 0x10000000. The contents is display on the screen:
    % Vmetst -a09 -s1K -v 10000000 0,40
    map_addr=10000000, map_size=100000, am=09, D32, offset=0, len=40
    map_ptr =C4000000
    VME-Addr      + 0      + 4      + 8      +12      +16      +20      +24      +28
    10000000  1020304  5060708  90a0b0c  d0e0f10 11121314 15161718 191a1b1c 1d1e1f20
    10000020 21222324 25262728 292a2b2c 2d2e2f30 31323334 35363738 393a3b3c 3d3e3f40
            

Vicsetup: VIC bus setup

This program allows to program the VIC bus in various modes:

% Vicsetup
Usage: % Vicsetup [-a] [-b] [-v] <Page-Description(s)>

Options: 
       -a : Add a page without VIC reset
       -b : VIC base address (default 0x01000000)
       -v : Verbose printing mode

Page-Definitions (each page is 4MB large): 

       Setup a page for VME remote access:
       -rvme <local-addr> <remote-cage> <remote-addr> [<remote-am>]

       Setup a page for remote mirrored memory access:
       -rmm  <local-addr> <remote-cage> [<remote-mm-addr>}

       Setup a page for local mirrored memory access:
       -lmm  <local-addr> [<remote-mm-addr>]

       Setup a page for global mirrored memory:
       -gmm  <local-addr> [<remote-mm-addr>]
        
Just some examples to show how the program can be used:
  1. Setup two 4MB pages to make VME remote access in the VME crates with cage number 2 and 3. A local access to 0xA0000000 is translated into a VME access at 0x10000000 in the crate with cage number 2 and so on. Note: the default address modifier 0x09 is used:
    % Vicsetup -rvme A0000000 2 10000000 -rvme B0000000 3 10000000
            
  2. Setup two 4MB pages to make VME remote access in the VME crate with cage number 4 to access there a VME unit at VME address 0 in A24 and A32 (address modifier 0x09 and 0x39):
    % Vicsetup -rvme 10000000 4 0 09 -rvme 20000000 4 0 39
            
  3. Setup global mirrored memory. Each transfer to 0x50000000 in the local crate accesses and updates the global mirrored memory. The VIC is accessed at a non-default VME address:
    % Vicsetup -b a1000000 -gmm 50000000 
            

[ KLOE Online Software ] [ Previous ] [ Index ] [ Top ]

Suggestions, comments or questions? Please contact:


28/3/96