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.
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.