| Getting Started with VxWorks |
This is from original Computing Division documentation modified to reflect the CDF online configuration.
First read the first few chapters of the VxWorks Programmers Manual.
VxWorks is not set up on the b0 cluster as is stated in the manual. The cross compiler and loader can be used from SunOS and IRIX. (nodes b0dau30 and gobi on the b0 unix cluster)
To get the VxWorks commands, use
which defines an environmental variable $WIND_BASE which points to the directories which are assumed to be under /usr/vw in the manual. Note the commands which are defined as cc and ld in the manual are translated to $VXCC and $VXLD on b0 systems.
As VxWorks is a single user operating system, logging in over ethernet will suspend the locally connected terminal. When the remote process logs out, the local terminal resumes. The board may be rebooted by either typing "reboot" at the shell prompt, or by control-X. Note that control-X will often work even when the shell does not respond. However, sometimes it is necessary to press the reset buttton on the front panel.
To Compile a simple program, on the unix host (b0dau30 or gobi at B0)
To Compile a program that accesses VME using the FISION library, on the unix host
To Load a simple program, from the VxWorks shell:
To Run a simple program, at the shell prompt just give the method name and arguments.
In VxWorks, when an object file is loaded (as in ld < hello.o above) then all external references must be resolved either from code previously loaded, or by the current ld command. If a set of object files contain circular references, then then cannot be loaded singly and must be combined into a single object file. Also, it is much faster and more convenient to load a single file rather than many small ones. To link together multiple object files use a command like:
$VXLD -o $(obj)/exb_test.o -r $(obj)/test_main.o \
$(obj)/test_config.o \
$(obj)/test_startup.o \
$(obj)/test_write.o \
$(obj)/test_read.o
First read the manual about vxgdb. It is a useful debugger with a GUI. Then from gobi (this does not work on IRIX at present):
then from rsh window
then from vxgdb window
The parameters for an mvme 162 should look something like:
'.' = clear field; '-' = go to previous field; ^D = quit
boot device : ei
processor number : 0
host name : b0dau30
file name : kernel/5.3.1/mv162/vxWorks
inet on ethernet (e) : 131.225.206.103:ffffff00
inet on backplane (b):
host inet (h) : 131.225.206.191
gateway inet (g) : 131.225.206.200
user (u) : vxworksb
ftp password (pw) (blank = use rsh):
flags (f) : 0x0
target name (tn) : b0ts03
startup script (s) : boot/front-end/startupb.all
other (o) :
For and MVME 2301 the "boot device" should be "dc" and the kernel file will be ~vxworks/kernel/5.3.1/mv2301/vxWorks.
The node name must be added in ~vxworks/.rhosts. If the .rhosts file isnt changed, the message "permission denied" will appear on the terminal line and the board won't boot at all.
Boot scripts are discussed here.