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.
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
- standard library
- 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.
- SNTP Client (daemon) — INCLUDE_IPSNTPC
- SNTP Components
- Network Core Components (default)
- Backwards compatibility wrapper routines
- libc wrappers
- sntpcTimeGet wrapper — INCLUDE_IPWRAP_SNTPCTIMEGET
- libc wrappers
- network init — INCLUDE_NET_INIT
- Backwards compatibility wrapper routines
- Network Applications (default)
- 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.
- max # open files in the system — NUM_FILES
- Basic IO System
- IO Subsystem Components
- 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.
- install environment variable task create/delete hooks — ENV_VAR_USE_HOOKS
- unix compatable environment variables (default)
- IO system components (default)
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
- SNTP Components
- 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
- libc wrappers
- Backwards compatibility wrapper routines
- Network Applications (default)
- development tool components (default)
- spy — INCLUDE_SPY
- operating system components (default)
- IO system components (default)
- NFS Components
- NFS client All — INCLUDE_NFS_CLIENT_ALL
- NFS Components
- IO system components (default)
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
- libc wrappers
- Backwards compatibility wrapper routines
- Network Core Components (default)
- application components (default)
- application initialization — INCLUDE_USER_APPL
- development tool components (default)
- Compiler support routines
- Diab compiler support routines — INCLUDE_DIAB_INTRINSICS
- Compiler support routines
- 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
- ANSI C components (libc) (default)
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.