EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: EPICS R3.14.9 and vxWorks
From: "Thompson, David H." <[email protected]>
To: Andrew Johnson <[email protected]>, "Williams Jr, Ernest L." <[email protected]>
Cc: "Kasemir, Kay" <[email protected]>, EPICS Core Talk <[email protected]>
Date: Wed, 11 Apr 2007 07:56:24 -0400
Always been my preference to embed the abstraction layer needed for DMA, vxStats and whatever in the BSP.  In reality it is hard to get in front of all this on a construction schedule, even tho it would be eaiser for all in the long run.  Bunches of ifdefs in module code are a sign that a wrong choice is being payed for over time.  There is also a school of thought that kernels should be only modified in ways that are supported by the WRS config tools, and that modifications to sources in the BSP should not be done. An alternative is to load a kernel specific epics support module post-boot and before any epics modules are loaded. That may be the best of all worlds, and we could share those between the labs.
 
 
We simulated an epics $SHARE modue that includes the loadable boot file, that could be spcified in the RELEASE file which would follow the proceedure as Andrew suggests, but then we chose to include the RULES_BUILD from the vxWorks module in the iocBoof/iocxxx/Makefile instead.  
A rule in the BSP's RULES_BUILD installs the symbolic links in the ioc's common boot directory for the kernel for booting.  It also make our versioning and roll back pretty easy.
 
I think Andrew's model for upgrading fits the configuration control discipline a lot better, you have separate releases anyway when you either change the epics release or the kernel release.

________________________________

From: Andrew Johnson [mailto:[email protected]]
Sent: Tue 4/10/2007 7:13 PM
To: Williams Jr, Ernest L.
Cc: Kasemir, Kay; Thompson, David H.; EPICS Core Talk
Subject: Re: EPICS R3.14.9 and vxWorks



Ernest L. Williams Jr. wrote:
>
> In the case of an ioc application, the application source code does not
> change between a vxWorks 5.5.x and vxWorks 6.x kernel.

Sure; in this case the branch would only be needed to give you the two
separate build trees, until you can get the vxWorks 5.5.x IOCs upgraded
to vxWorks 6.x - I'm assuming that this would be one of the main points
of introducing vxWorks 6 IOCs in the first place.  As I said, it also
gives the engineer responsible for the IOC area an incentive to upgrade
his/her IOCs quickly...

> However, in the case of a "share top" which contains drivers such as
> vxStats there will be an impact.  So, vxStats is riddle with "ifdefs" or
> a new branch is made.  In the case of vxStats we will be working on some
> abstraction layer to hide vxWorks API changes.

Actually I would expect vxStats to be the one support application that
really would have to be different for different versions of vxWorks,
since it probably relies on the OS APIs that tend to be on the fringes
of normal functionality and thus change between major versions.  The
advantage of starting a new IOC branch in this case is that you can link
to a completely different vxStats support application for vxWorks 6, and
you wouldn't need any of the ifdef stuff or an abstraction layer at all
(Actually you can do that with a different target architecture too, you
just have to create a configure/RELEASE.Common.vxWorks6-ppc604_long file
in each IOC area to override the configure/RELEASE setting).

> The compiler options are actually CPU specific and BSP specific.
> One example is the altivec support, but you already handle this with an
> altivec suffix in the target name.  I agree that the options may not be
> necessary always.

Adding the altivec really makes it a different CPU, so it has to be a
different target architecture.  I'd be interested in any other examples
you can find though.

- Andrew
--
The right to be heard does not automatically include
the right to be taken seriously. -- Hubert H. Humphrey




Replies:
Re: EPICS R3.14.9 and vxWorks Ralph Lange
References:
EPICS R3.14.9 and vxWorks Ernest L. Williams Jr.
Re: EPICS R3.14.9 and vxWorks Andrew Johnson
Re: EPICS R3.14.9 and vxWorks Ernest L. Williams Jr.
Re: EPICS R3.14.9 and vxWorks Andrew Johnson
Re: EPICS R3.14.9 and vxWorks Ernest L. Williams Jr.
Re: EPICS R3.14.9 and vxWorks Andrew Johnson

Navigate by Date:
Prev: Re: EPICS R3.14.9 and vxWorks Andrew Johnson
Next: Re: EPICS R3.14.9 and vxWorks Ralph Lange
Index: 2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS R3.14.9 and vxWorks Andrew Johnson
Next: Re: EPICS R3.14.9 and vxWorks Ralph Lange
Index: 2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·