Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
rcgsoftdevguideCcode.dox 4.01 KiB
/*! \page devguidercg1 Real-time C Code Modules
\verbatim
This section provides a brief description of the various C code modules compiled with user apps to produce a runtime kernel object.
\endverbatim
\image html CcodeCompile.png "C Code Modules"
	
<b>Kernel Space Code Modules</b>

<b>Module Initialization</b>
- These files contain the main startup/initialization code. \n
    - moduleLoadIop.c   Code for production system IOP kernel object
    - moduleLoadApp.c   Code for production system User App kernel object
    - moduleLoadTS.c    Code for running IOP using Dolphin network timing

<b>Scheduler</b>
- These files contain the primary sequencer, or scheduler, code. \n
    - controllerIop.c   Code for production system IOP kernel object
    - controllerApp.c   Code for production system User App kernel object
    - controllerTS.c    Code for running IOP using Dolphin network timing
    - controllerCymac.c Code for running a standalone test system
    - controllerLR.c    Code for running with a long range PCIe extender

Further information can be found at <a href="https://dcc.ligo.org/cgi-bin/private/DocDB/ShowDocument?docid=7688">LIGO T0900607 aLIGO CDS Realtime Sequencer Software</a>

<b>User Space Code Modules</b>
    - rcguserIop.c          Main code for initializing user space IOP software
    - controllerIopUser.c   Main sequencer code for user space IOP

    - rcguser.c             Main code for initializing user space app software
    - controllerAppUser.c   Main sequencer code for user space app


<b>Digital Filtering</b>
- fm10Gen.c
	- Contains the standard IIR/FIR filter routines.
- epicsXfer.c
	- Provides for transfer of filter module data between the RT code and EPICS via shared memory.
- inputFilterModule.h
- inputFilterModule1.h

<b>Data Acquisition</b>
- daqLib.c
	- Routine for gathering DAQ and GDS TP data from RT code and passing to shared memory.

<b>PCIe Module Drivers</b>
- map.c  \n
- timing.c  \n
- accesDio24.c  \n
- accesIIRO8.c  \n
- accesIIRO16.c  \n
- contec1616.c  \n
- contec32o.c  \n
- contec6464.c  \n
- gsc16ai64.c  \n
- gsc16ao16.c  \n
- gsc18ao8.c  \n
- spectracomGPS.c \n
- symmetricomGps.c \n
- vmic5565.c \n


<b>Real-time Networking </b>
- commData3.c
- dolphin.c


<b>Support</b>
- crc.c
- susWatchdogFilters.c
*/

/*! \page devguideController Initialization and Timing Control Modules
This is documentation for controller.c and moduleLoad.c

*/
/*! \page devguideFilters Digital Filtering
This is documentation for: \n
fm10Gen.c  \n
epicsXfer.c \n
epicsXfer.c \n
inputFilterModule.c \n
inputFilterModule1.c \n

*/
/*! \page devguideDaq Data Acquisition
This is documentation for: \n
daqLib.c  \n
mx_stream.c  \n
*/
/*! \page devguideIod PCIe Module I/O Drivers
This is documentation for: \n
map.c  \n
timing.c  \n
accesDio24.c  \n
accesIIRO8.c  \n
accesIIRO16.c  \n
contec1616.c  \n
contec32o.c  \n
contec6464.c  \n
gsc16ai64.c  \n
gsc16ao16.c  \n
gsc18ao8.c  \n
spectracomGPS.c \n
symmetricomGps.c \n
vmic5565.c \n

*/
/*! \page devguideRtn Real-time Networking
This is documentation for: \n
commData2.c  \n
dolphin.c  \n
*/

/*! \page devguideHeaders Header Files
This is documentation for: \n
commData2.h  \n
controller.h  \n
feComms.h  \n
daqmap.h  \n
crc.h  \n
fmReadCoeff.h  \n
*/

/*! \page devguideepics EPICS State Notation Language (SNL) and C Files
A number of C code files are compiled and linked in with the model.st file to produce the final EPICS sequencer code to interface data between the RT code and EPICS database records.

	- <b> src/epics/util/skeleton.st </b> - Used as the base file for fmseq.pl to produce EPICS SNL code.
	- src/epics/seq/main.c	- Required startup routine for EPICS; modified to monitor alarms for GUARDIAN support.
	- src/drv/rfm.c  	- Provides routine for getting pointer to shared memory. \n
	- src/drv/param.c  	- Contains routines to read and load data from DAQ configuration (.ini) files. \n
	- src/drv/crc.c  		- Provides routines for performing CRC checksum calculations. \n
	- src/drv/fmReadCoeff.c 	- Provides routines for reading and loading IIR filter coefficients. \n

*/