When I need QuRT in FastRPC application (called app), I link my libapp_skell.so with QuRT object files (in Qualcomm/Hexagon_SDK/1.0.0/lib/common/qurt/core/kernel/qurt/install/ADSPv5MP/lib/) in hexagon.min file:
QURT_IMAGE_DIR = ../../../../lib/common/qurt
RTOS_DIR = $(QURT_IMAGE_DIR)/core/kernel/qurt/install/ADSPv5MP
libapp_skel_LIBS+=$(RTOS_DIR)/lib/libqurt
libapp_skel_LIBS+=$(RTOS_DIR)/lib/libqurtkernel
libapp_skel_LIBS+=$(RTOS_DIR)/lib/libqurtcfs
libapp_skel_LIBS+=$(RTOS_DIR)/lib/libposix
---end of cut---
Is it right way? Some QuRT functions seems working but another - causes crash !
PS. I'm see DspCV is linked with QuRT in another way, may be not with these object files... And glue/ dir looks differently...
Hi,
Did you ever find a solution to this issue? I'm trying to take advantage of QuRT but I can't figure out what I need to link in to do so. I've tried linking in the same libraries as you, but it looks like they're all compiled as static libraries (.a) without -fpic so I get the following:
Any advice?
Thanks,
Adam
For Hexagon SDK issue, there is a forums for it. There are more Hexagon experts there to answer related questions.
Sorry, I'm confused. Is this thread not posted in the Hexagon SDK tools/installation forum? Note the link at the top of the page below the menu bar:
I can't seem to find this thread if I search for it or if I look through Tools/Installation manually, but it shows up in a Google search for QuRT.
Should it be in HLOS? It's not always entirely clear to me which of the forum categories is correct. I'm happy to repost in the appropriate place if necessary.
Thanks,
Adam
All,
I was able to resolve this issue by re-pushing the SDK's adsp image to my device using push_adsp.cmd. Apparently the image included in the BSP for the Intrinsyc DragonBoard does not include QuRT support and my previous attempt with push_adsp.cmd didn't work. If you have an image with QuRT support, you should not need to link your skel library to anything. You will just need to add the following include path when compiling:
Hope this helps.
Adam
I want to know on which board you have tried qurt linking with application?
QuRT libraries and object files are only linked in when running on the simulator.
On target, the DSP image already has QuRT linked in, to take advantage of it from a shared object you must include the QuRT headers when you build the shared object which will result in unresolved symbols in the shared object (the linker won't complain). Then when the shared object is loaded on target the loader will resolve those symbosl to symbols in the DSP image.
I am using hexagon sdk 1.2.2 and board 410c. I have inluded necessary qurt header files (qurt.h and qurt_thread.h) . When i tried to build example it gives me undefined reference to thread_create. So i tried to link libraries qurt and qurt_kernel but it gives me error no rule to make target libqurt.a
Hexagon SDK is not supported on the 410c, please use 810, 805, or 800
I'm suprised that calculator is working on 410c. 410c only has an mDSP (no aDSP) and the calculator walkthrough talks to the aDSP. You can take advantage of the mDSP by running calculator_multi_walkthrough.cmd but we have not done any verification that that has been enabled on 410c.
We are in the process of enabling 410c and will update the post when we know that's working.
You should be able to do multi-threading on any of the other platforms by following the qurt_multithread example.
I have tried multi-threading example(downscaleBy 2) on 800 platform and it is working but not SD600. SD600 supports qurt mutithreading or not?
The Hexagon SDK support starts with the SD800, SD600 is not supported at this time.
SD600 supports qurt multi-threading . I am able to do it.