On 05/01/2011 11:32 PM, Szalata, Zenon M. wrote:
Thank you Andrew, Eric and Till,
My thinking was to upgrade the existing IOCs and support modules
needed by those IOCS with minimum necessary modifications to avoid
altering functionality. Part of the problem is that the IOCs use
extensive and complicated sets of EPICS records, custom record types
for which support is built into the device drivers (support modules)
and I am not very familiar with the inner workings of all that. So, I
was thinking to do the transition in two steps; first to just get the
software upgraded and moved from the solaris platforms where the
software is presently maintained, the second would be to take one
system at a time and re-implement
^^^ please note that just 'OSIfying' a driver is a *much* easier
task (which can often be done by just using a set of macros
or sed scripts) than re-implementing a driver. Can usually be
achieved in a few hours.
- T.
all device drivers to be OSI as
needed, perhaps using asynPortDriver... I realize that once the first
step is completed successfully, the second step may never be taken.
Zen
-----Original Message----- From: Andrew Johnson
[mailto:[email protected]] Sent: Sunday, May 01, 2011 8:33 PM To:
[email protected] Cc: Szalata, Zenon M.; Straumann, Till
Subject: Re: EPICS task watch dog
Hi Zen,
On Sunday, May 01, 2011 21:38:53 Szalata, Zenon M. wrote:
Till, Thank you for your input. I understand your suggestion.
There is another related issue, which I am not sure about. In the
existing driver code, the task is created with a call to vxWorks
routine taskSpawn(...). Here is a code fragment:
Actually if you follow Till's suggestion properly you would replace
*all* the calls to vxWorks-specific routines in the driver with
their EPICS equivalents. Instead of taskSpawn() you use
epicsThreadCreate(), etc. This has the advantage that the
resulting code can be compiled for and will run on RTEMS, but it is
a bit more work since the EPICS versions are not all direct
replacements for their vxWorks counterparts. Eric Norum produced a
Wiki page describing the conversions of the various routines, which
you can read at this link:
http://www.aps.anl.gov/epics/wiki/index.php/How_to_make_your_EPICS_driv
er_operating_system_independent
If you don't want to put that much effort into this, on vxWorks you
can just cast an epicsThreadId into an integer for use as a task-id
in vxWorks routines and vice-versa. That is not possible on other
operating systems though.
HTH,
- Andrew (waiting for Obama's special news conference to start)
- References:
- EPICS task watch dog Szalata, Zenon M.
- Re: EPICS task watch dog Till Straumann
- RE: EPICS task watch dog Szalata, Zenon M.
- Re: EPICS task watch dog Andrew Johnson
- RE: EPICS task watch dog Szalata, Zenon M.
- Navigate by Date:
- Prev:
RE: EPICS task watch dog Szalata, Zenon M.
- Next:
EPICS on RTEMS crashing on CA access, due to GNU readline?!? Angus Gratton
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
RE: EPICS task watch dog Szalata, Zenon M.
- Next:
mca R7-0 Mark Rivers
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|