Greg's quick -n- EZ guide to epics 3.11.6
Updated 11/11/94
Greg's quick -n- EZ guide to epics 3.11.6 for application developers:
Note that this is for the Motorola MVME167 VME board.
This is a rough guide with the sole purpose of "getting you running".
If you have never used EPICS before 3.11.6, this guide might not help
a whole lot. If you see any corrections that need to be made, just
send them to me at: [email protected]
Happy developing!
Before we get started
---------------------
O.K. A few new things have been added to the whole environment,
so add the following line to your .cshrc file:
source /usr/local/epics/cshrc
If this next line doesn't exist already add it too:
set path = ( $path ./.epicsUnix/`arch`/bin)
Other than those two lines, your .cshrc file should be devoid
of the word epics.
"Getting" Epics Release
-----------------------
The directory you do the getrel in will be refered to as the >TOP<
directory.
/net/phebos/epics/R3.11.6/Unix/share/bin/getrel /net/phebos/epics/R3.11.6
Recall the list of important files:
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
IMPORTANT FILES * = Device Support ** = Record Support
--------------------------------------------------------
** dbRecType.ascii
* devSup.ascii
** choiceRec.ascii
** YYYYRecord.ascii
** choiceYYYY.h
* devZZZZ.c
** recYYYY.c
Note: The files with YYYY are required for each
type of record support. There may be more than
one kind in each makesdr.
Recall that you may not have any Record Support files.
Sometimes there is only device support to worry about.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In your >TOP< directory type:
apCreateTop
Edit the iocList file to include the ioc names you wish to boot
on.
As an example assume the ioc IOCNAME was added to the list.
Edit the appList file to include the application directory names
you wish to maintain.
For instance, I use a separate application directory for each
individual device ie. Digitel 500, GP307, etc..... This is
kind of overkill and involves some additional housekeeping,
but it helps me keep things straight.
Our example application will be refered to as EXAP
So, edit appList and add EXAP
These files exist naturally under SCCS control, so treat them as
such.
----------------------------------------------------
| *** Greg's quick -n- EZ quide to SCCS *** |
| |
| For all examples the name of the file is FILENAME. |
| |
| 1) To create SCCS management for a file not yet |
| under SCCS control (you will not need to do |
| this much as most files are already under SCCS |
| control. |
| |
| sccs create FILENAME |
| |
| 2) To "check out" a file for editing. |
| |
| sccs edit FILENAME |
| |
| 3) To "check in" a file after editing. |
| |
| sccs delget FILENAME |
| |
| (Don't forget a sensible comment line) |
| |
----------------------------------------------------
After editing appList and iocList, type:
apCreateApp
apCreateIocName
apFixLinks
In your >TOPTOP< directory type:
make world
Fix errors if necessary............. and make world again.
Now..... in your >TOPTOPTOP C to exit from this when
done making database directories.
Once this has been accomplished, things will work pretty much like
they always have.
1) Create a database:
Do this in your >TOPTOPTOP below with your actual application name
# replace <*Db> below with your actual database name
# NOTE: Change ioc bootline:
# to /vxWorksmv167
# the following should be loaded first - BEGIN
ld < targetmv167/iocCore
# Note: the drvSup file has the regular xycom bitbus driver in it.
# Note: the drvSupPEP file has the pep-modular bitbus driver in it.
# drvSupPEP will be the default
#ld < targetmv167/drvSup
ld < targetmv167/drvSupPEP
ld < targetmv167/devSup
ld < targetmv167/recSup
# the following should be loaded first - END
# load any other objects needed for ioc initialization here
# ex: ld < ../..//mv167/myobject.o
ld < ../../dig500App/mv167/devZZZZ.o
ld < ../../dig500App/mv167/recYYYY.o
dbLoad "../../default.dctsdr"
# load one or more databases here.
dbLoadRecords "../../EXAP/EXAPDb/EXDATBASE.db"
# NOTE: Currently resource.def is an optional parameter to iocInit
# ex: iocInit "resource.def"
iocInit "resource.def"
# coreRelease()
# optionally load any other objects
# ex: ld < ../..//mv167/myobject2.o
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3) Create MEDM displays:
Do this in your >TOPTOP