Table of Contents Previous Chapter Preface

Preface

1. Overview

This document describes the core software that resides in an Input/Output Controller (IOC), one of the major components of EPICS. The plan of the book is:

Chapter 1: EPICS OVERVIEW
An overview of EPICS is presented, showing how the IOC software fits into EPICS. This is the only chapter that discusses OPI software and Channel Access.
Chapter 2: IOC TEST FACILITIES
Test routines that can be executed via the vxWorks shell
Chapter 3: GENERAL PURPOSE FEATURES
General purpose tasks, and error handling conventions.
Chapter 4: DATABASE LOCKING, SCANNING, and PROCESSING
Overview of three closely related IOC concepts. It is given so that later chapters are more meaningful.
Chapter 5: STATIC DATABASE ACCESS
Database access library that works on Unix and vxWorks and on initialized or uninitialized EPICS databases.
Chapter 6: RUNTIME DATABASE ACCESS
The heart of the IOC software is the memory resident database. Rather then describing database structures first, the runtime database access routines are discussed. This is an easier way of understanding the capabilities of the database.
Chapter 7: DATABASE SCANNING
Database scan tasks, i.e. the tasks that request records to be processed.
Chapter 8: RECORD and DEVICE SUPPORT
The concepts of record and device support are discussed. This information is necessary for anyone who wishes to provide customized record and device support.
Chapter 9: DEVICE SUPPORT LIBRARY
A set of routines are provided so that device support modules can use shared resources such as VME address space.
Chapter 10: IOC DATABASE CONFIGURATION
Various ASCII definition files used by EPICS as well as the build utilities that read the ASCII files and turn them into files understood by EPICS. Anyone writing record and or device support must understand how to modify these ASCII files.
Chapter 11: IOC INITIALIZATION
A great deal happens at IOC initialization. This chapter takes some of the mystery from initialization.
Chapter 12: DATABASE STRUCTURES
A description of the internal database structures.
Other than the first chapter this document describes only core IOC software. Thus it does not describe other EPICS tools which run in an IOC such as the sequencer. It also does not describe Channel Access which is, of course, one of the major IOC components.

The reader of this manual should also have the following documents:

EPICS Record Reference Manual, Janet Anderson and Marty Kraimer

vxWorks Programmer's Guide, Wind River Systems

vxWorks Reference Manual, Wind River Systems

2. Acknowledgments

The basic model of what an IOC should do and how to do it were developed by Bob Dalesio at LANL/GTA. The principle ideas for Channel Access were developed by Jeff Hill of LANL/GTA. Bob and Jeff also were the principle implementers of the original IOC software. They developed this software over a period of several years with feedback from LANL/GTA users. Without their ideas EPICS would not exist.

During 1990 and 1991, ANL/APS undertook a major revision of the IOC software with the major goal being to provide easily extendible record and device support. Marty Kraimer (ANL/APS) was primarily responsible for designing the data structures needed to support extendible record and device support and for making the changes needed to the IOC resident software. Bob Zieman (ANL/APS) designed and implemented the UNIX build tools and IOC modules necessary to support the new facilities. Frank Lenkszus (ANL/APS) made extensive changes to the Database Configuration Tool (DCT) necessary to support the new facilities. Janet Anderson developed methods to systematically test various features of the IOC software and is the principal implementer of changes to record support.

Since 1991 many improvements and refinements have been made to the EPICS IOC software by people at APS, LANL, and other Sites.

Matt Needes implemented and supplied the description of fast database links and the database debugging tools.

 
Table of Contents Next Chapter