Added dbd variable keyword.
Reorganized the later parts of the file, which were not well-structured HTML and which were causing problems with different versions of Amaya.
This commit is contained in:
@@ -18,18 +18,35 @@
|
||||
<h2>Changes since 3.14.2</h2>
|
||||
</center>
|
||||
|
||||
<h4>New keyword <code>variable()</code> supported in dbd files</h4>
|
||||
|
||||
<p>Database definition (.dbd) files can now contain declarations of simple
|
||||
static variables, a facility intended for driver debugging purposes. These
|
||||
<code>variable(name)</code> declarations are preserved by dbExpand, and will
|
||||
be converted by registerRecordDeviceDriver.pl into code that registers them
|
||||
with iocsh. The variables themselves must be defined in some existing C or
|
||||
C++ code and marked using the macro <code>epicsExportAddress(type,
|
||||
name)</code>. The initial implementation only supports integers, but other
|
||||
types will be added soon.</p>
|
||||
|
||||
<p><strong>macEnvExpand</strong></p>
|
||||
<p>Macro expansion using environment variables as macro definitions</p>
|
||||
|
||||
<p>Macro expansion using environment variables as macro definitions.</p>
|
||||
|
||||
<p><strong>iocsh var command</strong></p>
|
||||
|
||||
<p>For simple applications such as controlling the value of debugging flags.
|
||||
Devlopers with more complex expression handling requirements should consider
|
||||
use of the <strong>cexp</strong> package.
|
||||
use of the <strong>cexp</strong> package. The available variables are defined
|
||||
by the new <code>variable</code> dbd file keyword.</p>
|
||||
|
||||
<p><strong>iocshArgPersistentString</strong></p>
|
||||
<p>Tell iocsh to make a copy of the argument string before passing it to the handler function.</p>
|
||||
|
||||
<p>Tell iocsh to make a copy of the argument string before passing it to the
|
||||
handler function.</p>
|
||||
|
||||
<p><strong>epicsStrDup</strong></p>
|
||||
|
||||
<p>Operating-system independent replacement for strdup().</p>
|
||||
|
||||
<p><strong>epicsMessageQueue</strong></p>
|
||||
@@ -44,6 +61,8 @@ buffer. See the Application Developer's Guide (libCom OSI) for details.</p>
|
||||
epicsMessageQueue must be modified before they can be compiled and used with
|
||||
R3.14.3</p>
|
||||
|
||||
<h4>Error Message Logging</h4>
|
||||
|
||||
<p>A bug occurring only in Microsoft Windows port of the error message
|
||||
logging client was fixed. The symptoms were problems getting a Microsoft
|
||||
Windows based IOC to make entries in the log file.</p>
|
||||
@@ -150,12 +169,12 @@ macParseDefns was not correct.</p>
|
||||
<p>dbStaticLib and related programs now accept a new keyword in DBD files:</p>
|
||||
<pre>function(name)</pre>
|
||||
|
||||
<p>Where '<span style="font-family: courier">name</span>' is the name of a
|
||||
function with "C" linkage that is included in the IOC binary. This function
|
||||
will be automatically registered with the registry at the same time as the
|
||||
record/device/driver tables, and is intended to make using subroutine records
|
||||
much easier on non-vxWorks systems.. Prior R3.14 releases required there to
|
||||
be a static registration routine for such subroutines.</p>
|
||||
<p>Where <code>name</code> is the name of a function with "C" linkage that is
|
||||
included in the IOC binary. This function will be automatically registered
|
||||
with the registry at the same time as the record/device/driver tables, and is
|
||||
intended to make using subroutine records much easier on non-vxWorks
|
||||
systems.. Prior R3.14 releases required there to be a static registration
|
||||
routine for such subroutines.</p>
|
||||
|
||||
<p>dbStaticLib has two additional routines to support this, dbDumpFunction()
|
||||
and dbWriteFunctionFP(). dbDumpFunction has been added to the iocsh command
|
||||
@@ -169,8 +188,8 @@ errors are being reported.</p>
|
||||
|
||||
<p><strong>Solaris build requirement</strong></p>
|
||||
|
||||
<p><span style="font-family: courier">uname</span> must be defined for builds
|
||||
on solaris hosts because it is used to determine the solaris version.</p>
|
||||
<p><code>uname</code> must be defined for builds on solaris hosts because it
|
||||
is used to determine the solaris version.</p>
|
||||
|
||||
<p><strong>Linux build note</strong></p>
|
||||
|
||||
@@ -182,13 +201,9 @@ such absolute paths to the new make variable SHRLIB_SEARCH_DIRS
|
||||
|
||||
<p><strong>RULES.Db</strong></p>
|
||||
|
||||
<p>A <span style="font-family: courier">*[</span><span
|
||||
style="font-family: courier">nn</span><span
|
||||
style="font-family: courier">].</span><span
|
||||
style="font-family: courier">db</span> file will be created from an <span
|
||||
style="font-family: courier">*.template</span> and a <span
|
||||
style="font-family: courier">*[nn].substitutions</span> file ,where <span
|
||||
style="font-family: courier">nn</span> has a value between 0 and 99.</p>
|
||||
<p>A <code>*[nn].db</code> file will be created from an
|
||||
<code>*.template</code> and a <code>*[nn].substitutions</code> file ,where
|
||||
<code>nn</code> has a value between 0 and 99.</p>
|
||||
|
||||
<p><strong>Support for 64 bit long</strong></p>
|
||||
|
||||
@@ -426,9 +441,9 @@ value recGblSetSevr(psel,SOFT_ALARM,MAJOR_ALARM) is called.</p>
|
||||
<p><strong>cdCommands file</strong></p>
|
||||
|
||||
<p>Fixed a bug and revised the use of the IOCS_APPL_TOP setting in an
|
||||
application's <top>/configure/CONFIG file (which specifies the path to
|
||||
<top>as seen by the IOC) to apply the same modifications to all paths output
|
||||
in the cdCommands file.</p>
|
||||
application's <top>/configure/CONFIG file (which specifies the path to
|
||||
<top> as seen by the IOC) to apply the same modifications to all paths
|
||||
output in the cdCommands file.</p>
|
||||
|
||||
<p><strong>dbStaticLib</strong></p>
|
||||
|
||||
@@ -488,130 +503,140 @@ release.</p>
|
||||
Build modifications in alpha2 require the following changes to existing R3.14
|
||||
applications.
|
||||
<ul>
|
||||
<li> Remove the now unused RULES files</li>
|
||||
<li><ul>
|
||||
./configure/RULES.Db <br>
|
||||
./configure/RULES.registerRecordDeviceDriver <br>
|
||||
</ul>
|
||||
<li>Remove the now unused RULES files
|
||||
|
||||
<blockquote>
|
||||
./configure/RULES.Db<br>
|
||||
./configure/RULES.registerRecordDeviceDriver</blockquote>
|
||||
</li>
|
||||
<li>Delete the following line in ./configure/RULES
|
||||
<ul>
|
||||
<br>
|
||||
include $(TOP)/configure/RULES.registerRecordDeviceDriver</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li> In <top>/configure/Makefile change
|
||||
<ul>
|
||||
<br>
|
||||
@$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(T_A) $@ $(TOP)</ul>
|
||||
</li>
|
||||
to
|
||||
<ul>
|
||||
@$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(EPICS_HOST_ARCH) $(T_A) $@
|
||||
$(TOP) <br>
|
||||
</ul>
|
||||
and add the line
|
||||
<ul>
|
||||
<br>
|
||||
depends: install <br>
|
||||
</ul>
|
||||
to the bottom of the Makefile.
|
||||
<ul>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>In all *App/*Db/Makefileschange
|
||||
<ul>
|
||||
<br>
|
||||
include $(TOP)/configure/RULES.Db</ul>
|
||||
</li>
|
||||
to
|
||||
<ul>
|
||||
include $(TOP)/configure/RULES</ul>
|
||||
<li>In all *App/src/Makefile files
|
||||
<ul>
|
||||
</ul>
|
||||
</li>
|
||||
change DBDNAME = <name>App
|
||||
to DBD += <name>
|
||||
<ul>
|
||||
</ul>
|
||||
and remove the line <br>
|
||||
|
||||
<ul>
|
||||
DBDEXPAND = <name>Include.dbd <br>
|
||||
</ul>
|
||||
NOTE: If any of your *App/*Db/Makefiles contain "DBDNAME =" lines you
|
||||
should make these same changes in that *Db dirctory. <br>
|
||||
|
||||
<ul>
|
||||
<li>In all *App/src/Makefile Makefiles</li>
|
||||
</ul>
|
||||
<ul>
|
||||
</ul>
|
||||
change RECTYPES=<name>.h
|
||||
to DBDINC+=<name>
|
||||
<ul>
|
||||
</ul>
|
||||
change MENUS=<name>.h
|
||||
to DBDINC+=<name></ul>
|
||||
<ul>
|
||||
change BPTS
|
||||
to DBD
|
||||
|
||||
<p>change INSTALLDB
|
||||
to DB</p>
|
||||
<blockquote>
|
||||
include $(TOP)/configure/RULES.registerRecordDeviceDriver</blockquote>
|
||||
</li>
|
||||
<li>In <top>/configure/Makefile change
|
||||
|
||||
<p>change DBDINSTALL
|
||||
to DBD <br>
|
||||
</p>
|
||||
<blockquote>
|
||||
@$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(T_A) $@ $(TOP)</blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
@$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(EPICS_HOST_ARCH) $(T_A) $@
|
||||
$(TOP)</blockquote>
|
||||
and add the line
|
||||
|
||||
<blockquote>
|
||||
depends: install</blockquote>
|
||||
to the bottom of the Makefile.</li>
|
||||
<li>In all *App/*Db/Makefiles change
|
||||
|
||||
<blockquote>
|
||||
include $(TOP)/configure/RULES.Db</blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
include $(TOP)/configure/RULES</blockquote>
|
||||
</li>
|
||||
<li>In all *App/src/Makefile files change
|
||||
|
||||
<blockquote>
|
||||
DBDNAME = <name>App</blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
DBD += <name></blockquote>
|
||||
and remove the line<br>
|
||||
|
||||
|
||||
<blockquote>
|
||||
DBDEXPAND = <name>Include.dbd </blockquote>
|
||||
NOTE: If any of your *App/*Db/Makefiles contain "DBDNAME =" lines you
|
||||
should make these same changes in that *Db dirctory.</li>
|
||||
<li>In all *App/src/Makefile Makefiles change
|
||||
|
||||
<blockquote>
|
||||
RECTYPES=<name>.h </blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
DBDINC+=<name> </blockquote>
|
||||
change
|
||||
|
||||
<blockquote>
|
||||
MENUS=<name>.h </blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
DBDINC+=<name> </blockquote>
|
||||
change
|
||||
|
||||
<blockquote>
|
||||
BPTS </blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
DBD </blockquote>
|
||||
change
|
||||
|
||||
<blockquote>
|
||||
INSTALLDB </blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
DB </blockquote>
|
||||
change
|
||||
|
||||
<blockquote>
|
||||
DBDINSTALL </blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
DBD </blockquote>
|
||||
</li>
|
||||
<li>In all example *App/src/Makefile files change
|
||||
<ul>
|
||||
<br>
|
||||
example_SRCS_DEFAULT += registerRecordDeviceDriver.c</ul>
|
||||
|
||||
<blockquote>
|
||||
example_SRCS_DEFAULT += registerRecordDeviceDriver.c </blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
example_SRCS_DEFAULT += <name>_registerRecordDeviceDriver.cpp
|
||||
</blockquote>
|
||||
where <name> is the base name of a <name>.dbd file which was
|
||||
created from a <name>Include.dbd file and which will be loaded in a
|
||||
st.cmd or stcmd.host script (e.g. example).</li>
|
||||
<li>In ./iocBoot/ioc<name>/st.cmd files change
|
||||
|
||||
<blockquote>
|
||||
dbLoadDatabase("dbd/exampleApp.dbd") </blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
dbLoadDatabase("dbd/example.dbd") </blockquote>
|
||||
</li>
|
||||
to
|
||||
<ul>
|
||||
example_SRCS_DEFAULT += <name>_registerRecordDeviceDriver.cpp <br>
|
||||
</ul>
|
||||
where <name> is the base name of a <name>.dbd file which was
|
||||
created from a <name>Include.dbd file and which will be loaded in a
|
||||
st.cmd or stcmd.host script (e.g. example). <br>
|
||||
|
||||
<ul>
|
||||
<li>In ./iocBoot/ioc<name>/st.cmd files change</li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
<ul>
|
||||
dbLoadDatabase("dbd/exampleApp.dbd")</ul>
|
||||
to
|
||||
<ul>
|
||||
dbLoadDatabase("dbd/example.dbd") <br>
|
||||
</ul>
|
||||
<li>In <top>/iocBoot/ioc<name>/stcmd.host files change
|
||||
<ul>
|
||||
<br>
|
||||
dbLoadDatabase("../../dbd/exampleApp.dbd",0,0)</ul>
|
||||
|
||||
<blockquote>
|
||||
dbLoadDatabase("../../dbd/exampleApp.dbd",0,0)</blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
dbLoadDatabase("../../dbd/example.dbd",0,0)</blockquote>
|
||||
</li>
|
||||
to
|
||||
<ul>
|
||||
dbLoadDatabase("../../dbd/example.dbd",0,0)</ul>
|
||||
</ul>
|
||||
|
||||
<h3>EPICS_HOST_ARCH changes</h3>
|
||||
GNU compiler builds are now determined by the value of EPICS_HOST_ARCH and
|
||||
are no longer specified in CONFIG_SITE. All references to the ANSI
|
||||
(ACC/GCC) and CPLUSPLUS (CCC/G++) macros have been removed. <br>
|
||||
|
||||
|
||||
<p>GNU compiler builds are now determined by the value of EPICS_HOST_ARCH and
|
||||
are no longer specified in CONFIG_SITE. All references to the ANSI (ACC/GCC)
|
||||
and CPLUSPLUS (CCC/G++) macros have been removed.</p>
|
||||
|
||||
<h3>libCom</h3>
|
||||
Most of the library routines and files starting with the prefix osi have been
|
||||
changed to start with epics. Several also had major changes to their user
|
||||
interface. See the latest version of the Application Developer's Guide for
|
||||
details. <br>
|
||||
|
||||
|
||||
<p>Most of the library routines and files starting with the prefix osi have
|
||||
been changed to start with epics. Several also had major changes to their
|
||||
user interface. See the latest version of the Application Developer's Guide
|
||||
for details.</p>
|
||||
|
||||
<center>
|
||||
<h2>EPICS Release base 3.14.0alpha1 Notes</h2>
|
||||
@@ -625,35 +650,44 @@ iocCore on platforms besides vxWorks.</p>
|
||||
|
||||
<p>iocCore is now supported on the following platforms:</p>
|
||||
<ul>
|
||||
<li>vxWorks</li>
|
||||
<br>
|
||||
Tornado II is required.
|
||||
<ul>
|
||||
<li>RTEMS</li>
|
||||
</ul>
|
||||
<br>
|
||||
An open source real time operating system. It has been tested on MVME167
|
||||
and MC68360 processors. RTEMS also supports powerPC.
|
||||
<ul>
|
||||
<li>solaris</li>
|
||||
</ul>
|
||||
<br>
|
||||
Has been tested on solaris 2.6 and solaris 8 with Sun workshop 6.0 (C++
|
||||
5.2). Sun workshop 5.0 (C++ 5.0) will not compile this version of EPICS.
|
||||
<ul>
|
||||
<li>Linux</li>
|
||||
</ul>
|
||||
<br>
|
||||
Has been tested on Redhat x86 platforms.
|
||||
<ul>
|
||||
<li>winNT</li>
|
||||
</ul>
|
||||
<br>
|
||||
Testing has been done with visual C++ 6.0.</ul>
|
||||
A new version of the Application Developers Guide is available. The following
|
||||
gives links to the new Application Developer's Guide and to RTEMS information.
|
||||
<li>vxWorks
|
||||
|
||||
<p>http://www.aps.anl.gov/epics/modules/base/R3-14.php</p>
|
||||
<blockquote>
|
||||
Tornado II is required.</blockquote>
|
||||
</li>
|
||||
<li>RTEMS
|
||||
|
||||
<blockquote>
|
||||
An open source real time operating system. It has been tested on
|
||||
MVME167 and MC68360 processors. RTEMS also supports
|
||||
powerPC.</blockquote>
|
||||
</li>
|
||||
<li>solaris
|
||||
|
||||
<blockquote>
|
||||
Has been tested on solaris 2.6 and solaris 8 with Sun workshop 6.0 (C++
|
||||
5.2). Sun workshop 5.0 (C++ 5.0) will not compile this version of
|
||||
EPICS.</blockquote>
|
||||
</li>
|
||||
<li>Linux
|
||||
|
||||
<blockquote>
|
||||
Has been tested on Redhat x86 platforms.</blockquote>
|
||||
</li>
|
||||
<li>winNT
|
||||
|
||||
<blockquote>
|
||||
Testing has been done with visual C++ 6.0.</blockquote>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>A new version of the Application Developers Guide is available. The
|
||||
following gives links to the new Application Developer's Guide and to RTEMS
|
||||
information.</p>
|
||||
|
||||
<blockquote>
|
||||
<a
|
||||
href="http://www.aps.anl.gov/epics/modules/base/R3-14.php">http://www.aps.anl.gov/epics/modules/base/R3-14.php</a></blockquote>
|
||||
|
||||
<p>Most of the Application Developer's Guide has only minor changes. The
|
||||
following are new.</p>
|
||||
@@ -674,7 +708,8 @@ It must be emphasized that this is an alpha release.</p>
|
||||
<li>HPUX - No support currently because we could not find good support for
|
||||
multithreading.</li>
|
||||
</ul>
|
||||
Building Applications
|
||||
|
||||
<h4>Building Applications</h4>
|
||||
<ul>
|
||||
<li>For new applications see Chapters 2 (New Features) and Chapter 4 (Build
|
||||
Facility) of the Application Developer's Guide.</li>
|
||||
|
||||
Reference in New Issue
Block a user