This is "app" part.
The base address for SIAM card 0 is 0x300000, card 1 is at 0x300100,
card 2 at 0x300200, ..., card 16 at 0x301000. This is set in the
EPICS file module_types.h (See paragraph 3 below.) The db files in
this distribution assume that the SIAM card's base address is
0x300000 (card 0).
For most application areas, you may start at step 4 and end at step 8.5.
1) Build standard app: ".../site/appMakeDir
"
(for example, = siam, = mv167"
2) Move into and untar SIAM.Tar: " cd siam; tar xvpf SIAM.tar"
3) Your EPICS manager must modify your system's module_types.h
to include the SIAM definitions, and then rebuild iocCore.
It may be necessary to remove .../base/src/db/O.*/iocInit.o
to force a rebuild of that module.
The file module_types.h.portion contains the section which
must be changed (binary inputs). This may involve
integrating the SIAM changes into any local changes to
module_types.h.
4) Move into cat_ascii; insert the devSup.ascii.snippet into devSup.ascii
and the drvSup.ascii.snippet into drvSup.ascii where
appropriate (after "custom" ).
-- devSup.ascii.snippet --
"bi" VME_IO "devBiSIAM" "SIAM"
"bo" VME_IO "devBoSIAM" "SIAM"
"mbbiDirect" VME_IO "devMbbiDirectSIAM" "SIAM"
-- drvSup.ascii.snippet --
"drvSIAM"
5) Move into db; copy and modify card0_chname.tmpl and set D to your
card number and S to your subsystem. The OUT, LOC and STR
template variables are there for descriptive purposes
only. Feel free to modify them. Also the NAME field assigns a
PV name to each SIAM channel. You may change these as needed
to offer a better description of what the channel controls or
is connected to. Most important, the *SAFE* field, when it is
set to 1, tells us that the SIAM is used for safety
purposes. Please notify the Central Systems administrator,
Perry Anthony, if your SIAM is used as safety interlocks.
6) Move into cmd; add the following to db.cmd:
dbLoadTemplate("db/card0_chname.tmpl")
7) Move into dev; add the Makefile.Vx.snippet to the OBJS list in
Makefile.Vx; make symbolic links to ../../siam/dev/devBiSIAM.c,
../../siam/dev/devBoSIAM.c, and ../../siam/dev/devMbbiDirectSIAM.c.
-- dev/Makefile.Vx.snippet --
OBJS += devBiSIAM.o
OBJS += devBoSIAM.o
OBJS += devMbbiDirectSIAM.o
7) Move into drv; add the Makefile.Vx.snippet to the OBJS list in
Makefile.Vx; create a symbolic link to ../../siam/drv/drvSIAM.c.
-- drv/Makefile.Vx.snippet --
OBJS += drvSIAM.o
8) Execute site/appMakeDir. It should build devSup, drvSup,
default.dctsdr and default.sdrSum.
8.3) Reboot the IOC.
8.5) To test your SIAM, run dm siam_name.dl S=,D=
9) Move into dl; use adl2dl to convert Color.adl and then SIAM.adl and
SIAM_names.adl into .dl's. If you wish to use unique PV names per
channel, use adl2dl to convert Color_name.adl and then siam_names.adl
to .dl.
Proceed to "ioc" part. If your VxWorks kernel does not do A24/D32
accesses, you will have to build a new kernel per the notes in
SIAM_ioc_mods.