UPGRADE YOUR BROWSER
We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!
06-28-2018 07:56 AM - edited 06-28-2018 08:07 AM
Hello,
I need to have some functions from xfopencv on hardware. I just need to run estimate when moved to HW. Therefore, I have the getting started files (zcu102_rv_ss) downloaded and copied to /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss.
Before launching SDSoC I export SYSROOT:
export SYSROOT=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot
Then I execute SDSoC:
/opt/Xilinx/SDSoC/SDx/2017.4/bin/./sdx
And choose the workspace that I regularly use. Next I create a new application project and the zcu102 as platform.
Then I add the paths as UG1233, page17 suggests (as I will later use a non-reVISION platform) and made the changes so they looks like this:
In src I import code that is working and I can estimate its performance. Therefore, I build the project and I get the following errors:
Link application ELF file /opt/Xilinx/SDSoC/SDK/2017.4/gnu/aarch64/lin/aarch64-linux/bin/../lib/gcc/aarch64-linux-gnu/6.2.1/../../../../aarch64-linux-gnu/bin/ld: cannot find /lib/libpthread.so.0 /opt/Xilinx/SDSoC/SDK/2017.4/gnu/aarch64/lin/aarch64-linux/bin/../lib/gcc/aarch64-linux-gnu/6.2.1/../../../../aarch64-linux-gnu/bin/ld: cannot find /usr/lib/libpthread_nonshared.a collect2: error: ld returned 1 exit status ERROR: [SdsCompiler 83-5019] Exiting sds++ : Error when calling 'aarch64-linux-gnu-g++ /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/sw_perf_est.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/main.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.o -L/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib -lopencv_core -L /opt/Xilinx/SDSoC/SDx/2017.4/target/aarch64-linux/lib -L/home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs -Wl,--start-group -Wl,--end-group -Wl,--start-group -lpthread -lsds_lib -lxlnk_stub -Wl,--end-group -o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/TULIPP_library_eval.elf' sds++ log file saved as /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/reports/sds.log ERROR: [SdsCompiler 83-5004] Build failed makefile:45: recipe for target 'TULIPP_library_eval.elf' failed make: *** [TULIPP_library_eval.elf] Error 1
Could it be that the path for /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss is too long? Have I missed some step?
Just to be sure, I launched the shell from SDSoC and entered echo $SYSROOT and it showed the proper path.
Thanks for the help.
07-05-2018 04:05 AM
There is no need to change anything in the Makefile except the PLATFORM variable if you are using the GitHub repo, as is.
The Makefile was written in accordance with the GitHub folder structure of xfOpenCV. Hence the path
-files ../../include/core/xf_arithm.hpp
If you are not using the GitHub folder structure, you have to update the path accordingly. So, in your case it would be:
-files /opt/Xilinx/SDSoC/SDx/2017.4/xfopencv/include/core/xf_arithm.hpp
Also, please note that the Makefile for 2018.2 and 2017.4 is different (few flags).
06-28-2018 12:58 PM
Hi @aripod,
Could you please attach your log?
/home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/reports/sds.log
Thanks.
06-28-2018 11:37 PM
Hi,
I also got the same error few days back and I rectified it like this. Might even work for you.
$ sudo vim /<zcu104-installation-path>/sw/sysroot/usr/lib/libpthread.so
Press i for editing the library file.
Replace this line “Group ( /lib/libpthread.so.0 /usr/lib/libpthread_nonshared.a )” with “Group ( libpthread.so.0 libpthread_nonshared.a )”
06-29-2018 03:49 AM
If you are building for a non-reVISION platform and If you don't have your own compiled openCV libs and wish to use the one available in the reVISION platform, you need to add "--sysroot=<path-to-sysroot-folder>" , "<path-to-sysroot>/lib" and "<path-to-sysroot>/usr/lib" in the library search path (-L).
06-29-2018 08:39 AM
Here is the log file:
(c) Copyright 2012-2017 Xilinx, Inc. All Rights Reserved. #----------------------------------------------------------- # Tool version : sds++ 2017.4 SW Build 2086221 on Fri Dec 15 20:55:10 MST 2017 # Start time : Thu Jun 28 16:51:33 CEST 2018 # Command line : sds++ -L/lib -L/usr/lib -L/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib --sysroot=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot -Wl,-rpath-link=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/lib,-rpath-link=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib -sdcard ../src/data --remote_ip_cache /home/ariel/Documents/sdsoc_prjts/ip_cache -o TULIPP_library_eval.elf ./src/main.o -lvideo -lopencv_videoio -lglib-2.0 -ldrm -lv4l2subdev -lmediactl -lopencv_imgcodecs -llzma -ltiff -lpng16 -lz -ljpeg -lopencv_imgproc -ldl -lrt -lwebp -lopencv_features2d -lopencv_flann -lopencv_core -dmclkid 1 -mno-bitstream -mno-boot-files -perf-root main -perf-est swdata.xml -perf-funcs hwTestAnd -sds-sys-config a53_linux -sds-proc a53_linux -sds-pf zcu102 # Log file : /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/reports/sds.log # Journal file : /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/reports/sds.jou # Report file : /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/reports/sds.rpt #----------------------------------------------------------- Libraries: video opencv_videoio glib-2.0 drm v4l2subdev mediactl opencv_imgcodecs lzma tiff png16 z jpeg opencv_imgproc dl rt webp opencv_features2d opencv_flann opencv_core Library Paths /lib /usr/lib /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib {} Searching for static library libvideo.a Searching for static library libopencv_videoio.a Searching for static library libglib-2.0.a Searching for static library libdrm.a Searching for static library libv4l2subdev.a Searching for static library libmediactl.a Searching for static library libopencv_imgcodecs.a Searching for static library liblzma.a Searching for static library libtiff.a Searching for static library libpng16.a Searching for static library libz.a Library libz.a found in /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib/libz.a aarch64-linux-gnu-ar t /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib/libz.a Library objects: adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o aarch64-linux-gnu-ar xov /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib/libz.a x - adler32.o x - crc32.o x - deflate.o x - infback.o x - inffast.o x - inflate.o x - inftrees.o x - trees.o x - zutil.o x - compress.o x - uncompr.o x - gzclose.o x - gzlib.o x - gzread.o x - gzwrite.o aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/adler32.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/adler32.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/crc32.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/crc32.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/deflate.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/deflate.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/infback.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/infback.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/inffast.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/inffast.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/inflate.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/inflate.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/inftrees.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/inftrees.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/trees.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/trees.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/zutil.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/zutil.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/compress.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/compress.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/uncompr.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/uncompr.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/gzclose.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/gzclose.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/gzlib.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/gzlib.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/gzread.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/gzread.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/gzwrite.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/z/gzwrite.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml Searching for static library libjpeg.a Searching for static library libopencv_imgproc.a Searching for static library libdl.a Library libdl.a found in /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib/libdl.a aarch64-linux-gnu-ar t /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib/libdl.a Library objects: dlopen.o dlclose.o dlsym.o dlvsym.o dlerror.o dladdr.o dladdr1.o dlinfo.o dlmopen.o aarch64-linux-gnu-ar xov /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib/libdl.a x - dlopen.o x - dlclose.o x - dlsym.o x - dlvsym.o x - dlerror.o x - dladdr.o x - dladdr1.o x - dlinfo.o x - dlmopen.o aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlopen.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlopen.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlclose.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlclose.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlsym.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlsym.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlvsym.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlvsym.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlerror.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlerror.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dladdr.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dladdr.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dladdr1.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dladdr1.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlinfo.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlinfo.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlmopen.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/dl/dlmopen.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml Searching for static library librt.a Library librt.a found in /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib/librt.a aarch64-linux-gnu-ar t /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib/librt.a Library objects: aio_cancel.o aio_error.o aio_fsync.o aio_misc.o aio_read.o aio_read64.o aio_return.o aio_suspend.o aio_write.o aio_write64.o lio_listio.o lio_listio64.o aio_sigqueue.o aio_notify.o timer_create.o timer_delete.o timer_getoverr.o timer_gettime.o timer_settime.o shm_open.o shm_unlink.o mq_open.o mq_close.o mq_unlink.o mq_getattr.o mq_setattr.o mq_notify.o mq_send.o mq_receive.o mq_timedsend.o mq_timedreceive.o clock-compat.o timer_routines.o librt-cancellation.o aarch64-linux-gnu-ar xov /opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib/librt.a x - aio_cancel.o x - aio_error.o x - aio_fsync.o x - aio_misc.o x - aio_read.o x - aio_read64.o x - aio_return.o x - aio_suspend.o x - aio_write.o x - aio_write64.o x - lio_listio.o x - lio_listio64.o x - aio_sigqueue.o x - aio_notify.o x - timer_create.o x - timer_delete.o x - timer_getoverr.o x - timer_gettime.o x - timer_settime.o x - shm_open.o x - shm_unlink.o x - mq_open.o x - mq_close.o x - mq_unlink.o x - mq_getattr.o x - mq_setattr.o x - mq_notify.o x - mq_send.o x - mq_receive.o x - mq_timedsend.o x - mq_timedreceive.o x - clock-compat.o x - timer_routines.o x - librt-cancellation.o aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_cancel.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_cancel.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_error.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_error.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_fsync.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_fsync.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_misc.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_misc.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_read.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_read.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_read64.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_read64.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_return.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_return.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_suspend.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_suspend.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_write.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_write.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_write64.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_write64.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/lio_listio.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/lio_listio.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/lio_listio64.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/lio_listio64.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_sigqueue.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_sigqueue.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_notify.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/aio_notify.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_create.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_create.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_delete.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_delete.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_getoverr.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_getoverr.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_gettime.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_gettime.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_settime.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_settime.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/shm_open.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/shm_open.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/shm_unlink.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/shm_unlink.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_open.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_open.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_close.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_close.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_unlink.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_unlink.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_getattr.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_getattr.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_setattr.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_setattr.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_notify.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_notify.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_send.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_send.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_receive.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_receive.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_timedsend.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_timedsend.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_timedreceive.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/mq_timedreceive.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/clock-compat.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/clock-compat.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_routines.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/timer_routines.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/librt-cancellation.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.libs/rt/librt-cancellation.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml Searching for static library libwebp.a Searching for static library libopencv_features2d.a Searching for static library libopencv_flann.a Searching for static library libopencv_core.a Analyzing object files aarch64-linux-gnu-objcopy -O binary --set-section-flags .xdinfo=alloc --only-section=.xdinfo /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/main.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xdinfo.xml aarch64-linux-gnu-objcopy -O binary --set-section-flags .xddata=alloc --only-section=.xddata /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/main.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.data/xddata.xml /opt/Xilinx/SDSoC/SDx/2017.4/bin/build_xd_ip_db -sds-pf /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/.Xil/zcu102.hpfm -o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/.cdb/xd_ip_db.xml INFO: Using user-defined path for XILINX_XD environment variable /opt/Xilinx/SDSoC/SDx/2017.4 Using prebuilt hardware Skipping block diagram (BD), address map, port information and device registration for partition 0 Prepare hardware access API functions Create accelerator stub functions Compile hardware access API functions aarch64-linux-gnu-gcc -DPERF_EST -I /opt/Xilinx/SDSoC/SDx/2017.4/target/aarch64-linux/include -D HLS_NO_XIL_FPO_LIB -I /opt/Xilinx/SDSoC/Vivado/2017.4/include -c /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.c /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.c: In function ‘close_last_partition’: /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.c:75:5: warning: implicit declaration of function ‘apf_perf_estimation_exit’ [-Wimplicit-function-declaration] apf_perf_estimation_exit(); ^~~~~~~~~~~~~~~~~~~~~~~~ aarch64-linux-gnu-g++ -I /opt/Xilinx/SDSoC/SDx/2017.4/target/aarch64-linux/include -D HLS_NO_XIL_FPO_LIB -I /opt/Xilinx/SDSoC/Vivado/2017.4/include -c /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/cf_stub.c aarch64-linux-gnu-gcc -I /opt/Xilinx/SDSoC/SDx/2017.4/target/aarch64-linux/include -D HLS_NO_XIL_FPO_LIB -I /opt/Xilinx/SDSoC/Vivado/2017.4/include -c /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/sw_perf_est.c -o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/sw_perf_est.o aarch64-linux-gnu-ar crs /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/libxlnk_stub.a /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/cf_stub.o Compile accelerator stub functions aarch64-linux-gnu-ar crs /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/libTULIPP_library_eval.a /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/cf_stub.o Compile hardware access API functions aarch64-linux-gnu-gcc -DPERF_EST -I /opt/Xilinx/SDSoC/SDx/2017.4/target/aarch64-linux/include -D HLS_NO_XIL_FPO_LIB -I /opt/Xilinx/SDSoC/Vivado/2017.4/include -c /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.c /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.c: In function ‘close_last_partition’: /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.c:75:5: warning: implicit declaration of function ‘apf_perf_estimation_exit’ [-Wimplicit-function-declaration] apf_perf_estimation_exit(); ^~~~~~~~~~~~~~~~~~~~~~~~ aarch64-linux-gnu-g++ -I /opt/Xilinx/SDSoC/SDx/2017.4/target/aarch64-linux/include -D HLS_NO_XIL_FPO_LIB -I /opt/Xilinx/SDSoC/Vivado/2017.4/include -c /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/cf_stub.c aarch64-linux-gnu-gcc -I /opt/Xilinx/SDSoC/SDx/2017.4/target/aarch64-linux/include -D HLS_NO_XIL_FPO_LIB -I /opt/Xilinx/SDSoC/Vivado/2017.4/include -c /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/sw_perf_est.c -o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/sw_perf_est.o aarch64-linux-gnu-ar crs /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/libxlnk_stub.a /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/cf_stub.o aarch64-linux-gnu-ar crs /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/libTULIPP_library_eval.a /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/cf_stub.o Link application ELF file aarch64-linux-gnu-g++ /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/sw_perf_est.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/main.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.o -L/lib -L/usr/lib -L/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib --sysroot=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot -Wl,-rpath-link=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/lib,-rpath-link=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib -lvideo -lopencv_videoio -lglib-2.0 -ldrm -lv4l2subdev -lmediactl -lopencv_imgcodecs -llzma -ltiff -lpng16 -lz -ljpeg -lopencv_imgproc -ldl -lrt -lwebp -lopencv_features2d -lopencv_flann -lopencv_core -L /opt/Xilinx/SDSoC/SDx/2017.4/target/aarch64-linux/lib -L/home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs -Wl,--start-group -Wl,--end-group -Wl,--start-group -lpthread -lsds_lib -lxlnk_stub -Wl,--end-group -o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/TULIPP_library_eval.elf /opt/Xilinx/SDSoC/SDK/2017.4/gnu/aarch64/lin/aarch64-linux/bin/../lib/gcc/aarch64-linux-gnu/6.2.1/../../../../aarch64-linux-gnu/bin/ld: cannot find -lvideo collect2: error: ld returned 1 exit status ERROR: [SdsCompiler 83-5019] Exiting sds++ : Error when calling 'aarch64-linux-gnu-g++ /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/sw_perf_est.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/est/main.o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/portinfo.o -L/lib -L/usr/lib -L/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib --sysroot=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot -Wl,-rpath-link=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/lib,-rpath-link=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib -lvideo -lopencv_videoio -lglib-2.0 -ldrm -lv4l2subdev -lmediactl -lopencv_imgcodecs -llzma -ltiff -lpng16 -lz -ljpeg -lopencv_imgproc -ldl -lrt -lwebp -lopencv_features2d -lopencv_flann -lopencv_core -L /opt/Xilinx/SDSoC/SDx/2017.4/target/aarch64-linux/lib -L/home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs -Wl,--start-group -Wl,--end-group -Wl,--start-group -lpthread -lsds_lib -lxlnk_stub -Wl,--end-group -o /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/swstubs/TULIPP_library_eval.elf' sds++ log file saved as /home/ariel/Documents/sdsoc_prjts/TULIPP_library_eval/Release/_sds/reports/sds.log ERROR: [SdsCompiler 83-5004] Build failed sds++ completed at Thu Jun 28 16:51:37 CEST 2018
Thanks for the help
06-29-2018 08:14 PM
07-02-2018 12:18 AM - edited 07-02-2018 02:44 AM
I managed to build the arithm example from Xilinx with the zcu102 thanks to adding the suggestions to -L. But now when I want to move the function to HW, I get the following error:
ERROR: [DMAnalysis 83-4432] Interface type of port imgInput1_data_V_q0 of accelerator arithm_accel not supported!
The same was with the sobel example.
Thanks for the help.
07-02-2018 03:31 AM
@aripod
"arithm_accel" or "sobel_accel" are wrapper functions. It is the functions that are being called in those wrapper functions, that need to be marked as hardware function. So, for sobel that would be "xf::sobel<...>(.. , .., );" that has to be marked for hardware.
07-02-2018 04:15 AM
I saw that it is a wrapper, and for what I understand is that I need it because the xf functions are based on template which cannot be directly moved to HW and here is where the wrapper comes in handy.
And from the list of functions to accelerate, I cannot see the xf:: functions but the wrappers.
Thanks for the help.
07-02-2018 04:37 AM
@aripod
Template functions can be moved to hardware in 2017.4 SDx! See any Makefile from the xfOpenCV GitHub repo.
If you cannot see the template function in the list, you can go to the file xf_sobel.hpp from the includes in the project explorer pane, and toggle the function available there, under xf namespace, to hardware.
07-02-2018 05:44 AM - edited 07-02-2018 09:29 AM
Did not know that.....I can do what you said, and now for the estimate I got this:
ERROR: [DMAnalysis 83-4499] Performance estimation for function template xf::multiply<0,2,1080,1920,1> is not supported!
Would then the wrapper help to estimate then? Or the HLS report. Is it generated even though the estimate is not supported?
Thanks!
EDIT: Not selecting estimate compiles, but there is no HL report nor I can open Vivado HLS as it says "No Vivado HLS projects found for the given Hardware function".
07-02-2018 10:32 AM - edited 07-02-2018 10:37 AM
I added to the example file the following lines:
xf::Mat<XF_8UC1, HEIGHT, WIDTH, NPC1> imgIn1(HEIGHT,WIDTH); xf::Mat<XF_8UC1, HEIGHT, WIDTH, NPC1> imgIn2(HEIGHT,WIDTH); xf::Mat<XF_8UC1, HEIGHT, WIDTH, NPC1> imgOut(HEIGHT,WIDTH); bitwise_andHW(imgIn1, imgIn2, imgOut);
and this is the function to accelerate:
#pragma SDS data mem_attribute(imgIn1:PHYSICAL_CONTIGUOUS, imgIn2:PHYSICAL_CONTIGUOUS, imgOut:PHYSICAL_CONTIGUOUS) #pragma SDS data copy(imgIn1[O:VECTOR_PIXELS], imgIn2[0:VECTOR_PIXELS], imgOut[0:VECTOR_PIXELS]) #pragma SDS data data_mover(imgIn1:AXIDMA_SIMPLE, imgIn2:AXIDMA_SIMPLE, imgOut:AXIDMA_SIMPLE) #pragma SDS data access_pattern(imgIn1:SEQUENTIAL, imgIn2:SEQUENTIAL, imgOut:SEQUENTIAL) void bitwise_andHW(xf::Mat<XF_8UC1, HEIGHT, WIDTH, NPC1> &imgIn1, xf::Mat<XF_8UC1, HEIGHT, WIDTH, NPC1> &imgIn2, xf::Mat<XF_8UC1, HEIGHT, WIDTH, NPC1> &imgOut) { xf::bitwise_and(imgIn1, imgIn2, imgOut); }
This builds when there is no function moved to HW. When I go to the includes and select to accelerate bitwise_and from the xf namespace then it also builds, but when I select estimate performance I get:
Link application ELF file /home/ariel/Documents/sdsoc_prjts/xfopencv_test/Release/_sds/est/xf_arithm_tb.o: In function `main': xf_arithm_tb.cpp:(.text.startup+0x664): undefined reference to `_sds_sw_main' xf_arithm_tb.cpp:(.text.startup+0x668): undefined reference to `_sds_sw_main' xf_arithm_tb.cpp:(.text.startup+0x670): undefined reference to `_sds_sw_main' xf_arithm_tb.cpp:(.text.startup+0x680): undefined reference to `_sds_sw_main' xf_arithm_tb.cpp:(.text.startup+0x7e4): undefined reference to `_sds_sw_main' /home/ariel/Documents/sdsoc_prjts/xfopencv_test/Release/_sds/est/xf_arithm_tb.o:xf_arithm_tb.cpp:(.text.startup+0x7e8): more undefined references to `_sds_sw_main' follow collect2: error: ld returned 1 exit status ERROR: [SdsCompiler 83-5019] Exiting sds++ : Error when calling 'aarch64-linux-gnu-g++ /home/ariel/Documents/sdsoc_prjts/xfopencv_test/Release/_sds/est/xf_arithm_accel.o /home/ariel/Documents/sdsoc_prjts/xfopencv_test/Release/_sds/est/xf_arithm_tb.o /home/ariel/Documents/sdsoc_prjts/xfopencv_test/Release/_sds/swstubs/portinfo.o -L/lib -L--sysroot=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot -L/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/lib -L/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/lib -L/usr/lib --sysroot=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/ -Wl,-rpath-link=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot//lib,-rpath-link=/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot//usr/lib -lopencv_videoio -lglib-2.0 -ldrm -lv4l2subdev -lmediactl -lopencv_imgcodecs -lopencv_core -llzma -ltiff -lpng16 -lz -ljpeg -lopencv_imgproc -ldl -lrt -lwebp -lopencv_features2d -lopencv_flann -L /opt/Xilinx/SDSoC/SDx/2017.4/target/aarch64-linux/lib -L/home/ariel/Documents/sdsoc_prjts/xfopencv_test/Release/_sds/swstubs -Wl,--start-group -Wl,--end-group -Wl,--start-group -lpthread -lsds_lib -lxlnk_stub -Wl,--end-group -o /home/ariel/Documents/sdsoc_prjts/xfopencv_test/Release/_sds/swstubs/xfopencv_test.elf' sds++ log file saved as /home/ariel/Documents/sdsoc_prjts/xfopencv_test/Release/_sds/reports/sds.log ERROR: [SdsCompiler 83-5004] Build failed makefile:45: recipe for target 'xfopencv_test.elf' failed make: *** [xfopencv_test.elf] Error 1 19:29:17 Build Finished (took 25s.175ms)
Also it gives me an error if I select bitwise_andHW to be moved to HW:
Moving function bitwise_andHW to Programmable Logic ERROR: [HLS 200-70] Compilation errors found: Pragma processor failed: In file included from /home/ariel/Documents/sdsoc_prjts/xfopencv_test/src/xf_arithm_tb.cpp:1: In file included from /home/ariel/Documents/sdsoc_prjts/xfopencv_test/src/xf_arithm_tb.cpp:31: In file included from /home/ariel/Documents/sdsoc_prjts/xfopencv_test/src/xf_headers.h:60: /opt/Xilinx/SDSoC/SDx/2017.4/xfopencv/include/common/xf_sw_utils.h:120:98: error: expected '>' int cv_pix = cv_img.at<ap_uint<PixelType<DataType<_PTYPE,_NPC>::pixeldepth>::bitdepth>>(i,j); ^ ERROR: [SdsCompiler 83-5019] Exiting sds++ : Error when calling '/opt/Xilinx/SDSoC/Vivado/2017.4/bin/vivado_hls /home/ariel/Documents/sdsoc_prjts/xfopencv_test/Release/_sds/vhls/bitwise_andHW_run.tcl -l bitwise_andHW_vivado_hls.log' sds++ log file saved as /home/ariel/Documents/sdsoc_prjts/xfopencv_test/Release/_sds/reports/sds_xf_arithm_tb.log ERROR: [SdsCompiler 83-5004] Build failed src/subdir.mk:21: recipe for target 'src/xf_arithm_tb.o' failed make: *** [src/xf_arithm_tb.o] Error 1 19:31:10 Build Finished (took 12s.556ms)
For this error, in file common/xf_sw_utils.h that line seems correct: int cv_pix = cv_img.at<ap_uint<XF_PIXELDEPTH(XF_DEPTH(_PTYPE, _NPC))>>(i,j); so that is clearly not the issue...
Thanks again for the help.
07-03-2018 04:52 AM
@aripod
2017.4 SDx might not be supporting the Performance estimation on template functions. But, it has been tested to work on 2018.2 SDx with the said approach.
The Vivado HLS report should be generated (in _sds/vhls/.. directory) even if you do not enable the performance estimate. If it didn't generate, it means that the marked function hasn't been moved to hardware (could be some problem with SDx GUI setting). Would recommend to try it on the command line.
07-03-2018 08:08 AM
I must use 2017.4 so I cannot switch to 2018.4 for now.
I re-built again and I still cannot open HLS from SDSoC and in _sds directory does not seem to have the HLS report:
_sds/ ├── iprepo │ ├── repo │ └── zcu102.runs │ └── impl_1 │ └── bitstream.bit ├── p0 │ ├── ipi │ │ └── zcu102.sdk │ │ └── zcu102.hdf │ ├── sd_card │ │ ├── boot.bif │ │ ├── BOOT.BIN │ │ ├── im0.jpg │ │ ├── im1.jpg │ │ ├── image.ub │ │ ├── README.txt │ │ └── xfopencv_test.elf.bit.bin │ └── vpl │ └── system.hdf ├── reports │ ├── sds.jou │ ├── sds.log │ ├── sds.rpt │ ├── sds_xf_arithm_accel.jou │ ├── sds_xf_arithm_accel.log │ ├── sds_xf_arithm_tb.jou │ └── sds_xf_arithm_tb.log ├── swstubs │ ├── cf_stub.c │ ├── cf_stub.h │ ├── cf_stub.o │ ├── libxfopencv_test.a │ ├── libxlnk_stub.a │ ├── portinfo.c │ ├── portinfo.h │ ├── portinfo.o │ ├── xf_arithm_accel.o.xml │ ├── xf_arithm_tb.o.xml │ └── xfopencv_test.elf └── trace
To do it via the command line, I have to launch the shell in SDSoC by Xilinx -> Launch shell and then? I can see on UG1027:
sdscc | sds++ [hardware_function_options] [system_options] [performance_estimation_options] [options_passed_through_to_cross_compiler] [-mno-ir] [-sds-pf platform_name] [-sds-pf-info platform_name] [-sds-pf-list] [-sds-sys-config configuration name [-sds-proc processor_name]] [-target-os os_name] [-verbose] [ -version] [--help] [files]
But how do I choose which function to move to HW?
Thanks for the help.
07-04-2018 12:02 AM
I have just implemented a non-xfopencv function in the same project and I was able to move it into HW with the GUI so that might not be the issue. I can see the HLS report inside SDSoC. The issue remains when I want to move the xfOpenCV function like you showed me.
Thanks for the help.
07-04-2018 02:09 AM
@aripod
It seems to be a problem particularly with the GUI and the xfopencv template function. I suggest to download the xfOpenCV GitHub repo, build the arithm function in it with the available Makefile (specify the PLATFORM as zcu102 in the makefile). You will see the Vivado HLS report generated.
If you intend to get the performance estimate also, then use the 2018.2 SDx and append the following to the SDSCC_FLAGS variable at the end in the same makefile:
-perf-root main -perf-est swdata.xml -perf-funcs multiply
For more details see "Building a Project Using the Example Makefiles on Linux" section in UG1233.
07-05-2018 12:56 AM
I wanted to give a quick test to SDSoC 2018.4 then for the estimate feature, so I have the same configuration on both versions:
And I exported SYSROOT which I checked with the terminal from SDSoC and in 2018.4 now I get these errors:
08:51:45 **** Build of configuration Release for project xfopencv_test **** make pre-build main-build sdsoc_make_clean Release Building file: ../src/xf_arithm_accel.cpp Invoking: SDS++ Compiler sds++ -DHLS_NO_XIL_FPO_LIB -Wall -O3 -I/opt/Xilinx/SDx/2018.2/zcu102_rv_ss/usr/include/c++/6.2.1 -I/home/ariel/.Xilinx/SDx/2018.2/xfopencv/include -I/opt/Xilinx/SDx/2018.2/zcu102_rv_ss/sw/sysroot/usr/include -I/opt/Xilinx/SDx/2018.2/zcu102_rv_ss/usr/include/c++/6.2.1/aarch64-xilinx-linux -I/opt/Xilinx/SDx/2018.2/zcu102_rv_ss/usr/include/c++/6.2.1/backward -I/opt/Xilinx/SDx/2018.2/zcu102_rv_ss/usr/include -I/opt/Xilinx/SDx/2018.2/zcu102_rv_ss/usr/include/glib-2.0 -I/opt/Xilinx/SDx/2018.2/zcu102_rv_ss/usr/lib/glib-2.0/include -I/opt/Xilinx/SDK/2018.2/gnu/aarch64/nt/aarch64-linux/aarch64-linux-gnu/include/c++/6.2.1 -I/opt/Xilinx/SDK/2018.2/gnu/aarch64/nt/aarch64-linux/aarch64-linux-gnu/include/c++/6.2.1/aarch64-linux-gnu -I/opt/Xilinx/SDK/2018.2/gnu/aarch64/nt/aarch64-linux/aarch64-linux-gnu/include/c++/6.2.1/backward -I/opt/Xilinx/SDK/2018.2/gnu/aarch64/nt/aarch64-linux/lib/gcc/aarch64-linux-gnu/6.2.1/include -I/opt/Xilinx/SDK/2018.2/gnu/aarch64/nt/aarch64-linux/lib/gcc/aarch64-linux-gnu/6.2.1/include-fixed -I/opt/Xilinx/SDK/2018.2/gnu/aarch64/nt/aarch64-linux/aarch64-linux-gnu/include -I"../src" -c -fmessage-length=0 -MT"src/xf_arithm_accel.o" -Wno-overloaded-virtual -Wno-unused-label -Wno-strict-overflow -Wno-uninitialized -Wno-unused-function -Wno-unused-variable -Wno-unknown-attributes -Wno-unused-local-typedefs -Wno-sign-compare -MMD -MP -MF"src/xf_arithm_accel.d" -MT"src/xf_arithm_accel.o" -o "src/xf_arithm_accel.o" "../src/xf_arithm_accel.cpp" -sds-sys-config a53_standalone -sds-proc a53_standalone -sds-pf "zcu102" Create data motion intermediate representation /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:146:11: error: no member named 'fwide' in the global namespace using ::fwide; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:147:11: error: no member named 'fwprintf' in the global namespace using ::fwprintf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:148:11: error: no member named 'fwscanf' in the global namespace using ::fwscanf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:158:11: error: no member named 'swprintf' in the global namespace using ::swprintf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:160:11: error: no member named 'swscanf' in the global namespace using ::swscanf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:162:11: error: no member named 'vfwprintf' in the global namespace using ::vfwprintf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:164:11: error: no member named 'vfwscanf' in the global namespace using ::vfwscanf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:167:11: error: no member named 'vswprintf' in the global namespace using ::vswprintf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:170:11: error: no member named 'vswscanf' in the global namespace using ::vswscanf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:172:11: error: no member named 'vwprintf' in the global namespace using ::vwprintf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:174:11: error: no member named 'vwscanf' in the global namespace using ::vwscanf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:191:11: error: no member named 'wcstof' in the global namespace using ::wcstof; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:202:11: error: no member named 'wprintf' in the global namespace using ::wprintf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:203:11: error: no member named 'wscanf' in the global namespace using ::wscanf; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:248:11: error: no member named 'wcstold' in the global namespace using ::wcstold; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:257:11: error: no member named 'wcstoll' in the global namespace using ::wcstoll; ~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:258:11: error: no member named 'wcstoull' in the global namespace; did you mean 'wcstoul'? using ::wcstoull; ~~^ /opt/Xilinx/SDx/2018.2/zcu102_rv_ss/sw/sysroot/usr/include/wchar.h:476:26: note: 'wcstoul' declared here extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, ^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:264:22: error: no member named 'wcstold' in namespace '__gnu_cxx'; did you mean 'wcstoul'? using ::__gnu_cxx::wcstold; ~~~~~~~~~~~~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:258:11: note: 'wcstoul' declared here using ::wcstoull; ^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:265:22: error: no member named 'wcstoll' in namespace '__gnu_cxx'; did you mean 'wcstoul'? using ::__gnu_cxx::wcstoll; ~~~~~~~~~~~~~^ /opt/Xilinx/SDK/2018.2/gnu/aarch64/lin/aarch64-none/aarch64-none-elf/include/c++/7.2.1/cwchar:258:11: note: 'wcstoul' declared here using ::wcstoull; ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] ERROR: [SdsCompiler 83-5005] clang exited with non-zero code processing /home/ariel/sdsoc2018_workspace/xfopencv_test/src/xf_arithm_accel.cpp sds++ log file saved as /home/ariel/sdsoc2018_workspace/xfopencv_test/Release/_sds/reports/sds_xf_arithm_accel.log ERROR: [SdsCompiler 83-5004] Build failed src/subdir.mk:21: recipe for target 'src/xf_arithm_accel.o' failed make: *** [src/xf_arithm_accel.o] Error 1 08:51:47 Build Finished (took 2s.364ms)
So I added the multiply function to be moved to HW and the Makefile looks like this:
APPSOURCES = xf_arithm_tb.cpp xf_arithm_accel.cpp EXECUTABLE = aritham.elf VERBOSE = #-verbose PLATFORM = <path-to-reVISION-platform> SDSCC_FLAGS = -sds-pf ${PLATFORM} \ -perf-root main -perf-est swdata.xml -perf-funcs multiply -sds-hw "xf::multiply<0,2,1080,1920,1>" xf_arithm_accel.cpp -files ../../include/core/xf_arithm.hpp -clkid 2 -sds-end -dmclkid 2\ CC = sds++ ${SDSCC_FLAGS} IDIRS = -I. -I${SYSROOT}/usr/include -I ../../include LDIRS = --sysroot=${SYSROOT} -L=/lib -L=/usr/lib -Wl,-rpath-link=${SYSROOT}/lib,-rpath-link=${SYSROOT}/usr/lib CC = sds++ ${SDSCC_FLAGS} IDIRS = -I. -I${SYSROOT}/usr/include -I ../../include LDIRS = --sysroot=${SYSROOT} -L=/lib -L=/usr/lib -Wl,-rpath-link=${SYSROOT}/lib,-rpath-link=${SYSROOT}/usr/lib LLIBS = -lopencv_imgcodecs -lopencv_core -llzma -ltiff -lpng16 -lz -ljpeg -lopencv_imgproc -ldl -lrt -lwebp -lopencv_features2d -lopencv_flann #LLIBS = -lopencv_core -lopencv_imgproc -lopencv_imgcodecs #OLEVEL = -ggdb CFLAGS = -O3 -Wall ${OLEVEL} -c ${IDIRS} -DHLS_NO_XIL_FPO_LIB LFLAGS = ${OLEVEL} ${LDIRS} ${LLIBS} SOURCES := $(patsubst %,./%,$(APPSOURCES)) OBJECTS := $(APPSOURCES:.cpp=.o) DEPS := $(OBJECTS:.o=.d) .PHONY: all all: ${EXECUTABLE} ${EXECUTABLE}: ${OBJECTS} ${CC} ${OBJECTS} ${LFLAGS} -o $@ -include ${DEPS} %.o: %.cpp ${CC} ${CFLAGS} $< -o $@ clean: ${RM} ${EXECUTABLE} ${OBJECTS} ultraclean: clean ${RM} -rf _sds sd_card ${EXECUTABLE}.bit ${EXECUTABLE} ${OBJECTS} copy: /bin/cp -prf ${XLNX_SRC_PATH}/arithm/example . /bin/cp -prf ${XLNX_SRC_PATH}/arithm/src .
Thanks for the help.
07-05-2018 02:14 AM
Regarding using the provided Makefile, I added the zcu102 platform and then I added the IDIRS for xfopencv/include and sysroot/usr/include so it looks like this:
APPSOURCES = xf_arithm_tb.cpp xf_arithm_accel.cpp EXECUTABLE = aritham.elfcl VERBOSE = #-verbose PLATFORM = zcu102 SDSCC_FLAGS = -sds-pf ${PLATFORM} \ -sds-hw "xf::multiply<0,2,1080,1920,1>" xf_arithm_accel.cpp -files ../../include/core/xf_arithm.hpp -clkid 2 -sds-end -dmclkid 2\ CC = sds++ ${SDSCC_FLAGS} IDIRS = -I. -I${SYSROOT}/usr/include -I ../../include LDIRS = --sysroot=${SYSROOT} -L=/lib -L=/usr/lib -Wl,-rpath-link=${SYSROOT}/lib,-rpath-link=${SYSROOT}/usr/lib CC = sds++ ${SDSCC_FLAGS} IDIRS = -I. -I${SYSROOT}/usr/include -I ../../include -I/opt/Xilinx/SDSoC/SDx/2017.4/xfopencv/include -I/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/include LDIRS = --sysroot=${SYSROOT} -L=/lib -L=/usr/lib -Wl,-rpath-link=${SYSROOT}/lib,-rpath-link=${SYSROOT}/usr/lib LLIBS = -lopencv_imgcodecs -lopencv_core -llzma -ltiff -lpng16 -lz -ljpeg -lopencv_imgproc -ldl -lrt -lwebp -lopencv_features2d -lopencv_flann #LLIBS = -lopencv_core -lopencv_imgproc -lopencv_imgcodecs #OLEVEL = -ggdb CFLAGS = -O3 -Wall ${OLEVEL} -c ${IDIRS} -DHLS_NO_XIL_FPO_LIB LFLAGS = ${OLEVEL} ${LDIRS} ${LLIBS} SOURCES := $(patsubst %,./%,$(APPSOURCES)) OBJECTS := $(APPSOURCES:.cpp=.o) DEPS := $(OBJECTS:.o=.d) .PHONY: all all: ${EXECUTABLE} ${EXECUTABLE}: ${OBJECTS} ${CC} ${OBJECTS} ${LFLAGS} -o $@ -include ${DEPS} %.o: %.cpp ${CC} ${CFLAGS} $< -o $@ clean: ${RM} ${EXECUTABLE} ${OBJECTS} ultraclean: clean ${RM} -rf _sds sd_card ${EXECUTABLE}.bit ${EXECUTABLE} ${OBJECTS} copy: /bin/cp -prf ${XLNX_SRC_PATH}/arithm/example . /bin/cp -prf ${XLNX_SRC_PATH}/arithm/src .
But when I make I still get the following error:
sds++ -sds-pf zcu102 -sds-hw "xf::multiply<0,2,1080,1920,1>" xf_arithm_accel.cpp -files ../../include/core/xf_arithm.hpp -clkid 2 -sds-end -dmclkid 2 -O3 -Wall -c -I. -I/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot//usr/include -I ../../include -I/opt/Xilinx/SDSoC/SDx/2017.4/xfopencv/include -I/opt/Xilinx/SDSoC/SDx/2017.4/zcu102_rv_ss/sw/sysroot/usr/include -DHLS_NO_XIL_FPO_LIB xf_arithm_accel.cpp -o xf_arithm_accel.o Processing -sds-hw block for xf::multiply<0,2,1080,1920,1> ERROR: [SdsCompiler 83-5061] HLS sub-file not found, path may be incorrect: ../../include/core/xf_arithm.hpp ERROR: [SdsCompiler 83-5004] Build failed Makefile:35: recipe for target 'xf_arithm_accel.o' failed make: *** [xf_arithm_accel.o] Error 1
Why do I get that when I added the path to the IDIRS flag?
Thanks again for your help.
07-05-2018 04:05 AM
There is no need to change anything in the Makefile except the PLATFORM variable if you are using the GitHub repo, as is.
The Makefile was written in accordance with the GitHub folder structure of xfOpenCV. Hence the path
-files ../../include/core/xf_arithm.hpp
If you are not using the GitHub folder structure, you have to update the path accordingly. So, in your case it would be:
-files /opt/Xilinx/SDSoC/SDx/2017.4/xfopencv/include/core/xf_arithm.hpp
Also, please note that the Makefile for 2018.2 and 2017.4 is different (few flags).
07-06-2018 02:29 AM
That did the trick. I can now generate an IP and the HLS report which is what I need to obtain the resource utilization and its performance. Just to double check that I am looking at the right place, I get the file <project>/src/_sds/vhls/w0_xf_multiply/solution/syn/report/csynth.xml
<PerformanceEstimates> <PipelineType>none</PipelineType> <SummaryOfTimingAnalysis> <unit>ns</unit> <EstimatedClockPeriod>3.90</EstimatedClockPeriod> </SummaryOfTimingAnalysis> <SummaryOfOverallLatency> <unit>clock cycles</unit> <Best-caseLatency>2080088</Best-caseLatency> <Average-caseLatency>undef</Average-caseLatency> <Worst-caseLatency>2080088</Worst-caseLatency> <Interval-min>2080089</Interval-min> <Interval-max>2080089</Interval-max> </SummaryOfOverallLatency> </PerformanceEstimates> <AreaEstimates> <Resources> <BRAM_18K>0</BRAM_18K> <DSP48E>12</DSP48E> <FF>908</FF> <LUT>1934</LUT> <URAM>0</URAM> </Resources> <AvailableResources> <BRAM_18K>1824</BRAM_18K> <DSP48E>2520</DSP48E> <FF>548160</FF> <LUT>274080</LUT> <URAM>0</URAM> </AvailableResources> </AreaEstimates>
And that is the information that I need, right?
Thank you for your help.
07-06-2018 02:52 AM
@aripod
w0_xf_multiply_csynth.rpt is the HLS synthesis report file with performance and resource usage numbers.
07-06-2018 03:23 AM
07-10-2018 10:24 AM - edited 07-11-2018 12:55 AM
@gouthamb,
What about if I want to have the multiply function twice with different parameters? For example, one with saturate policy and the other one with truncate? Or two multiplications with different resolutions?
How would it work if I have different arithm_accel-like functions but they all call xf::multiply? Wouldn't a wrapper help here? Rather than accelerating the xf::multiply I accelerate the wrapper....?
Or in the Makefile, if I have something like this:
-sds-hw "xf::multiply<0,2,1080,1920,1>" xf_arithm_accel.cpp -files /opt/Xilinx/SDSoC/SDx/2017.4/xfopencv/include/core/xf_arithm.hpp -clkid 2 -sds-end -dmclkid 1\ -sds-hw "xf::multiply<1,2,1080,1920,1>" xf_arithm_accel.cpp -files /opt/Xilinx/SDSoC/SDx/2017.4/xfopencv/include/core/xf_arithm.hpp -clkid 2 -sds-end -dmclkid 1\
Is there a way to name the output (HLS IPs) some way that I want rather than w0_xf_multiply and w0_xf_multiply?
And is there also a way to only run the synthesis and get the reports?
Thanks again for your help.
07-11-2018 03:46 AM
What about if I want to have the multiply function twice with different parameters? For example, one with saturate policy and the other one with truncate? Or two multiplications with different resolutions?
- Yes, you can do it that way.
How would it work if I have different arithm_accel-like functions but they all call xf::multiply? Wouldn't a wrapper help here? Rather than accelerating the xf::multiply I accelerate the wrapper....?
- You can call the same xfOpenCV function multiple times (same or different configuration) within the same or from different accel functions. Wrapper function is not the one to be accelerated.
Is there a way to name the output (HLS IPs) some way that I want rather than w0_xf_multiply and w0_xf_multiply?
- Naming is taken care of by SDx internally. If you have multiple functions being called from accel, they will be named as w0_xf_multiply, w1_xf_multiply and so on.
And is there also a way to only run the synthesis and get the reports?
- Yes, you can have an only-synthesis run, using standalone Vivado HLS. Refer to the xfOpenCV HLS use model guide on GitHub.