Release Note
MPI/XMP VxWorks Package

Current Version
VxWorks Version
Tornado II


Welcome to the MPI/XMP-VxWorks Support Package. The distribution was built with Tornado II and tested using Tornado II. This document provides an overview of the release and describes the new features and changes from the standard WinNT MPI/XMP software releases. Each MPI/XMP-VxWorks distribution has a particular revision date and can only be used with a standard, WinNT MPI/XMP release of the identical revision date.

NOTE: At this time, this release supports only XMP and eXMP motion controllers. ZMP controllers are NOT supported.


VxWorks System Requirements

The MPI/XMP-VxWorks release is designed to operate with either a Win32 or SPARC station host. The Win32 MPI/XMP software release supports client/server operation via ethernet. Be sure to first install the MPI/XMP Win32 Software on the host system.

Tornado 2.0 for x86 targets must be installed on the host system.
Tornado 1.0.1 is no longer supported.

Target System
pcPentium BSP
VxWorks Version
BSP Version
1.2/3 for Pentium CPU
(modified for x86 architectures


Installing the Distribution on the Host System

The MPI/XMP-VxWorks installation consists of an InstallShield base distribution. It assumes a default installation directory of C:\MEI unless otherwise specified during installation. The MPI/XMP-VxWorks installation is designed to install on top of the standard Win32 MPI/XMP release. Both releases must be installed entirely for the Makefiles to run correctly.

All VxWorks specific files are installed into VxWorks\x86 subdirectories. Key components of the distribution are:

  • VxWorks BSP source files.
    Installed in the \xmp\mpi\VxWorks\x86 subdirectory.

  • The release and debug versions of the MPI/XMP-VxWorks libraries.
    Installed in the \xmp\lib\VxWorks\x86 subdirectory.

  • GNU Makefiles for various sample applications and utilities.


Building the Board Support Package

After the release has been installed, modifications to the VxWorks system files are necessary to provide support for the XMP-Series Motion Controller. Please follow the steps below to include XMP support in your BSP:

1. Modify sysLib.c, found in the pcPentium directory.

NOTE: An example source file of the sysLib.c is included in the \xmp\mpi\VxWorks\x86 subdirectory. While this can be used as a reference, do not copy this file over your original sysLib.c, as the example may not include all of your system-specific settings.

Add this at the end of the #INCLUDE section (near line #259).

     #ifdef INCLUDE_PCI
     #include "sysXmp.h"
     #endif /* INCLUDE_PCI */

Search for this line:

     PHYS_MEM_DESC sysPhysMemDesc [] =

Add the following code to the end of the MMU list (before any DUMMY_MMU_ENTRY) if one
exists. It is possible that there are multiple MMU lists for different cases. Be sure that the following code is included for every ifdef situation:

     #ifdef INCLUDE_PCI
          (void *) XMP0_MEMBASE0,
          (void *) XMP0_MEMBASE0,
     #endif /* INCLUDE_PCI */


In the PCI bus and config support section, after the line:

     /* (PCI_CFG_TYPE == PCI_CFG_AUTO) */

add the following line, near 956:

     # include "sysXmp.c" /* MEI controller support */


At the end of the function:

     void sysHwInit2 (void)


     #ifdef INCLUDE_PCI
           /* connect XMP interrupt */
           sysXmpHwInit2 ();
     #endif /* INCLUDE_PCI */


In the function:

     char *sysPhysMemTop(void),

above the line:

     #if   !defined (INCLUDE_PCI)&& \

insert the following code segement, near line 1607,

     #ifdef INCLUDE_PCI
             sysXmpInit (); /* initialize XMP data structure */

2. Copy sysXmp.c and sysXmp.h from the \xmp\mpi\VxWorks\x86 subdirectory to the working directory or modify the source path so they can be found.

3. Recompile the bootrom.bin and vxWorks image to include XMP support. Please refer to your BSP or Tornado documentation for instructions on compiling the boot images.


General Operation

Boot the Target System

The first step is to boot the target system using the newly compiled VxWorks and bootrom image containing XMP support. Verify that the target has successfully attached to the host computer and no warning or error messages were logged.

Loading the library object modules

Once the target is booted, load the MEI/XMP library modules mpiXmp.o and appUtil.o to the target:
     ld < /mei/xmp/lib/VxWorks/x86/debug/mpiXmp.o
     ld < /mei/xmp/sqNodelib/lib/VxWorks/x86/debug/libsqNode.a    
     ld < /mei/xmp/lib/VxWorks/x86/debug/appUtil.o

These object modules have been precompiled for a VxWorks target and come in a Release or Debug format. The mpiXmp.o must be loaded first as it contains definitions for libsqNode.a and appUtil.o.

Host/Client Communication between Win32 and VxWorks Applications

The target system is accessible from a Win32 host through TCP/IP via the server application. The server.o program is loaded on the target and then executed by typing ‘server’ from the telnet shell or console. This process must be active to receive any commands from a Win32 host. Press any key on the target to exit the server program. On the host side, all Win32 utilities and sample programs must be run with the –server <target> flag.

Running XMP support utilities under VxWorks

Pre-compiled utilities are included in the VxWorks release located at C:\MEI\XMP\BIN. These utilities support two modes of communication. They can be loaded and run from the target system or across ethernet from a Win32 host with the –server flag:

version program

Load the version.o object onto the target system.
Type: ver

NOTE: Due to a VxWorks module name conflict, the version.o main routine does not match the module name.

reset program

Load the reset.o object onto the target system.
Type: reset

Running via TCP/IP from a Win32 host.
Type: reset –server <target>

flash program

Load the flash.o object onto the target system.
For example, type: flash “C:/MEI/XMP/bin/xmpNNNxN.bin”

Running via TCP/IP from a Win32 host.
Type: flash –server <target> “C:/MEI/XMP/bin/xmpNNNxN.bin”

VM3 program

Operation not supported on the target system or via a sparc station.
Running via TCP/IP from a Win32 host, type: Vm3 –server <target>

Motion Console

Running via TCP/IP from a Win32 host, please see the Motion Console section.

Motion Scope

Running via TCP/IP from a Win32 host, please see the Motion Scope section.

MPI/XMP Sample Applications

This release installs a makefile for building the sample applications under Tornado. The makefile provides an interface to build all the sample apps from the command line using the make utility.


General Changes

Default Stack Sizes

Due to increased application memory requirements for SynqNet motion control network support, the default application stack size has been increased to 8MB in this release. This stack size can be adjusted by modifying the VXW_APP_STACK_SIZE define in [C:\MEI]\XMP\apputil\arg.h. A recompile of the apputil.o library will be required to make the change effective.

Known Bugs and Issues

There are no known bugs or open issues.


       Legal Notice  |  Tech Email  |  Feedback
Copyright ©
2001-2021 Motion Engineering