Hi David,
On Thursday 30 October 2008 21:51:21 David Dudley wrote:
>
> As I understand things, I need to generate an IOC for my system that
> contains the sequencer program I wrote to perform some control on one of
> our systems.
>
> I have the sequencer program written, and it operates correctly.
I assume this means that you've been debugging the sequence program built as a
standalone executable, and you now want to build it into the IOC that it's
talking to.
> When I generated the sequencer program, I installed it inside the
> directory that contains all the other components of the system (in my
> case, it's </usr/local/EPICS>, and the sequencer source is in
> </usr/local/EPICSSRC/modules/soft/seq/seq> ).
>
> I'm having problems understanding how to create the IOC program with
> the sequencer component included.
You have to compile a .st (or .stt) file separately for use in an executable
and in an IOC, because the SNCFLAGS needed and hence the .c files generated
are different. In general you have to pick one or the other, but see below
if you need to build both at the same time from the same source file. You
should be able to compile the sequence program with flags appropriate for use
in an IOC in one module and then actually link it into the IOC in a different
module if that's what you're trying to do though.
> Any suggestions?
Take a look at the makeBaseApp template example, which shows how to build a
sequence program both ways. It may look like that is compiling two different
programs, but actually the sncProgram.st file merely contains a single line
that #includes the sncExample.stt file; that's the technique which allows you
to build both kinds of object from the same Makefile (the source files have
to have different base-names since that's how the build system knows which
SNCFLAGS settings to use). There are other ways to do that which generally
involve copying the source file to a new name using a private Makefile rule.
Make sure that you have SNCSEQ=/usr/local/EPICSSRC/modules/soft/seq/seq in the
configure/RELEASE file of both the module that contains the .st/.stt file and
the one where you're building the IOC. Your IOC needs it for the libraries
containing the sequencer, whereas the other needs it for access to the snc
compiler.
> Also, I frequently get a message "... too many open files" when I
> attempt to make the system.
I can only guess that your Makefile is somehow trying to include itself,
that's not an error I've ever seen. More information on the content of your
Makefile where this happens would elicit more help...
HTH,
- Andrew
--
Talk is cheap. Show me the code. -- Linus Torvalds
- References:
- Generating an IOC with SEQ logic in it. David Dudley
- Navigate by Date:
- Prev:
Re: Generating an IOC with SEQ logic in it. David Maden
- Next:
GPIB - asyn - streamdevice Szalata, Zenon M.
- 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: Generating an IOC with SEQ logic in it. David Maden
- Next:
GPIB - asyn - streamdevice Szalata, Zenon M.
- 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
|