This page describes briefly some useful VME utilities build on top of the VME access library.
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 copyJust some examples to show how the program can be used:
% 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
% 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
% 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
% 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 ------------------------------------------------------------
% 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
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:
% Vicsetup -rvme A0000000 2 10000000 -rvme B0000000 3 10000000
% Vicsetup -rvme 10000000 4 0 09 -rvme 20000000 4 0 39
% Vicsetup -b a1000000 -gmm 50000000
Suggestions, comments or questions? Please contact: