Hi Jason,
There are a few steps you are missing.
You have added the needed support modules to configure/RELEASE. But you have not actually linked your application with the libraries from those modules. To do that you need to do 2 things:
- Add the dbd files from those modules to your application's xxxInclude.dbd file.
- Add the libraries from those modules to your application's binary. This is done in the test2App/src/Makefile.
Basically the dbd file controls what library modules are actually needed, and the Makefile tells the system where to find those libraries.
You have loaded a record with device type ACROMAG-445. But the system needs to know how to find the needed support files for that.
Mark
________________________________
From: [email protected] on behalf of Jason Tiller
Sent: Fri 3/13/2009 9:38 PM
To: [email protected]
Subject: Utter Newbie: Can't get simple app going!
Hi, Everyone, :)
My name is Jason Tiller and I'm the newest software developer at SLAC
working on the photon-side control and DAQ systems on the LCLS. As
many of you probably know, we're using EPICS (3.14.9) for our control
applications. Iam, however, a complete newcomer to EPICS.
I've been tasked with a short-term project of writing an application
that measures the response time of a beamline shutter. Towards that
end, I tried to make a dead-simple IOC that is based on the example
IOC but adds a single PV for reading the state of an analog input from
an AcroMag IP445 ADC board. I can't for the life of me make this
work!
The target system is an MVME6100 (PowerPC) running RTEMS 4.7.1, but I
just want to load my database into a linux-x86 IOC for sanity-checking
purposes. Here are the steps I followed:
1. Generate the 'example' application, specifying linux-x86 as the
target platform:
makeBaseApp -t example test3
makeBaseApp -i -t example test3
2. Modify ./configure/RELEASE to include the modules required by the
IP445 driver. I added to RELEASE:
IPAC=$(EPICS_MODULES)/ipac/$(IPAC_MODULE_VERSION)
IP445=$(EPICS_MODULES)/xy2445/$(IP445_MODULE_VERSION)
3. Added a .substitutions file in test3App/Db to generate a record
for the IP445:
file "ip445.template"
{
pattern { DEV , CARD , PORT, CH, DESC , ZNAM , ONAM }
{ "XPP:PP:BO:SC", "bi0", 0 , 0 , "Shutter Control", "Open", "Closed" }
}
This is the resulting .db file:
record(bo, XPP:PP:BO:SC ) {
field(DESC, "Shutter Control")
field(DTYP, "ACROMAG-445")
field(OUT, "@bi0 P0 B0")
field(ZNAM, "Open")
field(ONAM, "Closed")
}
4. Modified test3App/Db/Makefile to expand this .substitutions file
into a .db file:
DB += test3.db
5. Built from <TOP>:
make
6. Modified iocBoot/ioctest3/st.cmd to load my one-record database:
dbLoadRecords("db/xppPP.db")
7. Run my IOC:
./st.cmd
I get an error in the dbLoadRecords line:
dbLoadRecords("db/xppPP.db")
filename="../dbLexRoutines.c" line number=955
Bad Field value dbPutStringError.
Parsing ')'
in file db/xppPP.db line 3
db_parse returned -1
Because my file is already expanded and contains no substitutions,
I think I can load it with dbLoadDatabase(). I tried that, but
the entire IOC died:
dbLoadDatabase("db/xppPP.db")
Thread _main_ (0x9a68098) can't proceed, suspending.
I've been beating my head against various combinations of these
problems for days now, with no end in sight.
Could anyone please throw some debugging ideas my way? I feel as
though I'm simply running in circles, and it's discouraging.
My grateful thanks in advance for any suggestions!
---Jason
Research Software Engineer
PPA Electrical & Software Engineering, LCLS
SLAC National Accelerator Laboratory
(650) 926-3445
- References:
- Utter Newbie: Can't get simple app going! Jason Tiller
- Navigate by Date:
- Prev:
Utter Newbie: Can't get simple app going! Jason Tiller
- Next:
Re: Utter Newbie: Can't get simple app going! Russell Kackley
- 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:
Utter Newbie: Can't get simple app going! Jason Tiller
- Next:
Re: Utter Newbie: Can't get simple app going! Russell Kackley
- 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
|