This program can be run as is. Once started, you will see a command prompt. Type ? And you will see a list of commands. While useful, I think you will find the VMEShell scripts a better way to go. They do use this program to speak with the kernel driver so it is necessary to have this program available in the current PATH.
The source code for "vmeutils" is also instruction on how to speak directly to the kernel driver. For those of you who wish to create programs that directly speak with the driver, these source files are good examples.
The VMEShell programs are unix shell scripts. They offer the operator a simple way to access the data on a VMEbus. Using these commands creates temporary files in the user's working directory which store information on the last access you did. This is nice because it will be possible to log off the machine, log back in and proceed from where you left off without having to re-enter VMEbus information again. Plus, these files are stored in the current working directory, so you can have different VME access configuration just by setting up different directories for each VME board of interest.
Assuming you placed the shell programs and the "vmeutils" program in the /usr/local/bin directory, you should be able to log in as a regular user and run them. What follows assumes exactly this.
Login as a regular user and create a directory to experiment with. Once in this directory type:
vmemapYou should get a help screen like this...
Usage: map address count space size type where address is VME Address to set Universe image to Space = 0 CR/CSR Space = 1 A16 Space = 2 A24 Space = 3 A32 Size = 1 8 bit Size = 2 16 bit Size = 3 32 bit Size = 4 64 bit Type = 0 USR/DATA Type = 1 USR/PRG Type = 2 SUP/DATA Type = 3 SUP/PRGThis is where you tell VMELinux how you want to access the VMEbus. We assume you already know about the VMEbus' many modes of operation, but here is a short list to help you.
vmemap 0x8000 0x100 1 2 0sets up the VMELinux driver to access an A16 board at base address 8000 Hex with a range of 100H bytes with 16 bit data width and USR/DATA mode.
You will find two new files in your current directory.
map.vme store the parameters above so you do not have to enter them every time.
All the following shell utilities read values from these two files to performs VME accesses.
There are several parameters used with these commands: address, size and filename.
Available options are defined with a single dash with the any combination of the following:
VMELinux offers access to all the features of the Universe Chip. Especially useful is access to the DMA engine on the chip. With this feature the Universe chip transfers data on the PCI bus by becoming a PCI master. This is nice, but the real benefit comes from the VMEbus accesses. Even if the VMEbus interface is not using block mode transfers, the Universe chip can complete VMEbus transfers under 400 nanoseconds sustained. This is the direct result of the Universe taking complete control of both the PCI bus and the VMEbus. Thus, it is possible to access non block mode VMEbus peripherals much faster than older technologies.