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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: Help with issue compiling areaDetector Driver |
From: | Mark Rivers <[email protected]> |
To: | 'Ricardo Herrero' <[email protected]> |
Cc: | "[email protected]" <[email protected]> |
Date: | Wed, 16 Aug 2017 17:39:56 +0000 |
Hi Ricardo, I am including tech-talk in my reply, because I am hoping someone else may have an idea what is wrong. I don't have any experience cross-compiling for ARM. I understand that you can build a standalone OpenCL program that runs on the ARM, but when you try to run it from within an areaDetector driver it crashes. If your program is linking and starting up with no errors then I think your Makefile and included libraries are probably OK. The first thing to check is the compiler and linker flags being used in both cases. Can you send the complete output of the following: - Building the standalone OpenCL application - Building the EPICS application - Running the IOC, including the crash. Mark From: Ricardo Herrero [mailto:[email protected]]
Hello Mark,
I need to ask you a question about the areaDetector driver I´m developing. After what we talked last time, I have renamed driver and included the proper paths for it to work. But
I continue to receive a difficult error. I wonder if you could help me to debug it. I´m trying to use openCL inside areaDetector and I have an openCL program that alone works in my ARM device after cross compiling it in an x86_64 host. I can also execute cross-compiled
areaDetector and EPICS in this ARM device. But when I insert my openCL code (it is written in C) inside areaDetector driver, after a few functions there is one which returns a munmap_chunk() error and the driver crashes. I can´t see why it is not working. I
thought it would be because Makefile is not including all the proper libraries. I have been testing different options, but I always receive the same error. I have also debugged the code, but when it jumps to the function clCreateProgramWithBinary it crashes
and I can´t get any information. This seems to work properly without areaDetector, but I can´t see the differences. I send you the makefile log of the areaDetector driver, the compile sentence for my openCL program and the code for openCL. openCL program is called main.cpp and its code has been
included in the creation method of the areaDetector driver. I also send you my Makefiles for the library and the IOC. When I compile the library, HPS_FPGA_1D.cpp should be compiled with AOCL_Utils.cpp, I think it is done properly, because some functions are
properly executed, but this particular method, clCreateProgramWithBinary returns SIGABRT and munmap_chunk() error.
There is something more I have seen, but I don´t know if it is important. In the makefile log I have seen that some pragmas are ignored when compiled in EPICS. However when I compile
openCL alone I don´t receive any warning. I think I´m using the same cross-compiler, so I can´t see why this difference.
-- Doctorando i2a2 |