EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Compile Warning:"Device using undefined record type 'stringin', place-holder created
From: Mark Rivers <[email protected]>
To: 'Ricardo Herrero' <[email protected]>, "[email protected]" <[email protected]>
Date: Sat, 5 Aug 2017 17:17:57 +0000
Hi Ricardo,

I suspect you may have problems with the order in which you added files to your application dbd file.  It looks like your driver is based on areaDetector.  Does your IOC Makefile look like the following one from simDetector:

***************************************************
corvette:simDetectorIOC/simDetectorApp/src>more Makefile
TOP=../..
include $(TOP)/configure/CONFIG
#----------------------------------------
#  ADD MACRO DEFINITIONS AFTER THIS LINE

# The following gets rid of the -fno-implicit-templates flag on vxWorks,
# so we get automatic template instantiation.
# This is what we want for miscellaneous/asynPortDriver.cpp
ifeq (vxWorks,$(findstring vxWorks, $(T_A)))
CODE_CXXFLAGS=
endif

PROD_NAME = simDetectorApp
PROD_IOC = $(PROD_NAME)

# <name>.dbd will be created from <name>Include.dbd
DBD += $(PROD_NAME).dbd
$(PROD_NAME)_DBD += simDetectorSupport.dbd

# <name>_registerRecordDeviceDriver.cpp will be created from <name>.dbd
PROD_SRCS_DEFAULT += $(PROD_NAME)_registerRecordDeviceDriver.cpp $(PROD_NAME)Main.cpp
PROD_SRCS_vxWorks += $(PROD_NAME)_registerRecordDeviceDriver.cpp

PROD_LIBS += simDetector

include $(ADCORE)/ADApp/commonDriverMakefile

#=============================

include $(TOP)/configure/RULES
#----------------------------------------
#  ADD RULES AFTER THIS LINE
***************************************************

Note that it adds simDetectorSupport.dbd and then " include $(ADCORE)/ADApp/commonDriverMakefile".  commonDriverMakefile adds the other dbd files required to build the application.

Mark



-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Ricardo Herrero
Sent: Saturday, August 05, 2017 11:25 AM
To: [email protected]
Subject: Compile Warning:"Device using undefined record type 'stringin', place-holder created

Hello,

  I´m cross compiling from x86_64 linux to an ARM processor. I thought it 
was ok, as the executable was properly built. However I got this error 
when I was executing my IOC in the ARM processor:

dbLoadDatabase 
"/opt/epics/support/areaDetector/ADHA_1D/iocs/HA1DIOC/dbd/hpsfpga1dtest.dbd"
Declaration of recordtype(mbboDirect) preceeded full definition.
Error at or before "}" in file 
"/opt/epics/support/areaDetector/ADHA_1D/iocs/HA1DIOC/dbd/hpsfpga1dtest.dbd" 
line 119
hpsfpga1dtest_registerRecordDeviceDriver pdbbase
Warning: IOC is booting with TOP = 
"/opt/epics/support/areaDetector/ADHA_1D/iocs/HA1DIOC"
           but was built with TOP = 
"/home/rherrero/Documents/build/areadetector-bf48e03/ADHA_1D/iocs/HA1DIOC"
registerRecordDeviceDriver failed asyn
registerRecordDeviceDriver failed busy

Then I looked at strange messages from compilation and I have found 
this:

Device using undefined record type 'stringin', place-holder created
Device using undefined record type 'stringout', place-holder created
Device using undefined record type 'waveform', place-holder created
Device using undefined record type 'ai', place-holder created
Device using undefined record type 'ao', place-holder created
Device using undefined record type 'bi', place-holder created
Device using undefined record type 'bo', place-holder created
Device using undefined record type 'mbbi', place-holder created
Device using undefined record type 'mbbo', place-holder created
Device using undefined record type 'longin', place-holder created
Device using undefined record type 'longout', place-holder created
Device using undefined record type 'mbbiDirect', place-holder created
Device using undefined record type 'mbboDirect', place-holder created

It´s not very clear to me what´s happening here. I thought I have set up 
properly asyn path and busy path. What do you think I should check now? 
Maybe Makefile is not correct?
To include asyn in my makefile I used: ha1d_LIBS += asyn

Thanks for your help!!
Ricardo


-- 
Doctorando i2a2
Jefe de Area de Ingeniería de Sistemas - CEH- CEDEX

References:
Compile Warning:"Device using undefined record type 'stringin', place-holder created Ricardo Herrero

Navigate by Date:
Prev: Compile Warning:"Device using undefined record type 'stringin', place-holder created Ricardo Herrero
Next: CA monitoring weirdness for status/severity Hogben, Colin H
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Compile Warning:"Device using undefined record type 'stringin', place-holder created Ricardo Herrero
Next: CA monitoring weirdness for status/severity Hogben, Colin H
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024