Configuring vxWorks 6.x

vxWorks 6.x Information

This page provides a advice on configuring and using the Wind River’s Workbench environment and the vxWorks 6.x RTOS with EPICS. If you discover any other information that ought to be published here, please let me know.

Note that there is a separate page provided for users of vxWorks 5.x and Wind River’s Tornado.

Tornado 2.2 and Linux

PowerPC

Configuring WRS Tornado 2.x for EPICS

Configuring a vxWorks 6.x image

Using the Wind River Workbench to create a vxWorks image suitable for running EPICS IOCs, the following components are required in addition to the standard components included with a new vxWorks 6.x Image Project (System Image) with a PROFILE_DEVELOPMENT Configuration Profile:

  • C++ components
    • standard library
      • C++ Iostreams and other … — INCLUDE_CPLUS_IOSTREAMS
  • Network Components (default)
    • Network Applications (default)
      • SNTP Components
        • SNTP Client (daemon) — INCLUDE_IPSNTPC
          Set the NTP server addresses under here. The primary server IPv4 address can be set to sysBootParams.had for the IOC to always use its boot host as an NTP server.
    • Network Core Components (default)
      • Backwards compatibility wrapper routines
        • libc wrappers
          • sntpcTimeGet wrapper — INCLUDE_IPWRAP_SNTPCTIMEGET
      • network init — INCLUDE_NET_INIT
  • operating system components (default)
    • IO system components (default)
      • IO Subsystem Components
        • Basic IO System
          • max # open files in the system — NUM_FILES
            Configure this to more than the maximum number of CA sessions you expect need to connect into and out of this IOC at the same time. The CA protocol uses one file handle per client, and every additional network socket, serial port and other vxWorks device will use at least one.
    • kernel components (default)
      • unix compatable environment variables (default)
        • install environment variable task create/delete hooks — ENV_VAR_USE_HOOKS
          This variable must be set to FALSE.

The following components are optional but will often be wanted:

  • Network Components (default)
    • Network Applications (default)
      • SNTP Components
        • INCLUDE_IPSNTP_CMD
      • DNS Client — INCLUDE_IPDNSC
        Set the DNS domain name and at least the DNS primary name server under here. The server can be set to sysBootParams.had for the IOC to always use its boot host as a DNS server
    • Network Core Components (default)
      • Backwards compatibility wrapper routines
        • libc wrappers
          • arp utility wrapper — INCLUDE_IPWRAP_ARP
        • utilslib wrappers
          • ifShow wrapper — INCLUDE_IPWRAP_IFSHOW
          • ifconfig wrapper — INCLUDE_IPWRAP_IFCONFIG
          • netstat wrapper — INCLUDE_IPWRAP_NETSTAT
          • ping wrapper — INCLUDE_IPWRAP_PING
          • routec wrapper — INCLUDE_IPWRAP_ROUTECMD
  • development tool components (default)
    • spy — INCLUDE_SPY
  • operating system components (default)
    • IO system components (default)
      • NFS Components
        • NFS client All — INCLUDE_NFS_CLIENT_ALL

These components are included in the PROFILE_DEVELOPMENT configuration by default but not required by EPICS so may safely be excluded:

  • Network Components (default)
    • Network Core Components (default)
      • Backwards compatibility wrapper routines
        • libc wrappers
          • getservbyname wrapper — INCLUDE_IPWRAP_GETSERVBYNAME
          • getservbyport wrapper — INCLUDE_IPWRAP_GETSERVBYPORT
  • application components (default)
    • application initialization — INCLUDE_USER_APPL
  • development tool components (default)
    • Compiler support routines
      • Diab compiler support routines — INCLUDE_DIAB_INTRINSICS
  • operating system components (default)
    • ANSI C components (libc) (default)
      • ANSI locale — INCLUDE_ANSI_LOCALE
      • ANSI stdio extensions — INCLUDE_ANSI_STDIO_EXTRA
    • POSIX components
      • POSIX timers (default) — INCLUDE_POSIX_TIMERS
      • sigevent notification library — INCLUDE_SIGEVENT
    • Real Time Process components — FOLDER_RTP
    • SYSCTL Component — FOLDER_SYSCTL

vxWorks 6.6 GNU Header stdexcept

There is a bug in the GNU C++ header file stdexcept as delivered with vxWorks 6.6 which results in some undefined symbols when you try to load the IOC code. The header has been fixed in later vxWorks releases, and there may have been an official Wind River patch issued to fix this, but Erik Bjorklund has provided this patch to address the problem.

Adding a CR/CSR Master Window to the mv6100 BSP

Eric Bjorklund gave a talk at a EPICS collaboration meeting in June 2006 describing how he added support for accessing the VME CR/CSR address space to the mv6100 BSP.