Hi All,
I am doing an experiment about global event timing system with the source code from this websitehttp://epics.svn.sourceforge.net/viewvc/epics/applications/trunk/mrfEventSystem/ ,my target is mvme5100 and server is RHEL4 with a vxWorks5.5.1 cross-compiler environment,the hardware is Event Generator 230 and Event Receiver 230.First I want to use mrfApp application to achieve the basic function of the timing system,but when loading the startup script,errors occur.It seems that he record/device support for EVG can't be recognized,while the supports for EVR are all right.
The error information is :
-> </home/wanglin/timingApp/iocBoot/iocmrf/st.cmd
## Example vxWorks startup file
## The following is needed if your board support package doesn't at boot time
## automatically cd to the directory containing its startup script
#cd "/home/wanglin/timingApp/iocBoot/iocmrf"
#< cdCommands
#< ../nfsCommands
cd "/home/wanglin/timingApp"
value = 0 = 0x0
## You may have to change mrf to something else
## everywhere it appears in this file
ld < bin/vxWorks-ppc604_long/mrfEgLib.munch
sysAtReboot not found. epicsExit will not be called by reboot.
value = 518713200 = 0x1eeaef70
ld < bin/vxWorks-ppc604_long/mrfErLib.munch
sysAtReboot not found. epicsExit will not be called by reboot.
value = 516383168 = 0x1ec761c0
rebootHookAdd (epicsExitCallAtExits)
value = 0 = 0x0
## This drvTS initializer is needed if the IOC has a hardware event system
#TSinit
## Register all support components
dbLoadDatabase("dbd/mrfEg.dbd")
value = 0 = 0x0
dbLoadDatabase("dbd/mrfEr.dbd")
value = 0 = 0x0
#dbLoadDatabase("dbd/mrfbase.dbd")
mrfEg_registerRecordDeviceDriver(pdbbase)
value = 0 = 0x0
mrfEr_registerRecordDeviceDriver(pdbbase)
value = 0 = 0x0
## Load record
## Set this to see messages from mySub
#mySubDebug = 1
dbLoadRecords("db/csnsEvg.db","SUBSYS=timing, DEVICE=test, CardNo=3")
value = 0 = 0x0
dbLoadRecords("db/csnsEvr.db", "SUBSYS=timing, DEVICE=test, No=0, PulseWidth=200
")
value = 0 = 0x0
#dbLoadRecords("db/dbExample2.db","user=epics,no=1,scan=1 second")
#dbLoadRecords("db/dbExample2.db","user=epics,no=2,scan=2 second")
#dbLoadRecords("db/dbExample2.db","user=epics,no=3,scan=5 second")
EgConfigure(0, 3, 0x280000)
value = 0 = 0x0
ErConfigureVME(0, 5, 0x300000, 0x62, 4)
value = 0 = 0x0
iocInit()
Starting iocInit
############################################################################
### EPICS IOC CORE built on Aug 15 2010
### EPICS R3.14.8.2 $R3-14-8-2$ $2006/01/06 15:55:13$
############################################################################
iocInit: driver drvMrf200Eg not found
iocInit record support for eg not found
iocInit record support for egevent not found
device support devEg not found
device support devEgEvent not found
missing record support entry table PV: timing:test:eg dbProcess
missing record support entry table PV: timing:test:egEvt:gunT dbProcess
missing record support entry table PV: timing:test:egEvt:ram0 dbProcess
iocInit: All initialization complete
value = 0 = 0x0
## Start any sequence programs
#seq &sncExample,"user=wanglin"
-> iocClockSyncWithNTPserver: sntpcTimeGet errno = 0x710003
-> dbl
timing:test:eg
timing:test:egEvt:gunT
timing:test:egEvt:ram0
timing:test:er
timing:test:erEvt:bkt0
timing:test:erEvt:gunT
timing:test:erEvt:kck
timing:test:erEvt:kly
timing:test:erEvt:ram0
value = 0 = 0x0
->
The Makefile in mrfApp/src/ is :
#------------------------------------------------------------------------------
# $(TIMING)/mrfApp/src/Makefile
#
# Author: Eric Bjorklund
# Date: 19 December 2005
#
#------------------------------------------------------------------------------
# This file contains the EPICS make rules and definitions for making and
# installing the driver support modules for the Micro-Research Finland
# Series 200 event receiver module.
#
#------------------------------------------------------------------------------
# Modification History:
#
# 19 Dec 2005 Bjo Original Release
# 21 Aug 2006 Saa Changes to build on RTEMS too.
# 30 Aug 2006 Bjo Add host-side fractional synthesizer routines.
#
#------------------------------------------------------------------------------
#---------------------
# Set up the Environment
#
TOP = ../..
SOURCE_DIR := $(patsubst %../.., %., $(TOP))
include $(TOP)/configure/CONFIG
include $(SOURCE_DIR)/MRF_CONFIG
INCLUDES += -I../os/$(OS_CLASS)
#USR_CFLAGS += -pedantic
USR_CFLAGS += -DDEBUG_PRINT
ifeq ($(EPICS_HOST_ARCH),$(T_A))
USR_CFLAGS += -DHOST_BUILD
endif
#---------------------
# Only build for "hardware" IOC's
#
ifneq ($(findstring Host, $(VALID_BUILDS)),)
VALID_BUILDS = Host
endif
#---------------------
# List all custom menu headers
#
CUSTOM_MENUS += menuACSync.h
CUSTOM_MENUS += menuEventClockSrc.h
CUSTOM_MENUS += menuEventEnable.h
CUSTOM_MENUS += menuLinkStatus.h
CUSTOM_MENUS += menuPolarity.h
CUSTOM_MENUS += menuSeqMode.h
CUSTOM_MENUS += menuSeqRam.h
CUSTOM_MENUS += menuTimeUnit.h
#---------------------
# Build the record support modules
#
CUSTOM_RECORDS += egRecord
CUSTOM_RECORDS += egeventRecord
CUSTOM_RECORDS += erRecord
CUSTOM_RECORDS += ereventRecord
#---------------------
# Install DBD files
#
DBD += mrfCommon.dbd
# wanglin 20100830
DBD += devMrfEgEvent.dbd
DBD += drvMrfEg.dbd
DBD += devMrfEg.dbd
DBD += mrfEg.dbd
DBD += drvMrfEr.dbd
DBD += devMrfEr.dbd
DBD += mrfEr.dbd
# wanglin 20100819
DBD += mrfbase.dbd
mrfbase_DBD += base.dbd
#---------------------
# Install DBD Header Files
#
DBDINC += $(CUSTOM_RECORDS)
DBDINC += $(CUSTOM_MENUS)
#---------------------
# Build the MRF Common Library
#
LIBRARY_IOC += mrfCommon
mrfCommon_OBJS += mrfFracSynth
mrfCommon_OBJS += mrfVme64x
mrfCommon_OBJS += $(CRCSR_PROBE_NAME)
OBJS_IOC += $(mrfCommon_OBJS)
#---------------------
# Build the Event Generator Library
#
PROD_IOC_vxWorks += mrfEgLib
LIBRARY_IOC += mrfEg
mrfEg_OBJS += drvMrfEg
mrfEg_OBJS += devMrfEg
#mrfEg_OBJS += devMrfEgEvent
mrfEg_OBJS += egRecord
mrfEg_OBJS += egeventRecord
mrfEgLib_OBJS += $(mrfEg_OBJS)
mrfEgLib_OBJS += $(mrfCommon_OBJS)
mrfEgLib_SRCS += mrfEg_registerRecordDeviceDriver.cpp
mrfEgLib_LIBS += $(EPICS_BASE_IOC_LIBS)
OBJS_IOC += $(mrfEg_OBJS)
#---------------------
# Build the Event Receiver Library
#
PROD_IOC_vxWorks += mrfErLib
LIBRARY_IOC += mrfEr
mrfEr_OBJS += drvMrfEr
mrfEr_OBJS += mrfPmc
mrfEr_OBJS += mrfPmcOSD
mrfEr_OBJS += devMrfEr
mrfEr_OBJS += erRecord
mrfEr_OBJS += ereventRecord
mrfErLib_OBJS += $(mrfEr_OBJS)
mrfErLib_OBJS += $(mrfCommon_OBJS)
mrfErLib_SRCS += mrfEr_registerRecordDeviceDriver.cpp
mrfErLib_LIBS += $(EPICS_BASE_IOC_LIBS)
OBJS_IOC += $(mrfEr_OBJS)
#---------------------
# Build the host-side utilities for creating and analyzing
# the fractional synthesizer control words.
#
PROD_HOST += FracSynthAnalyze
PROD_HOST += FracSynthControlWord
FracSynthAnalyze_OBJS += FracSynthAnalyze
FracSynthAnalyze_OBJS += mrfFracSynth
FracSynthControlWord_OBJS += FracSynthControlWord
FracSynthControlWord_OBJS += mrfFracSynth
#---------------------
# Install include files
#
INC += mrfCommon.h
INC += mrfVme64x.h
INC += mrfFracSynth.h
INC += drvMrfEg.h
INC += drvMrfEr.h
INC += devMrfEr.h
INC += debugPrint.h
#=======================================================================#
# RULES #
#=======================================================================#
#---------------------
# Generic EPICS build rules
#
include $(TOP)/configure/RULES
The start script st.cmd is :
## Example vxWorks startup file
## The following is needed if your board support package doesn't at boot time
## automatically cd to the directory containing its startup script
#cd "/home/wanglin/timingApp/iocBoot/iocmrf"
#< cdCommands
#< ../nfsCommands
cd "/home/wanglin/timingApp"
## You may have to change mrf to something else
## everywhere it appears in this file
ld < bin/vxWorks-ppc604_long/mrfEgLib.munch
ld < bin/vxWorks-ppc604_long/mrfErLib.munch
rebootHookAdd (epicsExitCallAtExits)
## This drvTS initializer is needed if the IOC has a hardware event system
#TSinit
## Register all support components
dbLoadDatabase("dbd/mrfEg.dbd")
dbLoadDatabase("dbd/mrfEr.dbd")
#dbLoadDatabase("dbd/mrfbase.dbd")
mrfEg_registerRecordDeviceDriver(pdbbase)
mrfEr_registerRecordDeviceDriver(pdbbase)
## Load record
## Set this to see messages from mySub
#mySubDebug = 1
dbLoadRecords("db/csnsEvg.db","SUBSYS=timing, DEVICE=test, CardNo=3")
dbLoadRecords("db/csnsEvr.db", "SUBSYS=timing, DEVICE=test, No=0, PulseWidth=20
")
#dbLoadRecords("db/dbExample2.db","user=epics,no=1,scan=1 second")
#dbLoadRecords("db/dbExample2.db","user=epics,no=2,scan=2 second")
#dbLoadRecords("db/dbExample2.db","user=epics,no=3,scan=5 second")
EgConfigure(0, 3, 0x280000)
ErConfigureVME(0, 5, 0x300000, 0x62, 4)
iocInit()
## Start any sequence programs
#seq &sncExample,"user=wanglin"
In additional :
[wanglin@timinglinux1 src]$ grep epicsExportAddress egRecord.c
epicsExportAddress (rset, egRSET);
[wanglin@timinglinux1 src]$ grep epicsExportAddress egeventRecord.c
epicsExportAddress (rset, egeventRSET);
[wanglin@timinglinux1 src]$ grep epicsExportAddress devMrfEg.c
epicsExportAddress (dset, devEg);
epicsExportAddress (dset, devEgEvent);
[wanglin@timinglinux1 src]$ grep epicsExportAddress drvMrfEg.c
epicsExportAddress (drvet, drvMrf200Eg);
I have checked the database definition and record/device support files,but cant't find any problems.Does anyone know what may result in such errors?
Thanks,
Wang Lin