The page
https://www.gmca.aps.anl.gov/makarov/IK342_driver.html is accessible for me now. I don’t know what the issue was…
But anyway, I cannot compile the EPICS driver & record support following the instructions given there. This is my approach:
- I create an application directory:
bam01:/soft/epics/inst-3.15.7/IK342 # ${EPICS_BASE}/bin/linux-x86_64/makeBaseApp.pl -t ioc
- Then I follow the instructions on the page (copy the files in the named directorys)
- Execute make:
bam01:/soft/epics/inst-3.15.7/IK342 # make
make -C ./configure install
make[1]: Entering directory '/soft/epics/inst-3.15.7/IK342/configure'
perl -CSD /soft/epics/base/bin/linux-x86_64/makeMakefile.pl O.linux-x86_64 ../..
perl -CSD /soft/epics/base/bin/linux-x86_64/makeMakefile.pl O.RTEMS-mvme2100 ../..
mkdir O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[2]: Entering directory '/soft/epics/inst-3.15.7/IK342/configure/O.linux-x86_64'
perl -CSD /soft/epics/base/bin/linux-x86_64/convertRelease.pl checkRelease
make[2]: Leaving directory '/soft/epics/inst-3.15.7/IK342/configure/O.linux-x86_64'
make -C O.RTEMS-mvme2100 -f ../Makefile TOP=../.. \
T_A=RTEMS-mvme2100 install
make[2]: Entering directory '/soft/epics/inst-3.15.7/IK342/configure/O.RTEMS-mvme2100'
perl -CSD /soft/epics/base/bin/linux-x86_64/convertRelease.pl checkRelease
make[2]: Leaving directory '/soft/epics/inst-3.15.7/IK342/configure/O.RTEMS-mvme2100'
make[1]: Leaving directory '/soft/epics/inst-3.15.7/IK342/configure'
make -C ./IK342App install
make[1]: Entering directory '/soft/epics/inst-3.15.7/IK342/IK342App'
make -C ./src install
make[2]: Entering directory '/soft/epics/inst-3.15.7/IK342/IK342App/src'
perl -CSD /soft/epics/base/bin/linux-x86_64/makeMakefile.pl O.linux-x86_64 ../../..
perl -CSD /soft/epics/base/bin/linux-x86_64/makeMakefile.pl O.RTEMS-mvme2100 ../../..
mkdir O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
T_A=linux-x86_64 install
make[3]: Entering directory '/soft/epics/inst-3.15.7/IK342/IK342App/src/O.linux-x86_64'
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux
-I../../../include -I/soft/epics/base/include/compiler/gcc -I/soft/epics/base/include/os/Linux -I/soft/epics/base/include -MM -MF IK342Main.d ../IK342Main.cpp
perl -CSD /soft/epics/base/bin/linux-x86_64/registerRecordDeviceDriver.pl -I. -I.. -I../O.Common -I../../../dbd -I/soft/epics/base/dbd -o IK342_registerRecordDeviceDriver.cpp ../IK342.dbd IK342_registerRecordDeviceDriver
/soft/epics/inst-3.15.7/IK342
Device using unknown record type 'ai', declaration created
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux
-I../../../include -I/soft/epics/base/include/compiler/gcc -I/soft/epics/base/include/os/Linux -I/soft/epics/base/include -MM -MF IK342_registerRecordDeviceDriver.d IK342_registerRecordDeviceDriver.cpp
Installing dbd file ../../../dbd/IK342.dbd
mkdir ../../../dbd
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux
-I../../../include -I/soft/epics/base/include/compiler/gcc -I/soft/epics/base/include/os/Linux -I/soft/epics/base/include -c IK342_registerRecordDeviceDriver.cpp
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux
-I../../../include -I/soft/epics/base/include/compiler/gcc -I/soft/epics/base/include/os/Linux -I/soft/epics/base/include -c ../IK342Main.cpp
/usr/bin/g++ -o IK342 -L/soft/epics/inst-3.15.7/IK342/lib/linux-x86_64 -L/soft/epics/base-3.15.7/lib/linux-x86_64 -Wl,-rpath,/soft/epics/inst-3.15.7/IK342/lib/linux-x86_64 -Wl,-rpath,/soft/epics/base-3.15.7/lib/linux-x86_64
-rdynamic -m64 IK342_registerRecordDeviceDriver.o IK342Main.o -ldbRecStd -ldbCore -lca -lCom
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: IK342_registerRecordDeviceDriver.o: in function `_GLOBAL__sub_I_IK342_registerRecordDeviceDriver':
IK342_registerRecordDeviceDriver.cpp:(.text.startup+0x7): undefined reference to `pvar_dset_devAiIK342'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: IK342_registerRecordDeviceDriver.cpp:(.text.startup+0x15): undefined reference to `pvar_drvet_drvIK342'
collect2: error: ld returned 1 exit status
make[3]: *** [/soft/epics/base/configure/RULES_BUILD:204: IK342] Error 1
make[3]: Leaving directory '/soft/epics/inst-3.15.7/IK342/IK342App/src/O.linux-x86_64'
make[2]: *** [/soft/epics/base/configure/RULES_ARCHS:58: install.linux-x86_64] Error 2
make[2]: Leaving directory '/soft/epics/inst-3.15.7/IK342/IK342App/src'
make[1]: *** [/soft/epics/base/configure/RULES_DIRS:84: src.install] Error 2
make[1]: Leaving directory '/soft/epics/inst-3.15.7/IK342/IK342App'
make: *** [/soft/epics/base/configure/RULES_DIRS:84: IK342App.install] Error 2
bam01:/soft/epics/inst-3.15.7/IK342 #
Also I doubt, that the driver can be build for RTEMS because of these lines in drvIK342.c (looks more like VxWorks only):
* IK342_drv_init Finds and initializes IK342 (currently assumes one card)
* IK342_driver interfaces to IK342, writes cmd registers, reads data
*/
#include <vxWorks.h> /* defines VX_READ; STATUS - types/vxTypesOld.h */
#include <stdlib.h> /* calloc() */
#include <logLib.h> /* logMsg() */
#include <vme.h> /* VME_AM_SUP_SHORT_IO */
#include <vxLib.h> /* vxMemProbe() */
#include <dbDefs.h> /* -> epicsTypes.h -> stdio.h -> printf() */
#include <drvSup.h> /* DRVSUPFUN */
#include <devLib.h> /* devRegisterAddress() */
#include <intLib.h> /* intLevelSet() */
Is there a way that I can compile these drivers for RTEMS-4.10.2?
Regards
Michael
Von: Sintschuk, Michael
Gesendet: Donnerstag, 17. September 2020 10:06
An: 'tech-talk' <tech-talk at aps.anl.gov>
Betreff: device support for IK342
Hello all,
is someone using the IK342 board from Heidenhain with an RTEMS-mvme2100 IOC?
I found this site:
https://epics.anl.gov/modules/manufacturer.php#Heidenhain
But the link for the IK342 device support isn’t working anymore.
Best regards
Michael
Michael Sintschuk
Bundesanstalt für Materialforschung und –prüfung (BAM)
8.5 Mikro-ZfP
Unter den Eichen 87
12205 Berlin
GERMANY
P: +49 30 8104-5736 (BESSY, Adlershof)
P: +49 30 8104-4065 (BAM, Steglitz)
michael.sintschuk at bam.de