
- Refactored site specific stuff into a site module - PSI specific stuff is now in the PSI directory. - The old version has been tagged with pre-ansto
1573 lines
66 KiB
TeX
Executable File
1573 lines
66 KiB
TeX
Executable File
% TAS_SRC:[PSI.NOTES]HIST_MEM_NOTES.TEX - Ident 1A05
|
||
% ====================================
|
||
%%
|
||
%%====================================================================
|
||
\documentclass[openbib,a4paper,twoside,12pt]{article}
|
||
\usepackage{array}
|
||
\usepackage{epsfig}
|
||
%
|
||
\newcommand{\nc}{\newcommand}
|
||
\newcommand{\rc}{\renewcommand}
|
||
%
|
||
\nc{\myident}{1A05}
|
||
\nc{\mydate}{26th October 2000}
|
||
%
|
||
%%====================================================================
|
||
%%
|
||
%% +--------------------------------------------------------------+
|
||
%% | Paul Scherrer Institute |
|
||
%% | SINQ Division |
|
||
%% | |
|
||
%% | This software may be used freely by non-profit organizations.|
|
||
%% | It may be copied provided that the name of P.S.I. and of the |
|
||
%% | author is included. Neither P.S.I. nor the author assume any |
|
||
%% | responsibility for the use of this software outside of P.S.I.|
|
||
%% +--------------------------------------------------------------+
|
||
%%
|
||
%% Project . . . . . . . . . . : SINQ
|
||
%% Brief Document Title . . . . : Notes for the SinqHM Histogram Memory
|
||
%% Author . . . . . . . . . . . : D.Maden
|
||
%% Date of creation . . . . . . : 4-Nov-1997
|
||
%%
|
||
%% Updates:
|
||
%% 4-Nov-1997 DM. Initial Latex Version.
|
||
%% 15-Dec-1998 DM. Expand.
|
||
%% 18-Jun-1999 DM. Bring up to date.
|
||
%% 18-Nov-1999 DM. Bring up to date.
|
||
%%====================================================================
|
||
%% To process this file under Digital Unix
|
||
%%
|
||
%% rcp maden@lnsa04:sinqhm/hist_mem_notes.tex .
|
||
%% rcp maden@lnsa04:sinqhm/psi_logo.ps .
|
||
%% rcp maden@lnsa04:sinqhm/sinq_logo.ps .
|
||
%% latex hist_mem_notes
|
||
%% dvips -o hist_mem_notes.ps hist_mem_notes
|
||
%% vpp -device=ps800 -form=duplex hist_mem_notes.ps
|
||
%%====================================================================
|
||
%%
|
||
\addtolength{\textheight}{40mm}
|
||
\setlength{\textwidth}{160mm}
|
||
\setlength{\oddsidemargin}{8mm}
|
||
\setlength{\evensidemargin}{-10mm}
|
||
\setlength{\topmargin}{-20mm}
|
||
%
|
||
\setcounter{tocdepth}{2}
|
||
%
|
||
\parskip 1.0ex plus 5pt minus 5pt % Space between paragraphs.
|
||
%%\setlength{\parindent}{0em}
|
||
%
|
||
%%%\rc{\thepage}{\arabic{page}%
|
||
%%% \setcounter{footnote}{0}}
|
||
\rc{\topfraction}{0.9}
|
||
\rc{\bottomfraction}{0.9}
|
||
\nc{\botfigrule}{\vspace*{-3pt}%
|
||
\hspace*{\fill}\rule{0.75\columnwidth}{0.4pt}\hspace*{\fill}%
|
||
\vspace*{-2.6pt}}
|
||
\nc{\topfigrule}{\vspace*{-3pt}%
|
||
\hspace*{\fill}\rule{0.75\columnwidth}{0.4pt}\hspace*{\fill}%
|
||
\vspace*{-2.6pt}}
|
||
%
|
||
\nc{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp}
|
||
\let\PBS=\PreserveBackslash % shorthand
|
||
%
|
||
% Define "\usc" to get a proper underscore!!
|
||
\nc{\usc}{\protect\makebox[0.6em]{\protect\rule{0.5em}{0.1ex}}}
|
||
%
|
||
\nc{\camac}{\protect\makebox[4.1em][l]{CAMAC}}
|
||
\nc{\musr}{\protect\makebox[2.1em][l]{$\mu$SR}}
|
||
%
|
||
\nc{\myfile}{tas{\usc}src:[psi.notes]hist{\usc}mem{\usc}notes.tex}
|
||
%
|
||
\rc{\sf}[1]{\textsf{#1}}
|
||
\rc{\bf}[1]{\textbf{#1}}
|
||
\nc{\sfbf}[1]{\textsf{\textbf{#1}}}
|
||
%
|
||
\setlength{\unitlength}{1.0mm}
|
||
%
|
||
\title{SinqHM Histogram Memory \\ Software Support Notes}
|
||
\author{U. Greuter, D. Maden and P. Rasmussen}
|
||
\date{\mydate}
|
||
%
|
||
\pagestyle{empty}
|
||
\begin{document}
|
||
\begin{center}\begin{picture}(160,242)(16,5)
|
||
\put(0,0){
|
||
\linethickness{0.80mm}
|
||
\put(0, 0){\framebox(180,255){~}}
|
||
% Horizontal lines - bottom to top
|
||
\linethickness{0.40mm}
|
||
\put(0, 12){\line(1,0){180}}
|
||
\linethickness{0.30mm}
|
||
\multiput(124, 17)(0,5){8}{\line(1,0){56}}
|
||
\linethickness{0.60mm}
|
||
\put(124, 63){\line(1,0){56}}
|
||
\put(124, 57){\line(1,0){56}}
|
||
\linethickness{0.40mm}
|
||
\put(0, 76){\line(1,0){180}}
|
||
\put(0, 98){\line(1,0){180}}
|
||
\put(0, 154){\line(1,0){180}}
|
||
\put(0, 184){\line(1,0){180}}
|
||
\put(0, 206){\line(1,0){180}}
|
||
\put(0, 218){\line(1,0){180}}
|
||
\linethickness{0.80mm}
|
||
\put(0, 230){\line(1,0){180}}
|
||
% Vertical lines - left to right
|
||
\linethickness{0.40mm}
|
||
\put( 40, 230){\line(0,1){25}}
|
||
\put( 60, 206){\line(0,1){12}}
|
||
\put( 90, 0){\line(0,1){12}}
|
||
\put(120, 184){\line(0,1){46}}
|
||
\put(140, 218){\line(0,1){37}}
|
||
%
|
||
\linethickness{0.40mm}
|
||
\put(124, 12){\line(0,1){64}}
|
||
\put(138, 12){\line(0,1){51}}
|
||
\linethickness{0.60mm}
|
||
\put(152, 12){\line(0,1){51}}
|
||
\linethickness{0.40mm}
|
||
\put(166, 12){\line(0,1){51}}
|
||
%
|
||
\put(50, 232){\shortstack{%
|
||
{\huge Paul Scherrer Institut} \\
|
||
{W\"{u}renlingen und Villigen} \\
|
||
{\large CH-5232 Villigen PSI} \\[1.0ex]
|
||
{\tiny{\em (N\"{u}r f\"{u}r internen Gebrauch)}}}}
|
||
\put(160, 250){\makebox(0,0){\Large Projekt}}
|
||
\put( 2, 228){\makebox(0,0)[l]{\tiny Klassifizierung:}}
|
||
\put(122, 228){\makebox(0,0)[l]{\tiny Kurzzeichen:}}
|
||
\put(142, 228){\makebox(0,0)[l]{\tiny PSP-Nr:}}
|
||
\put( 2, 216){\makebox(0,0)[l]{\tiny Ersatz f\"{u}r:}}
|
||
\put( 62, 216){\makebox(0,0)[l]{\tiny Erstellungs/\"{A}nderungsdatum:}}
|
||
\put(122, 216){\makebox(0,0)[l]{\tiny Doku-Nr:}}
|
||
\put( 2, 204){\makebox(0,0)[l]{\tiny Federf. Autor:}}
|
||
\put( 2, 201){\makebox(0,0)[l]{\tiny Co-autoren:}}
|
||
\put(122, 204){\makebox(0,0)[l]{\tiny Unterschrift Federf. Autor:}}
|
||
\put( 2, 182){\makebox(0,0)[l]{\tiny Titel:}}
|
||
\put( 2, 152){\makebox(0,0)[l]{\tiny Kurztext bzw. Inhalt:}}
|
||
\put(110, 152){\makebox(0,0)[l]{\tiny Doppelseitig:}}
|
||
\put(128, 152){\makebox(0,0)[l]{\tiny Ja}}
|
||
\put(135, 152){\makebox(0,0)[l]{$\bullet$}}
|
||
\put(128, 149){\makebox(0,0)[l]{\tiny Nein}}
|
||
\put(135, 149){\makebox(0,0)[l]{$\circ$}}
|
||
\put(145, 152){\makebox(0,0)[l]{\tiny Seitenzahl total:}}
|
||
\put( 2, 96){\makebox(0,0)[l]{\tiny Schlagw\"{o}rter/Suchkriterien:}}
|
||
\put( 2, 74){\makebox(0,0)[l]{\tiny Verteiler:}}
|
||
\put(126, 74){\makebox(0,0)[l]{\tiny Erstellereigene Doku-Nr:}}
|
||
\put(131, 60){\makebox(0,0){PSP}} \put(145, 60){\makebox(0,0){Visum}}
|
||
\put(159, 60){\makebox(0,0){PSP}} \put(173, 60){\makebox(0,0){Visum}}
|
||
%
|
||
\put(131,54.5){\makebox(0,0){\tiny 8}}
|
||
\put(131,49.5){\makebox(0,0){\tiny 82}}
|
||
\put(131,44.5){\makebox(0,0){\tiny 83}}
|
||
\put(131,39.5){\makebox(0,0){\tiny 84}}
|
||
\put(131,34.5){\makebox(0,0){\tiny 85}}
|
||
\put(131,29.5){\makebox(0,0){\tiny 86}}
|
||
\put(131,24.5){\makebox(0,0){\tiny 89}}
|
||
%
|
||
\put(159,54.5){\makebox(0,0){\tiny 811}}
|
||
\put(159,49.5){\makebox(0,0){\tiny 812}}
|
||
\put(159,44.5){\makebox(0,0){\tiny 813}}
|
||
\put(159,39.5){\makebox(0,0){\tiny 814}}
|
||
\put(159,34.5){\makebox(0,0){\tiny 815}}
|
||
\put(159,29.5){\makebox(0,0){\tiny 816}}
|
||
\put(159,24.5){\makebox(0,0){\tiny 817}}
|
||
%
|
||
\put( 2, 10){\makebox(0,0)[l]{\tiny Datum:}}
|
||
\put( 47, 10){\makebox(0,0)[l]{\tiny Visum FBV:}}
|
||
\put( 92, 10){\makebox(0,0)[l]{\tiny Datum:}}
|
||
\put(137, 10){\makebox(0,0)[l]{\tiny Visum PL:}}
|
||
%
|
||
\put(2,230){\epsfig{bbllx=93,bblly=697,bburx=207,bbury=754,%
|
||
file=psi_logo.ps,%
|
||
height=20mm,clip=}}
|
||
%
|
||
\put(150,232){\epsfig{bbllx=122,bblly=700,bburx=201,bbury=740,%
|
||
file=sinq_logo.ps,%
|
||
height=14mm,clip=}}
|
||
%
|
||
\put( 25,223){\makebox(0,0)[l]{Basisunterlage}}
|
||
\put(130,223){\makebox(0,0){FI}}
|
||
\put(160,223){\makebox(0,0){89}}
|
||
\put( 90,210){\makebox(0,0){\mydate}}
|
||
\put(150,210){\makebox(0,0){891/MD36-???-}}
|
||
\put( 25,195){\makebox(0,0)[l]{\shortstack[l]{%
|
||
U. Greuter \\
|
||
D. Maden \\
|
||
P. Rasmussen}}}
|
||
\put( 25,175){\makebox(0,0)[l]{Software Support Notes for the
|
||
SINQ Histogram Memory, SinqHM}}
|
||
\put(170,152){\makebox(0,0){25}}
|
||
\put( 25,135){\shortstack[l]{%
|
||
This note provides software support information \\
|
||
for the SINQ histogramming memories}}
|
||
\put( 25, 86){\shortstack[l]{%
|
||
\tiny HISTOGRAM MEMORY \\
|
||
\tiny SOFTWARE NOTES \\
|
||
\tiny SINQHM}}
|
||
\put( 25, 60){\shortstack[l]{%
|
||
\tiny U. Greuter, WMHA/C15 \\
|
||
\tiny D. Maden, WHGA/247 \\
|
||
\tiny P. Rasmussen, WMHA/C28 \\
|
||
\tiny SINQ-Sekretariat, WHGA/249}}
|
||
\put(150, 69){\makebox(0,0){\myident}}
|
||
}
|
||
\end{picture}\end{center}
|
||
\cleardoublepage
|
||
%
|
||
\setcounter{page}{1}
|
||
%
|
||
\maketitle
|
||
%
|
||
\thispagestyle{myheadings}
|
||
\rc{\thepage}{}
|
||
\markboth%
|
||
{\rm \roman{page}\hspace*{-8mm}\underline{\hspace*{120mm}SinqHM
|
||
Notes Vn \myident}}%
|
||
{\underline{\rm SinqHM Notes Vn \myident \hspace*{21mm} File = \myfile}}
|
||
%
|
||
\begin{abstract}
|
||
\noindent Software support notes for the SINQ histogramming memories.
|
||
\end{abstract}
|
||
%
|
||
\tableofcontents
|
||
%
|
||
\cleardoublepage
|
||
\rc{\thepage}{\arabic{page}}
|
||
%
|
||
\pagestyle{myheadings}
|
||
\markboth{\hspace*{-8mm} \underline{\rm \hspace*{117mm} SinqHM
|
||
Notes Vn \myident}}%
|
||
{\underline{\rm SinqHM Notes Vn \myident
|
||
\hspace*{118mm}} \hspace*{-8mm}}
|
||
%
|
||
\section{Introduction}
|
||
% ======================
|
||
%
|
||
This document provides the support programmer
|
||
with information on setting up and using
|
||
the \mbox{SinqHM} histogramming memories which have been developed by
|
||
Bereichs B8 and ASQ for SINQ experiments. Details of the TCP/IP interface
|
||
with the SinqHM software are given elsewhere \cite{Hist-Mem-Spec}.
|
||
|
||
The histogram memory is based on a VME Power-PC single board computer
|
||
(MVME-1603). The processor is interfaced to an instrument's detector via a
|
||
{\em PMC\/}\footnote{PMC = PCI local bus Mezzanine Card.} piggy-back card.
|
||
Control and read-out of the SinqHM histogramming software are via the
|
||
processor's Ethernet interface.
|
||
|
||
Most of the examples in these notes refer to the DMC instrument. For
|
||
the other instruments using a histogram memory, e.g. SANS, FOCUS and
|
||
HRPT), simply substitute the capitalised name of the instrument for
|
||
{\em DMC\/} wherever it occurs and replace the histogram memory name,
|
||
{\em lnse01}, accordingly.
|
||
%
|
||
\section{Power-PC Hardware Setup}
|
||
% =================================
|
||
%
|
||
\label{PPC-HW-Setup}
|
||
%
|
||
The MVME-1603\footnote{The MVME-1603 consists of an MVME1600-001 base
|
||
board which has a plug-on processor/memory module. This is why the front
|
||
of the VME module is labelled MVME1600-001 rather than MVME-1603!}
|
||
Power-PC module is delivered with two factory installed EPROMs designed
|
||
for OS9 operation. These must be removed and a single VxWorks boot EPROM
|
||
must be installed in the upper EPROM socket (XU1). It is also
|
||
necessary\footnote{Some of these settings may not be actually {\em
|
||
necessary}. They are, however, known to be sufficient for the operation of
|
||
SinqHM.} to set the on-board jumpers as follows:
|
||
\begin{itemize}
|
||
\item[J7:] In to enable on-board SCSI termination.
|
||
\item[J8:] All 8 jumpers in to set the software readable header to 0x00.
|
||
\item[J9:] Jumper between pins 1 and 2 to select ``Auto System
|
||
Controller''.
|
||
\item[J10:] Jumper between pins 2 and 3 to select ``Drive TXC'' on
|
||
Serial Port 3.
|
||
\item[J13:] Jumper between pins 2 and 3 to select ``Drive TXC'' on
|
||
Serial Port 4.
|
||
\end{itemize}
|
||
%
|
||
The location of these jumpers is given in Reference~\cite{MVME-1603}. The
|
||
PMC fibre-optic interface card must be plugged into the appropriate
|
||
sockets of the MVME1600-001 base board.
|
||
%
|
||
\section{Power-PC Installation}
|
||
% ===============================
|
||
%
|
||
\label{PPC-Install}
|
||
%
|
||
In normal operation of SinqHM, the MVME-1603 only requires power from the
|
||
VME crate since it acquires data via the PMC and builds the histograms in
|
||
its internal memory. The MVME-1603 can, in this case, simply be plugged
|
||
into any slot of a double-height VME crate.
|
||
|
||
If, however, SinqHM will require VME access, e.g. to implement a VME bus
|
||
shared memory network\footnote{FOCUS uses a VME bus network between its 3
|
||
MVME-1603
|
||
modules.}, to generate simulated
|
||
data via a histogram memory test generator or to generate timing signals
|
||
via a VMIO10 I/O module, then the setup of the VME crate is important. In
|
||
this case, it is important that the VME bus-grant (BG) and
|
||
interrupt-acknowledge (IACK) links are correctly configured.
|
||
|
||
The simplest way to do this is to place all modules which require to act
|
||
as VME bus masters in adjacent slots to the left of the crate, starting
|
||
in Slot~1. If any slots are empty, the 5 jumpers (BG1, BG2, BG3, BG4 and
|
||
IACK) of the empty slot must be bridged. So far at SINQ, this is only
|
||
necessary on the FOCUS instrument.
|
||
|
||
For all instruments except FOCUS, the MVME-1603 is located in an
|
||
arbitrary slot and no other VME master is present in the crate.
|
||
|
||
On FOCUS, there are 3 MVME-1603 modules in the VME
|
||
crate. Since a MVME-1603 with its PMC piggy-back requires 2 VME slots,
|
||
these modules are located in slots 1, 3 and 5. The BG and IACK signals
|
||
are bridged with 10 jumpers in slots 2 and 4. On the WES type VME crates
|
||
in use at SINQ, these jumpers are located to the right of the so-called
|
||
J1 connector on the front of the crate's backplane. The J1 connector is
|
||
the upper of the 2 connectors present at each slot. Note that there are 2
|
||
columns of jumpers between slots 2 and 3. The right-hand column contains
|
||
the jumpers which are to be bridged.
|
||
|
||
Having installed the MVME-1603 module(s) in the front of the crate, it is
|
||
then necessary to install a corresponding {\em MVME-760-001 Transition
|
||
Module\/} in the rear of the crate for each MVME-1603. The connection is
|
||
to the so-called J2 (lower) connector via a ribbon cable. The transition
|
||
module provides connectors for the COM1, COM2 and Ethernet ports of the
|
||
MVME-1603.
|
||
|
||
The COM1 and COM2 ports are 9-pin male D-type connectors, common on PCs.
|
||
The Ethernet port has both an AUI (15-pin) and a 10BaseT Ethernet
|
||
connector, either of which may be used without changing any jumpers.
|
||
|
||
There are 2 jumpers on the transition module but their settings are
|
||
not relevant for COM1, COM2 or Ethernet operation. The important point
|
||
to remember is that, if the MVME-1603 is moved to a different slot,
|
||
then the ribbon cable connection to the rear J2 connector must be moved
|
||
as well.
|
||
|
||
For normal operation of the SinqHM software, there is no need to connect a
|
||
`dumb' terminal to the COM1 port. However, for set-up and debugging
|
||
operations,
|
||
such a connection can be extremely valuable. If possible, it is even
|
||
better if the COM1 port can be connected to the port of a terminal server.
|
||
One can then use a {\em telnet\/} session from a remote computer to
|
||
emulate the `dumb' terminal. In this case, it is usually necessary to
|
||
issue the following two {\em telnet\/} commands after the {\em telnet\/}
|
||
connection has been established: \\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\verb#telnet> mode character# \\
|
||
\hspace*{15mm}\verb#telnet> set binary# \\[1.0ex]
|
||
%
|
||
In order to obtain the \verb#telnet># prompt, it is usually necessary
|
||
to hit \verb#<Ctrl-]>#. Alternatively, this setup can be automated by
|
||
means of entries in the {\em .telnetrc} file. See the {\em telnetrc}
|
||
manual page for more information.
|
||
|
||
Given such a connection, the
|
||
VxWorks operating system may be rebooted by simply hitting
|
||
\verb#<Ctrl-X># on the terminal keyboard. Alternatively, the
|
||
recessed {\em reset\/} button (RST) on the MVME-1603 or the white {\em
|
||
Manual System Reset} button on the front of the VME crate may be pressed.
|
||
%
|
||
\section{Power-PC Software Setup}
|
||
% =================================
|
||
%
|
||
\label{PPC-Soft-Setup}
|
||
%
|
||
On powering up an MVME-1603 which has been correctly configured for
|
||
SinqHM, the following is typical of the messages which should appear on a
|
||
dumb terminal connected to COM1:
|
||
\vspace*{-3ex}
|
||
\begin{verbatim}
|
||
VxWorks System Boot
|
||
|
||
Copyright 1984-1996 Wind River Systems, Inc.
|
||
|
||
CPU: Motorola MVME1600 - PowerPC 603e
|
||
Version: 5.3
|
||
BSP version: 1.1/3
|
||
Creation date: Aug 23 1996, 14:30:10
|
||
|
||
Press any key to stop auto-boot...
|
||
0 <== See Note 1
|
||
auto-booting...
|
||
|
||
boot device : dc
|
||
processor num : 0
|
||
host name : pss123
|
||
file name : /home/pss123/aco/sinqhm/wind/SinqHM/DMC/vxWorks_auto
|
||
inet on e'net : 129.129.62.101:ffff0000
|
||
host inet (h) : 129.129.40.123
|
||
user (u) : sinqhm
|
||
flags (f) : 0x8
|
||
target name : lnse01
|
||
other (o) : sp=bootUtil/sp=SinqHM/cfg=HM_DIG,400 <== See Note 2
|
||
|
||
Attaching network interface dc0... done.
|
||
Attaching network interface lo0... done.
|
||
|
||
Loading... 598800
|
||
Starting at 0x100000...
|
||
|
||
Attaching network interface dc0... done.
|
||
Attaching network interface lo0... done.
|
||
|
||
VxWorks
|
||
|
||
Copyright 1984-1996 Wind River Systems, Inc.
|
||
|
||
CPU: Motorola MVME1600 - PowerPC 603e
|
||
VxWorks: 5.3
|
||
BSP version: 1.1/3
|
||
Creation date: Nov 11 1999 14:55:43
|
||
WDB: Ready. \end{verbatim}
|
||
\newpage
|
||
\begin{verbatim}
|
||
Spawning SinqHM_bootParamsConfig ... <== See Note 3
|
||
|
||
Parsing the "other" field defined in the boot line <== See Note 4
|
||
Other = "sp=bootUtil/sp=SinqHM/cfg=HM_DIG,400"
|
||
|
||
Spawning bootUtil .. <== See Note 5
|
||
TCP/IP port = 2300.
|
||
bootUtil: Started -- program ident = "1A01".
|
||
bootUtil: waiting for connections on Port 2300
|
||
|
||
Spawning SinqHM_srv ..
|
||
TCP/IP port = 2400.
|
||
No timing signal generation requested.
|
||
Timing signal generation via VMIO10 module disabled.
|
||
hmRoot2400: Program Ident = "1D01". Started on lnse01 ...
|
||
hmRoot2400: Protocol Ident = "V03A"
|
||
hmRoot2400: Instrument = "DMC"
|
||
hmRoot2400: Lwl_hdr_daq_mask = 0x20000000 NRL <== See Note 6
|
||
hmRoot2400: Lwl_hdr_daq_soll = 0x00000000
|
||
|
||
Configuring SinqHM_srv ...
|
||
Histogramming mode = SQHM__HM_DIG
|
||
Number of bins per histogram = 400
|
||
\end{verbatim}
|
||
|
||
\vspace*{-3.5ex}\hspace*{15mm} \vdots \vspace*{-3.5ex}
|
||
\begin{verbatim}
|
||
Connecting to SinqHM_srv via TCP/IP port 2400 ...
|
||
hmRoot2400: Connected to Node 129.129.62.101, Port 1024.
|
||
hmRoot2400: Configure .. <== See Note 7
|
||
Histogramming mode is "SQHM__HM_DIG"
|
||
Number of histograms = 1
|
||
First bin = 0
|
||
Number of bins = 400
|
||
Bytes per bin = 4
|
||
Bin compression factor = 1
|
||
Bin-overflow action is "Ignore"
|
||
Histogram base address = 0x007fc710
|
||
SQHM__HM_DIG mode configured.
|
||
.. configuration complete, hmFill2400 has been started.
|
||
|
||
SinqHM_srv has been configured.
|
||
|
||
Taking data in Digitised Histogramming Mode
|
||
#-Events #-Skip #-TSI Dead-Time Sync-Status
|
||
0 0 0 0
|
||
\end{verbatim}%
|
||
\hspace*{-5mm}\textbf{Notes:}
|
||
\begin{enumerate}
|
||
\item By hitting any key at this point, the boot procedure can be
|
||
interrupted and the boot program enters interactive mode which
|
||
allows one to inspect and modify the boot parameters as
|
||
described below.
|
||
\item This {\em other\/} information specifies the default configuration
|
||
information for SinqHM. See Note 4 and Appendix~\ref{other}.
|
||
\item The VxWorks system image, selected by the {\em file name} boot
|
||
parameter,
|
||
includes the SinqHM software and code for automatically starting
|
||
up SinqHM once the boot procedure has completed. This is the
|
||
first message indicating the start-up of the SinqHM software.
|
||
More information on available VxWorks system images is given in
|
||
Section~\ref{VxWorks-os}.
|
||
\item This is where the {\em other\/} boot parameter gets parsed in
|
||
order to configure SinqHM automatically.
|
||
\item {\em bootUtil\/} is a TCP/IP server program which allows a remote
|
||
client to display and modify the MVME-1603 boot configuration
|
||
over the network rather than via
|
||
a `dumb' terminal connection to COM1. {\em bootUtil\/}
|
||
is not needed for normal SinqHM operation.
|
||
\item This {\em Lwl\/} information is instrument dependent. It indicates
|
||
the signals which must be present at the multi-detector
|
||
interface for an event to be accepted and histogrammed.
|
||
\item This and the following messages are generated by SinqHM{\usc}srv
|
||
in response to a configure request.
|
||
\end{enumerate}
|
||
If one interrupts the VxWorks boot procedure as described in Note 1, one
|
||
obtains the VxWorks boot prompt. Issuing a \sfbf{p} command lists the
|
||
settings of the boot parameters, e.g.
|
||
\begin{verbatim}
|
||
[VxWorks Boot]: p
|
||
|
||
boot device : dc
|
||
processor num : 0
|
||
host name : pss123
|
||
file name : /home/pss123/aco/sinqhm/wind/SinqHM/DMC/vxWorks_auto
|
||
inet on e'net : 129.129.62.101:ffff0000
|
||
host inet (h) : 129.129.40.123
|
||
user (u) : sinqhm
|
||
flags (f) : 0x8
|
||
target name : lnse01
|
||
other (o) : sp=SinqHM/cfg=HM_DIG,400\end{verbatim}%
|
||
%
|
||
The boot parameters may be changed by issuing a \sfbf{c} command and
|
||
following the dialogue, e.g.
|
||
\begin{verbatim}
|
||
[VxWorks Boot]: c
|
||
|
||
'.' = clear field; '-' = go to previous field; ^D = quit
|
||
|
||
boot device : dc
|
||
processor num : 0
|
||
host name : pss123
|
||
file name : /home/pss123/aco/sinqhm/wind/SinqHM/DMC/vxWorks_auto
|
||
inet on e'net : 129.129.62.101:ffff0000
|
||
inet on b'pl :
|
||
host inet (h) : 129.129.40.123
|
||
gateway inet :
|
||
user (u) : sinqhm
|
||
ftp password (blank = use rsh):
|
||
flags (f) : 0x8
|
||
target name : lnse01
|
||
startup scr :
|
||
other (o) : sp=boo..400 sp=SinqHM/cfg=HM_DIG,512\end{verbatim}%
|
||
%
|
||
In the above dialogue, all prompts were answered with a
|
||
\verb#<Return># except for the {\em other\/} prompt. Here, the
|
||
default histogram size was changed to 512 bins and the
|
||
spawning of the {\em bootUtil\/} utility was removed.
|
||
|
||
Having changed the boot parameters, the VxWorks system can be booted by
|
||
hitting \verb#<Ctrl-X>#.
|
||
%
|
||
\section{VxWorks Host Computer Setup}
|
||
% =====================================
|
||
%
|
||
\label{VxWorks-Host-Setup}
|
||
%
|
||
The VxWorks operating system is booted from a file belonging to user {\em
|
||
sinqhm\/} on computer {\em pss123.psi.ch}. There are 2 files on this
|
||
computer which must be set up before the target can be booted.
|
||
|
||
%
|
||
\subsection{The {\em /etc/hosts\/} File}
|
||
% ========================================
|
||
%
|
||
\label{etc-hosts}
|
||
%
|
||
All target hosts must be entered into the file: \\[1.0ex]
|
||
%
|
||
\hspace*{15mm} \sfbf{/etc/hosts} \\[1.0ex]
|
||
%
|
||
on computer {\em pss123.psi.ch}. The following are some examples of
|
||
entries in this file:\\[1.0ex]
|
||
\texttt{%
|
||
\hspace*{15mm}129.129.62.101~~lnse01\\
|
||
\hspace*{15mm}129.129.62.102~~lnse02\\
|
||
\hspace*{15mm}129.129.62.103~~lnse03\\
|
||
\hspace*{15mm}129.129.62.104~~lnse04\\
|
||
\hspace*{15mm}\\
|
||
\hspace*{15mm}192.168.11.4~~~~lnse04.vme~~~~}\verb#\#\texttt{\\
|
||
\hspace*{15mm}192.168.11.5~~~~lnse05.vme~~~~~>} ~~ See
|
||
Section~\ref{FOCUS-setup}\\
|
||
\texttt{%
|
||
\hspace*{15mm}192.168.11.6~~~~lnse06.vme~~~~/}\\[1.0ex]
|
||
%
|
||
\hspace*{-5mm}\textbf{Note:} One needs {\em root\/} privilege to edit this
|
||
file.
|
||
%
|
||
\subsection{The {\em .rhosts\/} File}
|
||
% =====================================
|
||
%
|
||
All target hosts must also be entered into the proxy definition file:
|
||
\\[1.0ex]
|
||
%
|
||
\hspace*{15mm} \sfbf{/home/pss123/aco/sinqhm/.rhosts} \\[1.0ex]
|
||
%
|
||
on computer {\em pss123.psi.ch}. This is in the home directory of user
|
||
{\em sinqhm}. The following are some examples of entries in this
|
||
file:\\[1.0ex]
|
||
\texttt{%
|
||
\hspace*{15mm}lnse01~~sinqhm\\
|
||
\hspace*{15mm}lnse02~~sinqhm\\
|
||
\hspace*{15mm}lnse03~~sinqhm\\
|
||
\hspace*{15mm}\\
|
||
\hspace*{15mm}lnse04~~~~~~sinqhm~~}\verb#\#\texttt{\\
|
||
\hspace*{15mm}lnse04.vme~~sinqhm~~~}\verb#\#\texttt{\\
|
||
\hspace*{15mm}lnse05~~~~~~sinqhm~~~~}\verb#\# ~~ See
|
||
Section~\ref{FOCUS-setup}\\
|
||
\texttt{%
|
||
\hspace*{15mm}lnse05.vme~~sinqhm~~~~/\\
|
||
\hspace*{15mm}lnse06~~~~~~sinqhm~~~/\\
|
||
\hspace*{15mm}lnse06.vme~~sinqhm~~/}
|
||
%
|
||
\subsection{Special Considerations for FOCUS}
|
||
% =============================================
|
||
%
|
||
\label{FOCUS-setup}
|
||
The FOCUS detector consists of 383 detectors connected to 3 histogram
|
||
memories in a single VME crate. Only one of the histogram memories is
|
||
connected to the PSI-wide Ethernet. Communication with the other 2
|
||
modules is via the VME bus and a so-called VME bus shared memory network.
|
||
The module
|
||
with the Ethernet connection acts as an Internet router from the PSI
|
||
Internet domain, 129.129.xxx.xxx, to the Class C network, 192.168.11.xxx,
|
||
which operates over the backplane.
|
||
This configuration requires special setup as described in this
|
||
section.
|
||
|
||
The network connections for FOCUS are as shown in the figure:
|
||
\begin{verbatim}
|
||
+----------------+ +----------------+
|
||
| pss123 | | lnsa12 |
|
||
| 129.129.40.123 | | 129.129.56.231 |
|
||
+-------+--------+ +-------+--------+
|
||
| |
|
||
| Ethernet |
|
||
---------+--+-------------------------------------------+---------
|
||
|
|
||
|
|
||
+-------+--------+ +----------------+ +----------------+
|
||
| 129.129.62.104 | | | | |
|
||
| lnse04 | | lnse05.vme | | lnse06.vme |
|
||
| 192.168.11.4 | | 192.168.11.5 | | 192.168.11.6 |
|
||
+-------+--------+ +-------+--------+ +-------+--------+
|
||
| | |
|
||
| | |
|
||
-----+----------------------+----------------------+---
|
||
VME
|
||
\end{verbatim}
|
||
It is necessary to declare that {\em lnse04} is the router for {\em
|
||
lnse05.vme} and {\em lnse06.vme} on both the VxWorks boot server, {\em
|
||
pss123}, and on the FOCUS host computer, {\em lnsa12}. This requires {\em
|
||
root} privilege. The details are described in the following two
|
||
sub-sections.
|
||
|
||
\subsubsection{Setup for FOCUS on {\em pss123}}
|
||
% ===============================================
|
||
%
|
||
One should first check that the Internet addresses for the 3 histogram
|
||
memory modules are defined in the {\em /etc/hosts} file,
|
||
as shown in Sect.~\ref{etc-hosts}. The command:\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{route~~add~~net~~192.168.11.0~~129.129.62.104~~1}
|
||
\\[1.0ex]
|
||
%
|
||
will then set up the necessary routing. In order to set the
|
||
routing automatically whenever the computer is rebooted, it is
|
||
necessary to add a startup file to the Unix boot
|
||
procedure. According to the documentation, this is supposed to
|
||
be possible via the {\em /etc/gateways} file. Unfortunately, the
|
||
author was unable to get this to work and therefore the
|
||
following, somewhat more complicated, method was necessary.
|
||
|
||
During the boot procedure, Unix proceeds through several phases
|
||
and, in each phase, a series of scripts is executed. The routing
|
||
information must be added in Phase~2, after the {\em inet}
|
||
subsystem has been started. The scripts which are executed in
|
||
Phase~2 have names of the form:\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{/etc/rc2.d/Snn*}\\[1.0ex]
|
||
%
|
||
where {\em nn} is a number in the range 01 to 99. The scripts
|
||
are executed in numerical order. On the current {\em pss123}
|
||
system, the {\em inet} subsystem is started up in script {\em
|
||
S69inet}. The file:\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{/etc/rc2.d/S69z-inet-D.Maden}\\[1.0ex]
|
||
%
|
||
has therefore been created containing the command:\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{/usr/sbin/route add net 192.168.11.0
|
||
129.129.62.104 1}\\[1.0ex]
|
||
%
|
||
Because the file name is alphabetically after {\em S69inet},
|
||
this script is executed after the {\em inet} subsystem has been
|
||
started, as required.
|
||
|
||
In order to check that the route has been defined correctly, one
|
||
may issue the command:\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{netstat -r}\\[1.0ex]
|
||
%
|
||
One should obtain output of the form:
|
||
\begin{verbatim}
|
||
Routing Table:
|
||
Destination Gateway Flags Ref Use Interface
|
||
-------------------- -------------------- ----- ----- ------ ---------
|
||
...
|
||
192.168.11.0 lnse04 UG 0 84
|
||
...
|
||
\end{verbatim}
|
||
%
|
||
\subsubsection{Setup for FOCUS on {\em lnsa12}}
|
||
% ===============================================
|
||
%
|
||
One should first check that the Internet addresses for the 3 histogram
|
||
memory modules are defined in the {\em /etc/hosts} file,
|
||
as shown in Sect.~\ref{etc-hosts}. The command:\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{route~~add~~-net~~192.168.11.0~~129.129.62.104}
|
||
\\[1.0ex]
|
||
%
|
||
will then set up the necessary routing. In order to set the
|
||
routing automatically whenever the computer is rebooted, it is
|
||
necessary to add a startup file to the Unix boot
|
||
procedure. According to the documentation, this is supposed to
|
||
be possible via the {\em /etc/gateways} file. Unfortunately, the
|
||
author was unable to get this to work and therefore the
|
||
following, somewhat more complicated, method was necessary.
|
||
|
||
During the boot procedure, Unix proceeds through several phases
|
||
and, in each phase, a series of scripts is executed. The routing
|
||
information must be added in Phase~3, after the {\em inet}
|
||
subsystem has been started. The scripts which are executed in
|
||
Phase~3 have names of the form:\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{/sbin/rc3.d/Snn*}\\[1.0ex]
|
||
%
|
||
where {\em nn} is a number in the range 01 to 99. The scripts
|
||
are executed in numerical order. On the current {\em lnsa12}
|
||
system, the {\em inet} subsystem is started up in script {\em
|
||
S55inetd}. The file:\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{/sbin/rc3.d/S55z-inetd-D.Maden}\\[1.0ex]
|
||
%
|
||
has therefore been added to this directory containing the
|
||
command:\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{/sbin/route add -net 192.168.11.0 129.129.62.104
|
||
}\\[1.0ex]
|
||
%
|
||
Because the file name is alphabetically after {\em S55inetd},
|
||
this script is executed after the {\em inet} subsystem has been
|
||
started, as required.
|
||
|
||
In order to check that the route has been defined correctly, one
|
||
may issue the command:\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{netstat -r}\\[1.0ex]
|
||
%
|
||
One should obtain output of the form:
|
||
\begin{verbatim}
|
||
Routing tables
|
||
Destination Gateway Flags Refs Use Interface
|
||
Netmasks:
|
||
...
|
||
192.168.11 lnse04 UGS 0 347 tu0
|
||
...
|
||
\end{verbatim}
|
||
%
|
||
\section{SinqHM Software}
|
||
% =========================
|
||
%
|
||
\label{SinqHM-Soft}
|
||
%
|
||
The master copy of the SinqHM software resides on the computer
|
||
{\em lnsa15.psi.ch\/} as module {\em sinqhm} of a CVS\footnote{{\em
|
||
CVS\/} is a code management
|
||
system.} repository. A working copy of the current SinqHM software can
|
||
be obtained by logging in to the LNS CVS repository
|
||
(See~\cite{LNS-CVS}) and issuing the command:\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{cvs export -D today sinqhm}\\[1.0ex]
|
||
%
|
||
In order to compile and link SinqHM, it is necessary to use a computer
|
||
on which the VxWorks cross-development software has been installed.
|
||
This is {\em pss123.psi.ch\/} and the user account is {\em sinqhm},
|
||
whose home directory, \sf{\$HOME}, is: \\[1.0ex]
|
||
%
|
||
\hspace*{15mm} /home/pss123/aco/sinqhm \\[1.0ex]
|
||
%
|
||
The build procedure involves the copying of the
|
||
SinqHM source files from working copy to {\em pss123}, compiling and
|
||
linking them and then merging the resultant object files into a VxWorks
|
||
system image.
|
||
|
||
\noindent The main components of the software are:
|
||
\begin{itemize}
|
||
\item the VxWorks operating system image;
|
||
\item the SinqHM histogram memory server, {\em SinqHM{\usc}srv\/};
|
||
\item the SinqHM auto-configure utility, {\em
|
||
SinqHM{\usc}bootParamsConfig\/};
|
||
\item a fibre-optic test generator server, {\em lwl{\usc}server\/};
|
||
\item a boot-line configuration server, {\em
|
||
SinqHM{\usc}bootUtil} and
|
||
\item the SinqHM server-server for FOCUS, {\em FOCUS{\usc}srv}.
|
||
\end{itemize}
|
||
These are described in the following sub-sections.
|
||
%
|
||
\subsection{The VxWorks Operating System}
|
||
% =========================================
|
||
%
|
||
\label{VxWorks-os}
|
||
%
|
||
There is a VxWorks system image file for each instruments called:
|
||
\\[1.0ex]
|
||
%
|
||
\hspace*{15mm} \texttt{\$HOME/wind/SinqHM/$<$instr$>$/vxWorks{\usc}auto}
|
||
\\[1.0ex]
|
||
%
|
||
where \texttt{$<$instr$>$} is either \texttt{"DMC"}, \texttt{"SANS"},
|
||
\texttt{"FOCUS"}, \texttt{"HRPT"}, \texttt{"TRICS"},
|
||
\texttt{"POLDI"}, \texttt{"AMOR"} or
|
||
\texttt{"Devel"}\footnote{\texttt{"Devel"}
|
||
is a directory where test versions of SinqHM may be built.}. These
|
||
are VxWorks system images into which the four or five
|
||
SinqHM utility programs
|
||
have been loaded and code has been added to the VxWorks startup so that
|
||
{\em SinqHM{\usc}bootParamsConfig\/} is started automatically once
|
||
the system has been booted. Copies of the source code used to build
|
||
the instrument specific system images are also kept in the same directory
|
||
as the image, viz. \texttt{\$HOME/wind/SinqHM/$<$instr$>$}.
|
||
|
||
In addition, there is a VxWorks system image file common to all
|
||
instruments called:
|
||
\\[1.0ex]
|
||
%
|
||
\hspace*{15mm} \texttt{\$HOME/wind/SinqHM/vxWorks{\usc}basic}
|
||
\\[1.0ex]
|
||
%
|
||
This is a basic VxWorks system with no user application
|
||
software installed. After it has been booted, one must use the VxWorks
|
||
Tornado {\em shell\/}
|
||
to load and start the SinqHM software as described in
|
||
Section~\ref{manual-start}. It is intended for debugging the
|
||
SinqHM software.
|
||
|
||
The system images were originally created interactively
|
||
using the WindCFG Tornado
|
||
utility (see Chapter 8 of Ref.~\cite{Tornado-Users} on {\em Target
|
||
Configuration\/}). The current procedure, however, is to use the
|
||
{\em bld\/} script described in Appendix~\ref{bld-script}. The remainder
|
||
of this section describes these two procedures. Beware that there
|
||
are some possible problems with the {\em bld\/} script as noted
|
||
in the warnings in the text.
|
||
|
||
The WindCFG configuration names for the system images are
|
||
\texttt{SinqHM} for the basic system and
|
||
\texttt{SinqHM{\usc}spawn{\usc}$<$instr$>$} for each of the
|
||
instruments. All
|
||
have the same \mbox{VxWorks} options included, viz:
|
||
\begin{center}\begin{tabular}%
|
||
{@{}l@{\hspace{1mm}}l@{\hspace{1mm}}l@{\hspace{1mm}}l@{}}
|
||
BOOTP & NETWORK & SIGNALS & WDB{\usc}CTXT \\
|
||
CONSTANT{\usc}RDY{\usc}Q & NET{\usc}INIT & SM{\usc}NET & WDB{\usc}DIRECT{\usc}CALL \\
|
||
ENV{\usc}VARS & NET{\usc}SHOW & STDIO & WDB{\usc}EVENTS \\
|
||
EXC{\usc}HANDLING & PIPES & TASK{\usc}HOOKS & WDB{\usc}EXC{\usc}NOTIFY \\
|
||
EXC{\usc}TASK & POSIX{\usc}SIGNALS & TASK{\usc}VARS & WDB{\usc}EXIT{\usc}NOTIFY \\
|
||
FLOATING{\usc}POINT & POSIX{\usc}TIMERS & TFTP{\usc}CLIENT & WDB{\usc}FUNC{\usc}CALL \\
|
||
FORMATTED{\usc}IO & PROXY{\usc}CLIENT & TIMEX & WDB{\usc}GOPHER \\
|
||
FTP{\usc}SERVER & RAMDRV & TTY{\usc}DEV & WDB{\usc}MEM \\
|
||
IO{\usc}SYSTEM & SELECT & WATCHDOGS & WDB{\usc}REG \\
|
||
LOGGING & SEM{\usc}BINARY & WDB & WDB{\usc}TTY{\usc}TEST \\
|
||
MEM{\usc}MGR{\usc}FULL & SEM{\usc}COUNTING & WDB{\usc}BANNER & WDB{\usc}VIO \\
|
||
MSG{\usc}Q & SEM{\usc}MUTEX & WDB{\usc}BP \\
|
||
\end{tabular}\end{center}
|
||
%
|
||
In addition, the \texttt{SinqHM{\usc}spawn{\usc}$<$instr$>$}
|
||
configurations have the first four\footnote{The {\em
|
||
FOCUS{\usc}srv} module has not been included in the VxWorks
|
||
systems by means of WindCFG.} SinqHM
|
||
modules included and the {\em edit\/} button is used to define symbol
|
||
\texttt{SINQHM{\usc}SPAWN} in the {\em config.h\/} file. This causes the
|
||
auto-configure module, {\em SinqHM{\usc}bootParamsConfig}, to get
|
||
spawned automatically at the end of the boot
|
||
procedure and this, in its turn, uses the {\em other\/}
|
||
field from the boot
|
||
parameters to spawn and configure the other modules. The full build
|
||
procedure is described in the comments in the file: \\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\$HOME/wind/ppc/target/config/all/usrConfig.c
|
||
\\[1.0ex]
|
||
%
|
||
For completeness, these comments are reproduced here:
|
||
|
||
\begin{verbatim}
|
||
/*
|
||
** This file should be copied to the VxWorks directory tree, e.g:
|
||
** pss123> set src = "lnslib@lnsa15:sinqhm/"
|
||
** pss123> rcp -p "${src}usrConfig.c" \
|
||
** $HOME/wind/ppc/target/config/all/usrConfig.c
|
||
** pss123> rcp -p "${src}bld" $HOME/wind/SinqHM/bld
|
||
**
|
||
** The system images are:
|
||
**
|
||
** $HOME/wind/SinqHM/vxWorks_basic
|
||
** $HOME/wind/SinqHM/<instr>/vxWorks_auto
|
||
**
|
||
** Using the Tornado tools:
|
||
** =======================
|
||
** To build the system image WITHOUT the SinqHM modules:
|
||
** a) Start WindCFG with no target selected. <== see Note 1
|
||
** b) Select the "mv1603" BSP.
|
||
** c) Select configuration "SinqHM"
|
||
** d) Start up the editor and ensure that "SINQHM_SPAWN"
|
||
** is either not defined or is defined to be 0.
|
||
** e) Select the Build option.
|
||
** f) Copy file vxWorks to $HOME/wind/SinqHM/vxWorks_basic.
|
||
**
|
||
** To build the system image WITH the SinqHM modules:
|
||
** a) Start WindCFG with no target selected. <== see Note 1
|
||
** b) Select the "mv1603" BSP.
|
||
** c) Select configuration "SinqHM_spawn_<instr>".
|
||
** d) Start up the editor and ensure that "SINQHM_SPAWN"
|
||
** is defined to be non-zero, e.g:
|
||
** #define SINQHM_SPAWN 1
|
||
** e) Select the Build option.
|
||
** f) Copy file $HOME/wind/ppc/target/config/mv1603/vxWorks
|
||
** to $HOME/wind/SinqHM/<instr>/vxWorks_auto.
|
||
**
|
||
** Using the bld script:
|
||
** ====================
|
||
** To build system images using the bld script:
|
||
**
|
||
** a) without the SinqHM modules:
|
||
** pss123> $HOME/wind/SinqHM/bld basic
|
||
** b) with the SinqHM modules:
|
||
** pss123> bld <instr> all
|
||
**
|
||
** Warnings:
|
||
** The bld script will only work if SINQHM_SPAWN is NOT
|
||
** defined in $HOME/wind/ppc/target/config/mv1603/config.h
|
||
**
|
||
** When using the bld script, be sure that the file
|
||
** $HOME/wind/ppc/target/config/mv1603/configdb.h
|
||
** is set to select the correct VxWorks options. It is
|
||
** easiest to use the Tornado WindCFG tool to do this.
|
||
*/ \end{verbatim}%
|
||
\hspace*{-5mm}\textbf{Note:}
|
||
\begin{enumerate}
|
||
\item This step is important because the SinqHM boot files do not
|
||
reside in the usual VxWorks directory tree. If the VxWorks
|
||
Tornado Launcher has a target processor selected when
|
||
WindCFG is started, WindCFG assumes that the directory
|
||
tree in which the target's boot file is located is the one
|
||
which it should use. As a result, it is
|
||
unable to find the BSPs\footnote{{\em BSP\/} = Board
|
||
Support Package.} which it needs for building system images.
|
||
If, on the other hand, the Launcher has {\em no\/} target
|
||
processor selected when WindCFG is started, WindCFG will use
|
||
the \texttt{WIND{\usc}BASE} environment variable to locate
|
||
the directory tree and it will be able to find the BSPs.
|
||
Unfortunately, there is no {\em Target-deselect\/} option
|
||
in the Launcher. It may therefore be necessary to quit the
|
||
Launcher and to restart it in order to be able to use WindCFG.
|
||
\end{enumerate}
|
||
%
|
||
\subsection{The SinqHM Histogram Memory Server}
|
||
% ===============================================
|
||
%
|
||
The SinqHM histogram memory server, {\em SinqHM{\usc}srv}, is the
|
||
central item
|
||
of the histogramming memory system in the MVME-1603. It normally runs
|
||
under the name {\em hmRoot2400}. Once configured (see
|
||
Sect.~\ref{auto-config}), it spawns a background task, {\em hmFill2400},
|
||
which reads data from the multi-detector interface via the PMC card and
|
||
fills
|
||
histograms appropriately. It then listens for TCP/IP connections from
|
||
clients and responds to any requests received. \\[1.0ex]
|
||
%
|
||
{\em SinqHM{\usc}srv\/} is built from the following source files: \\[1.0ex]
|
||
%
|
||
\hspace*{\fill} \begin{tabular}{ll}
|
||
SinqHM{\usc}srv{\usc}main.c & - the main program of
|
||
{\em SinqHM{\usc}srv}.\\
|
||
SinqHM{\usc}srv{\usc}filler.c & - the histogram filler.\\
|
||
SinqHM{\usc}srv{\usc}server.c & - the server program.\\
|
||
SinqHM{\usc}srv{\usc}routines.c & - miscellaneous routines.\\
|
||
SinqHM{\usc}def.h & - header file defining symbols and
|
||
structures.\\
|
||
SinqHM{\usc}gbl.h & - header file defining global
|
||
variables.\\
|
||
vmio10{\usc}def.h & - header file defining symbols for
|
||
the VMIO10 module.
|
||
\end{tabular} \hspace*{\fill} \\[1.0ex]
|
||
%
|
||
These files are compiled and linked using the script {\em bld} via
|
||
the command: \\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{\$HOME/wind/SinqHM/bld $<$instr$>$
|
||
SinqHM{\usc}srv} \\[1.0ex]
|
||
%
|
||
which generates the object module\footnote{Note that there are 2
|
||
directories in each instrument's base directory called
|
||
\texttt{OLD} and \texttt{NEW}. It is assumed that the released
|
||
version of SinqHM for an instrument resides in its base
|
||
directory. The {\em bld} script uses the \texttt{NEW} directory
|
||
as its working directory. When the new version is to be
|
||
released, the files in the base directory should be moved to
|
||
the \texttt{OLD} directory and then the files from \texttt{NEW}
|
||
can then be copied to the base directory.}\\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{\$HOME/wind/SinqHM/$<$instr$>$%
|
||
/NEW/SinqHM{\usc}srv.o} \\[1.0ex]
|
||
%
|
||
This can be loaded into VxWorks and started.
|
||
\noindent When the {\em SinqHM{\usc}srv\/} process is created via the
|
||
VxWorks {\em taskSpawn\/} function, up to 10 arguments, \verb#<arg1>#
|
||
\ldots \verb#<arg10>#, may be specified. The following are used by {\em
|
||
SinqHM{\usc}srv\/}: \\[1.0ex]
|
||
\hspace*{\fill}\begin{tabular}{llp{91mm}}
|
||
\texttt{$<$arg1$>$} & \texttt{$<$port$>$} & The TCP/IP port number to
|
||
be used for listening for connections
|
||
from clients. Default = 2400. \\
|
||
\texttt{$<$arg2$>$} & \texttt{$<$use-level-gen$>$} & If non-zero, the
|
||
SinqHM {\em Filler\/} process will
|
||
use a VMIO10 module for
|
||
generating signals so that its speed
|
||
may be measured on an
|
||
oscilloscope. Default = 0. \\
|
||
\texttt{$<$arg3$>$} & \texttt{$<$base-addr$>$} & The VME base address
|
||
of the VMIO10 module. Default = 0x1900.
|
||
\\
|
||
\texttt{$<$arg10$>$} & \texttt{$<$suspend$>$} & If non-zero, {\em
|
||
SinqHM{\usc}srv\/} will immediately
|
||
suspend itself
|
||
as soon as it starts. This is intended
|
||
for debug purposes.
|
||
\end{tabular}\hspace*{\fill}
|
||
%
|
||
\subsection{The SinqHM Auto-configure Utility}
|
||
% ==============================================
|
||
%
|
||
\label{auto-config}
|
||
%
|
||
The SinqHM auto-configure utility, {\em SinqHM{\usc}bootParamsConfig}, is
|
||
a program which will analyse the {\em other\/} field of the boot setup of
|
||
the processor and configure {\em SinqHM{\usc}srv\/} accordingly. It is an
|
||
optional module whose use is intended to simplify the start-up of {\em
|
||
SinqHM{\usc}srv\/} in cases where SinqHM is being used without a data
|
||
acquisition
|
||
computer\footnote{Normally, SinqHM is configured prior to data acquisition
|
||
via software such as SICS, the SINQ Instrument Control System,
|
||
which is running on the data acquisition computer.}. The
|
||
syntax of the {\em other\/} field is described in
|
||
Appendix~\ref{other}. The way in which the {\em other\/} field is specified
|
||
is described in Section~\ref{PPC-Soft-Setup}.
|
||
|
||
\noindent {\em SinqHM{\usc}bootParamsConfig\/} is built from the following
|
||
source files: \\[1.0ex]
|
||
%
|
||
\hspace*{\fill} \begin{tabular}{ll}
|
||
SinqHM{\usc}bootParamsConfig.c & - the main program. \\
|
||
SinqHM{\usc}def.h & - header file defining symbols and
|
||
structures.
|
||
\end{tabular} \hspace*{\fill} \\[1.0ex]
|
||
%
|
||
The program is compiled via the command: \\[1.0ex]
|
||
%
|
||
\verb# ccvx -I${WIND_BASE}/target/config/all SinqHM_bootParamsConfig.c#
|
||
|
||
\noindent which generates the object module {\em
|
||
SinqHM{\usc}bootParamsConfig.o}. This can be loaded into VxWorks and
|
||
started. {\em ccvx\/} is an alias defined in the {\em sinqhm\/}
|
||
login script as:\begin{verbatim}
|
||
alias ccvx 'ccppc -O0 -mcpu=603 -I${WIND_BASE}/target/h ' \
|
||
'-fno-builtin -fno-for-scope -nostdinc ' \
|
||
'-DCPU=PPC603 -D_GNU_TOOL -gdwarf -c -Wimplicit'\end{verbatim}
|
||
|
||
\noindent When the {\em SinqHM{\usc}bootParamsConfig\/} process is created
|
||
via the VxWorks {\em taskSpawn\/} function\footnote{This normally happens
|
||
via code which has been added to the {\em usrConfig.c\/} file, but the
|
||
program may also be
|
||
started manually via the Tornado WindSh utility for debugging
|
||
purposes.}, up to
|
||
10 arguments, \verb#<arg1># \ldots
|
||
\verb#<arg10>#, may be specified. Only \verb#<arg1># is used by
|
||
{\em SinqHM{\usc}bootParamsConfig\/} as follows: \\[1.0ex]
|
||
\hspace*{\fill}\begin{tabular}{llp{90mm}}
|
||
\texttt{$<$arg1$>$} & \texttt{$<$port$>$} & The TCP/IP port number to
|
||
be used for connecting to SinqHM when
|
||
issuing the SQHM{\usc}CONFIG command.
|
||
No default is allowed. The value of
|
||
2400 should usually be specified.
|
||
\end{tabular}\hspace*{\fill}
|
||
%
|
||
\subsection{The Test Generator Server}
|
||
% ======================================
|
||
%
|
||
The Test Generator Server, {\em lwl{\usc}server}, is a program which can
|
||
run in the Power-PC processor and which can be used to generate a data
|
||
stream into the fibre-optic input channel of SinqHM via a Histogram
|
||
Test-generator Module. The data to be
|
||
written to the module is created by an interactive client program running
|
||
elsewhere and connecting to {\em lwl{\usc}server\/} via TCP/IP sockets.
|
||
It is an optional module whose use is intended to facilitate the
|
||
debugging of {\em SinqHM{\usc}srv}.
|
||
|
||
\noindent {\em lwl{\usc}server\/} is built from the following
|
||
source files: \\[1.0ex]
|
||
%
|
||
\hspace*{\fill} \begin{tabular}{ll}
|
||
lwl{\usc}server.c & - the main program. \\
|
||
vmio10{\usc}def.h & - header file defining symbols for
|
||
VMIO10 VME modules.
|
||
\end{tabular} \hspace*{\fill} \\[1.0ex]
|
||
%
|
||
The program is compiled via the command: \\[1.0ex]
|
||
%
|
||
\verb# ccvx lwl_server.c#
|
||
|
||
\noindent which generates the object module {\em
|
||
lwl{\usc}server.o}. This can be loaded into VxWorks and
|
||
started. {\em ccvx\/} is an alias defined as shown in
|
||
Section~\ref{auto-config}.
|
||
|
||
\noindent When the {\em lwl{\usc}server\/} process is created via the
|
||
VxWorks {\em taskSpawn\/} function, up to 10 arguments, \verb#<arg1>#
|
||
\ldots \verb#<arg10>#, may be specified. The following are used by {\em
|
||
lwl{\usc}server\/}: \\[1.0ex]
|
||
\hspace*{\fill}\begin{tabular}{llp{90mm}}
|
||
\texttt{$<$arg1$>$} & \texttt{$<$port$>$} & The TCP/IP port number to
|
||
be used for listening for connections
|
||
from clients. Default = 3501. \\
|
||
\texttt{$<$arg2$>$} & \texttt{$<$base-addr$>$} & The VME base address
|
||
of the Histogram Test-generator Module.
|
||
Default = 0x1800. \\
|
||
\texttt{$<$arg3$>$} & \texttt{$<$verbose$>$} & If non-zero, {\em
|
||
lwl{\usc}server\/} generates extra
|
||
messages via the COM1 console port of
|
||
the MVME-1603. \\
|
||
\texttt{$<$arg10$>$} & \texttt{$<$suspend$>$} & If non-zero, {\em
|
||
lwl{\usc}server\/} will immediately
|
||
suspend itself
|
||
as soon as it starts. This is intended
|
||
for debug purposes.
|
||
\end{tabular}\hspace*{\fill}
|
||
%
|
||
\subsection{The {\em SinqHM{\usc}bootUtil\/} Server}
|
||
% ====================================================
|
||
%
|
||
The {\em SinqHM{\usc}bootUtil\/} server is a program which can
|
||
run in the Power-PC processor and which can be used to display and
|
||
modify the boot parameters of the Power-PC via a client program running
|
||
remotely. The Power-PC can also be rebooted via the
|
||
{\em SinqHM{\usc}bootUtil\/}
|
||
server. It is an optional module whose use is intended to allow
|
||
the configuration of a Power-PC's boot parameters in cases where
|
||
the more usual method via a `dumb' terminal connected to its COM1 port,
|
||
as described in Section~\ref{PPC-Soft-Setup}, is not convenient.
|
||
|
||
\noindent {\em SinqHM{\usc}bootUtil\/} is built from the following
|
||
source files: \\[1.0ex]
|
||
%
|
||
\hspace*{\fill} \begin{tabular}{ll}
|
||
SinqHM{\usc}bootUtil.c & - the main program. \\
|
||
SinqHM{\usc}def.h & - header file defining symbols and
|
||
structures.
|
||
\end{tabular} \hspace*{\fill} \\[1.0ex]
|
||
%
|
||
The program is compiled via the command: \\[1.0ex]
|
||
%
|
||
\verb# ccvx -I${WIND_BASE}/target/config/all SinqHM_bootUtil.c#
|
||
|
||
\noindent which generates the object module {\em
|
||
SinqHM{\usc}bootUtil.o}. This can be loaded into VxWorks and
|
||
started. {\em ccvx\/} is an alias defined as shown in
|
||
Section~\ref{auto-config}.
|
||
|
||
\noindent When the {\em SinqHM{\usc}bootUtil\/} process is created via the
|
||
VxWorks {\em taskSpawn\/} function, up to 10 arguments, \verb#<arg1>#
|
||
\ldots \verb#<arg10>#, may be specified. The following are used by {\em
|
||
SinqHM{\usc}bootUtil\/}: \\[1.0ex]
|
||
\hspace*{\fill}\begin{tabular}{llp{90mm}}
|
||
\texttt{$<$arg1$>$} & \texttt{$<$port$>$} & The TCP/IP port number to
|
||
be used for listening for connections
|
||
from clients. Default = 2300. \\
|
||
\texttt{$<$arg10$>$} & \texttt{$<$suspend$>$} & If non-zero, {\em
|
||
SinqHM{\usc}bootUtil\/} will immediately
|
||
suspend itself
|
||
as soon as it starts. This is intended
|
||
for debug purposes.
|
||
\end{tabular}\hspace*{\fill}
|
||
%
|
||
\section{Starting SinqHM Manually}
|
||
% ==================================
|
||
%
|
||
\label{manual-start}
|
||
%
|
||
This section describes the manual loading and startup of the SinqHM
|
||
software. It is presented in check-list form, assuming some familiarity
|
||
with the VxWorks Tornado cross-development system. The reader is referred
|
||
to the Tornado User's Guide \cite{Tornado-Users} for more information.
|
||
\begin{enumerate}
|
||
%
|
||
\item It is assumed in the following that the Power-PC boot parameters
|
||
have been configured so that the boot file is
|
||
the basic VxWorks system image, \texttt{vxWorks{\usc}basic},
|
||
described in Section~\ref{VxWorks-os} and
|
||
that the Power-PC has been freshly booted. When debugging, it is
|
||
recommended to reboot the Power-PC rather than to try simply to reload
|
||
the software. This is because the TCP/IP ports are not automatically
|
||
released when a module is reloaded. Reloaded software modules will
|
||
therefore generally fail at the call to the {\em bind\/} function.
|
||
%
|
||
\item From a terminal with X-windows support, login to {\em pss123\/} as
|
||
user {\em sinqhm\/} and change the default directory: \\[1.0ex]
|
||
%
|
||
\verb# cd $HOME/wind/SinqHM/DMC/NEW#
|
||
%
|
||
\item Start the Tornado launcher\footnote{If one is logged-in to
|
||
{\em pss123\/} from a Unix workstation, it may be necessary to issue
|
||
the command \texttt{"xhost pss123"} on the workstation before the
|
||
Tornado launcher can be started.} via a command of the form: \\[1.0ex]
|
||
%
|
||
\verb# launch -fg black &#
|
||
%
|
||
\item If necessary, select the launcher's menu item
|
||
``\texttt{Target/Create ...}'' and create a {\em Target Server\/} for the
|
||
target processor. The only item in the {\em Create Target Server\/} form
|
||
which needs to be specified is ``\texttt{Target name or IP address}''.
|
||
As a result of typing the target's name into this item, the entry in
|
||
``\texttt{Target server launch command}'' should read
|
||
``\verb#tgtsvr <target-name>#''. None of the other check marks need to
|
||
be selected. The {\em Target Server\/} can then be started by clicking the
|
||
{\em Launch\/} button. The name of the target should then appear in the
|
||
list of targets in the Tornado Launcher window.
|
||
%
|
||
\item Select the target in the list of targets in the Tornado Launcher
|
||
window by clicking on it.
|
||
%
|
||
\item Start a WindSh tool for the target processor by clicking
|
||
the {\em WindSh\/} button. A WindSh window should
|
||
appear and the VxWorks shell prompt, ``\verb#->#'' should be displayed.
|
||
%
|
||
\item Load the SinqHM modules into the VxWorks system via the commands:
|
||
\\[1.0ex]
|
||
%
|
||
\verb# -> ld < SinqHM_srv.o# \\
|
||
\verb# -> ld < lwl_server.o# \\
|
||
\verb# -> ld < SinqHM_bootParamsConfig.o# \\
|
||
\verb# -> ld < SinqHM_bootUtil.o# \\[1.0ex]
|
||
%
|
||
Note that these commands assume that the default directory has been set
|
||
correctly in Step~2 above. Otherwise, the object files must be prefixed
|
||
with the appropriate directory path.
|
||
%
|
||
\item If it is desired to debug one of the SinqHM modules, it is now
|
||
possible to start the module in the suspended state via the WindSh
|
||
spawn-and-suspend command, {\em sps}, e.g. \\[1.0ex]
|
||
%
|
||
\verb# -> sps lwl_server, 3501, 0x1800, 0# \\[1.0ex]
|
||
%
|
||
The meanings of the arguments for the various modules are given in
|
||
Section~\ref{SinqHM-Soft}. One can now start the Tornado debugger, {\em
|
||
CrossWind}, attach to the suspended task and debug it interactively.
|
||
Note that the program counter of the task will initially be in the
|
||
{\em suspend\/} routine of the operating system. The easiest way to get to
|
||
the start of the program's code is by issuing the \sfbf{s} command to
|
||
the debugger.
|
||
%
|
||
\item Alternatively, the programs may be started normally via the normal
|
||
VxWorks spawn function, {\em taskSpawn}, e.g. \\[1.0ex]
|
||
%
|
||
\verb# -> taskSpawn "hmRoot2400", 100, 8, 20000, \# \\
|
||
\verb# SinqHM_srv, 2400, 0, 0x1900# \\[1.0ex]
|
||
%
|
||
The arguments preceding {\em SinqHM{\usc}srv\/} are standard VxWorks
|
||
defaults for priority, stack size, etc. The other arguments are as
|
||
defined in Section~\ref{SinqHM-Soft}.
|
||
%
|
||
\end{enumerate}
|
||
\newpage
|
||
%
|
||
\appendix
|
||
\section{The {\em bld\/} Script}
|
||
% ==============================
|
||
%
|
||
\label{bld-script}
|
||
%
|
||
The various components of SinqHM, including the bootable system images,
|
||
can be created using the {\em bld\/} script. For help on using the script,
|
||
simply enter the command \\[1.0ex]
|
||
%
|
||
\hspace*{15mm}\texttt{\$HOME/wind/SinqHM/bld h} \\[1.0ex]
|
||
%
|
||
A simplified version of the script is reproduced
|
||
below. The script is actually more complicated than illustrated on
|
||
account of checking for the correctness of the arguments.
|
||
\begin{verbatim}
|
||
#! /bin/csh
|
||
#-------------------------------------------------
|
||
# pss123:~sinqhm/wind/SinqHM/bld V01G
|
||
#
|
||
# Script to compile and link the SinqHM programs for vxWorks
|
||
#
|
||
set proc = "$0"
|
||
if (`expr match "$proc" "\/"` != 1) set proc = "./$0"
|
||
cd $proc:h # Move to bld's directory!
|
||
if ("$1" == "dmc") then
|
||
cd DMC/NEW <== See Note 1
|
||
set defn = '-DINST="DMC" -DDMC' <== See Note 2
|
||
else if ("$1" == "sans") then
|
||
\end{verbatim}
|
||
|
||
\vspace*{-3.5ex}\hspace*{15mm} \vdots \vspace*{-3.5ex}
|
||
\begin{verbatim}
|
||
endif
|
||
#
|
||
set src = "maden@lnsa04:sinqhm/"
|
||
#
|
||
printf "\nWorking directory is %s\n" "$cwd"
|
||
printf 'Source is "%s"\n\n' "$src"
|
||
#
|
||
alias ccvx 'ccppc -O0 -mcpu=603 -I${WIND_BASE}/target/h ' \
|
||
'-fno-builtin -fno-for-scope ' \
|
||
'-nostdinc -DCPU=PPC603 -D_GNU_TOOL -gdwarf -c -Wimplicit'
|
||
\end{verbatim}
|
||
|
||
\vspace*{-2.5ex}\hspace*{15mm} \vdots \vspace*{-2.5ex}
|
||
\begin{verbatim}
|
||
#-------------------------------------------------
|
||
echo "Building SinqHM_srv ..."
|
||
echo " Copying header files ..."
|
||
rcp -p "${src}SinqHM_gbl.h" ./SinqHM_gbl.h
|
||
rcp -p "${src}SinqHM_def.h" ./SinqHM_def.h
|
||
rcp -p "${src}vmio10_def.h" ./vmio10_def.h
|
||
echo " Copying source files ..."
|
||
rcp -p "${src}SinqHM_srv_main.c" ./SinqHM_srv_main.c
|
||
rcp -p "${src}SinqHM_srv_routines.c" ./SinqHM_srv_routines.c
|
||
rcp -p "${src}SinqHM_srv_filler.c" ./SinqHM_srv_filler.c
|
||
rcp -p "${src}SinqHM_srv_server.c" ./SinqHM_srv_server.c
|
||
#---------------------------------- (continued on next page) \end{verbatim}
|
||
\newpage \begin{verbatim}
|
||
#---------------------------------- (continuation of "bld")
|
||
echo " Compiling SinqHM ..."
|
||
ccvx $defn SinqHM_srv_main.c <== See Note 2
|
||
ccvx $defn SinqHM_srv_routines.c
|
||
ccvx $defn SinqHM_srv_filler.c
|
||
ccvx $defn SinqHM_srv_server.c
|
||
echo " Linking ..."
|
||
ldppc -o SinqHM_srv.o -r \
|
||
SinqHM_srv_main.o SinqHM_srv_routines.o \
|
||
SinqHM_srv_filler.o SinqHM_srv_server.o
|
||
echo " Done. Result is $cwd/SinqHM_srv.o"
|
||
#-------------------------------------------------
|
||
echo "Building lwl_server ..."
|
||
echo " Copying files ..."
|
||
rcp -p "${src}vmio10_def.h" ./vmio10_def.h
|
||
rcp -p "${src}lwl_server.c" ./lwl_server.c
|
||
echo " Compiling lwl_server.c ..."
|
||
ccvx lwl_server.c
|
||
echo " Done."
|
||
#-------------------------------------------------
|
||
echo "Building SinqHM_bootParamsConfig ..."
|
||
echo " Copying files ..."
|
||
rcp -p "${src}SinqHM_def.h" ./SinqHM_def.h
|
||
rcp -p "${src}SinqHM_bootParamsConfig.c" \
|
||
./SinqHM_bootParamsConfig.c
|
||
echo " Compiling SinqHM_bootParamsConfig.c ..."
|
||
ccvx -I${WIND_BASE}/target/config/all \
|
||
SinqHM_bootParamsConfig.c
|
||
echo " Done."
|
||
#-------------------------------------------------
|
||
echo "Building SinqHM_bootUtil ..."
|
||
echo " Copying files ..."
|
||
rcp -p "${src}SinqHM_def.h" ./SinqHM_def.h
|
||
rcp -p "${src}SinqHM_bootUtil.c" \
|
||
./SinqHM_bootUtil.c
|
||
echo " Compiling SinqHM_bootUtil.c ..."
|
||
ccvx -I${WIND_BASE}/target/config/all \
|
||
SinqHM_bootUtil.c
|
||
echo " Done."
|
||
#-------------------------------------------------
|
||
printf "\n\nBuilding vxWorks_auto system image ...\n\n"
|
||
set dflt = "$PWD"
|
||
cd $WIND_BASE/target/config/mv1603
|
||
echo " Default directory changed to: $PWD"
|
||
#
|
||
touch config.h # Force a complete re-compilation
|
||
#---------------------------------- (continued on next page) \end{verbatim}
|
||
\newpage \begin{verbatim}
|
||
#---------------------------------- (continuation of "bld")
|
||
set mods = ( \
|
||
../../../../SinqHM/SinqHM_srv.o \
|
||
../../../../SinqHM/lwl_server.o \
|
||
../../../../SinqHM/SinqHM_bootParamsConfig.o \
|
||
../../../../SinqHM/SinqHM_bootUtil.o )
|
||
make ADDED_CFLAGS=" -DSINQHM_SPAWN=1" \
|
||
ADDED_MODULES="$mods"
|
||
cp -p vxWorks $dflt/vxWorks_auto
|
||
cp -p vxWorks.sym $dflt/vxWorks.sym
|
||
echo " Done. Result is $dflt/vxWorks_auto"
|
||
#-------------------------------------------------
|
||
printf "Building vxWorks_basic system image ...\n\n"
|
||
cd $proc:h # Move to bld's directory!
|
||
set dflt = "$PWD"
|
||
cd $WIND_BASE/target/config/mv1603
|
||
echo " Default directory changed to: $PWD"
|
||
touch config.h # Force a complete re-compilation
|
||
|
||
make ADDED_CFLAGS=" -DSINQHM_SPAWN=0" \
|
||
ADDED_MODULES=""
|
||
cp -p vxWorks $dflt/vxWorks_basic
|
||
cp -p vxWorks.sym $dflt/vxWorks.sym
|
||
echo " Done. Result is $dflt/vxWorks_basic"\end{verbatim}%
|
||
\hspace*{-5mm}\textbf{Notes:}
|
||
\begin{enumerate}
|
||
\item {\em bld\/} changes to the instrument's \texttt{NEW} directory
|
||
for building instrument dependent modules.
|
||
\item {\em defn\/} supplies compile time definitions
|
||
to enable the selection of instrument specific code by
|
||
means of conditional compilation macros.
|
||
\end{enumerate}
|
||
\newpage
|
||
%
|
||
\section{The {\em other\/} Field}
|
||
% =================================
|
||
%
|
||
\label{other}
|
||
%
|
||
\vspace*{-2ex}
|
||
The {\em other\/} field of the boot setup of the Power-PC processor can be
|
||
used for specifying the default configuration of SinqHM. It can, for
|
||
example, be used to set a default histogramming mode and number of bins
|
||
per histogram. The procedure for setting up the {\em other\/} field is
|
||
described in Section~\ref{PPC-Soft-Setup}. The syntax of the field is
|
||
described in the comments in file {\em SinqHM{\usc}bootParamsConfig.c}.
|
||
These comments are reproduced here:
|
||
\vspace*{-2ex}
|
||
\begin{verbatim}
|
||
/*
|
||
** The "other" string may be specified as follows:
|
||
**
|
||
** <action>=<arg0>,..,<argn>/...
|
||
**
|
||
** There may be no white space characters in the string. Tokens
|
||
** in the string may be specified in upper or lower case.
|
||
**
|
||
** <action> may be "sp" for "Spawn a task"
|
||
** "sps" for "Spawn and suspend a task"
|
||
** "cfg" for "Configure SinqHM_srv"
|
||
** "wt" for "Wait"
|
||
**----------------------------------------------------
|
||
** If <action> = "sp" or "sps", then
|
||
**
|
||
** <arg0> = name of task to spawn. This may be:
|
||
** "SinqHM" for SinqHM_srv or
|
||
** "lwl" for lwl_server or
|
||
** "bootUtil" for SinqHM_bootUtil or
|
||
** "focus" for FOCUS_srv
|
||
** <arg1>,..<arg9> = integer args for the spawn, as follows:
|
||
**
|
||
** If <arg0> = "SinqHM"
|
||
** <arg1> = TCP/IP port number for server (dflt=2400).
|
||
** <arg2> = <use-level-gen> flag. If non-zero, then use level
|
||
** generator to generate timing signals (dflt=0).
|
||
** <arg3> = base address of VMIO10 level generator
|
||
** module (dflt=0x1900).
|
||
**
|
||
** If <arg0> = "lwl"
|
||
** <arg1> = TCP/IP port number for lwl_server (dflt=3501).
|
||
** <arg2> = base address of Histogram Test-generator
|
||
** module (dflt=0x1800).
|
||
** <arg3> = verbosity. If non-zero, be verbose (dflt=0).
|
||
**
|
||
** If <arg0> = "bootUtil"
|
||
** <arg1> = TCP/IP port number for SinqHM_bootUtil (dflt=2300).
|
||
**
|
||
** If <arg0> = "focus"
|
||
** <arg1> = name of hostM (Mittel-bank) (dflt=localhost).
|
||
** <arg2> = #-counters in Mittel-bank (dflt=151).\end{verbatim}
|
||
\newpage%
|
||
\begin{verbatim}
|
||
** <arg3> = name of hostO (Ober-bank) (dflt=lnse05.vme).
|
||
** <arg4> = #-counters in Ober-bank (dflt=117).
|
||
** <arg5> = name of hostU (Unter-bank) (dflt=lnse06.vme).
|
||
** <arg6> = #-counters in Unter-bank (dflt=116).
|
||
** <arg7> = Client-side TCP/IP port number (dflt=2500).
|
||
** <arg8> = Server-side TCP/IP port number (dflt=2400).
|
||
**
|
||
** In addition, <arg10> will be set to 0 for "sp" and 1 for
|
||
** "sps". SinqHM_srv, lwl_server and SinqHM_bootUtil will suspend
|
||
** themselves immediately if they find <arg10> is non-zero. This
|
||
** cooperation on the part of the spawned task is intended as a
|
||
** debugging aid.
|
||
**
|
||
** "SinqHM" and "SinqHM_bootUtil" will be spawned with priority
|
||
** 100, "lwl" with priority 250.
|
||
**
|
||
** Notes:
|
||
** a) Lower numbers imply higher priority.
|
||
** b) "SinqHM_Filler" also gets spawned with priority 250. It is
|
||
** important that "lwl" and "SinqHM_Filler" have the same
|
||
** priority.
|
||
**----------------------------------------------------
|
||
** If <action> = "cfg":
|
||
** <arg0> = HM_DIG, HM_PSD, TOF, HRPT or TRANS to specify the
|
||
** hist memory mode.
|
||
** <arg8> = sub-mode bits to "or" with <arg0> (dflt=0)
|
||
** <arg9> = TCP/IP port # of server (dflt=2400)
|
||
** And for <arg0> = HM_DIG or HRPT,
|
||
** <arg1> = # bins (no dflt)
|
||
** <arg2> = # histograms (dflt=1)
|
||
** <arg3> = bytes per bin (dflt=4)
|
||
** <arg4> = bin compression (dflt=0)
|
||
** <arg5> = first bin (dflt=0)
|
||
**
|
||
** And for <arg0> = TOF,
|
||
** <arg1> = # counters (no dflt)
|
||
** <arg2> = # bins per counter (no dflt)
|
||
** <arg3> = time_span_per_bin (no dflt)
|
||
** <arg4> = Start delay (dflt=0)
|
||
** <arg5> = # of first counter (dflt=0)
|
||
** <arg6> = bytes per bin (dflt=4)
|
||
**
|
||
** Note: The built-in "cfg" program can only define bins of equal
|
||
** width. For non-equal width bins, one must send the
|
||
** SQHM_CONFIG message to SinqHM_srv from a host computer.\end{verbatim}
|
||
\newpage%
|
||
\begin{verbatim}
|
||
**
|
||
** And for <arg0> = TRANS,
|
||
** <arg1> = #-buffers (dflt = 8)
|
||
** <arg2> = buff-size (dflt = 4096)
|
||
**
|
||
** And for <arg0> = HM_PSD, the arguments still need defining.
|
||
**----------------------------------------------------
|
||
** If <action> = "wt", then
|
||
**
|
||
** <arg0> = number of seconds to wait (may be useful for
|
||
** FOCUS startup).
|
||
**----------------------------------------------------
|
||
** For example:
|
||
**
|
||
** other = "sp=bootUtil/sp=SinqHM/cfg=HM_DIG,400"
|
||
**
|
||
** will cause bootUtil and SinqHM_srv to be automatically started
|
||
** after the system has been booted and will configure it in HM_DIG
|
||
** mode with a single histogram of 400 bins (as used for DMC).
|
||
**----------------------------------------------------
|
||
*/
|
||
\end{verbatim}
|
||
%
|
||
\newpage
|
||
%
|
||
\begin{thebibliography}{9}
|
||
\addcontentsline{toc}{section}{References}
|
||
|
||
\bibitem{Hist-Mem-Spec} D. Maden, PSI, May 1997 \\
|
||
{\em The SINQ Histogram Memory, SinqHM} \\
|
||
Project SINQ 891/MD36-701
|
||
|
||
\bibitem{MVME-1603} Motorola Inc, February 1995 \\
|
||
{\em MVME1603/MVME1604 Single Board Computer} \\
|
||
{\em Installation and Use\/} V1600-1A/IH1
|
||
|
||
\bibitem{Tornado-Users} Wind River Systems, December 1995 \\
|
||
{\em Tornade User's Guide (Unix Version)} \\
|
||
DOC-11033-ND-01
|
||
|
||
\bibitem{LNS-CVS} Mark K\"{o}nnecke, February 2000 \\
|
||
{\em The LNS CVS Repository} \\
|
||
Internal Note
|
||
|
||
\end{thebibliography}
|
||
\end{document}
|