Forums - fastcorner, fastcvdemo, loadjpeg working on Snapdragon 820?

1 post / 0 new
fastcorner, fastcvdemo, loadjpeg working on Snapdragon 820?
jdonald
Join Date: 9 Jan 14
Posts: 9
Posted: Tue, 2016-03-22 08:49

As has been suggested to me, I am cross-posting here. My original post is on the FastCV forum at https://developer.qualcomm.com/forum/qdn-forums/software/fastcv-computer...

------------------------------

I'm attempting to to get some of the FastCV SDK examples running. The fastcv/samples folder contains three: fastcornerfastcvdemo, and loadjpegNote that our system has installed the Hexagon 2.0 SDK, the Hexagon HVX add-on, and the FastCV SDK from https://developer.qualcomm.com/software/fastcv-sdk

I was hopefully when I saw a Makefile in each folder so I started off using those on Linux. To build the JNI libs, it was at first odd that I had to fix some things in various Android.mk files such as LOCAL_C_INCLUDES and adding LOCAL_LDFLAGS to point to -L path/to/fastcv/lib/Android/lib32. Once I did this for all three projects they all were able to build their respective *.so files. Little did I know that this would be easy compared to getting the apk's to build.

I ultimately ended up using a generic build.gradle and set up the various links to AndroidManifest.xml, jniLibs, res, and java/com/qualcomm. I did have to revise some things like disabling the lint checks, but ultimately it could made an apk that included all the Java code and the respective JNI libs.

I know that the Getting Started guide says to use Eclipse ADT, but that was end-of-life'd by Google some time ago. The screenshots in that guide don't even match how Eclipse looks nowadays. If something goes wrong in that flow it just seems very hard to track down. By sticking to gradle and command-line tools I'm at least able to make the process scriptable and reproducible for my colleagues.

I haven't had much luck actually running the apk's though. With fastcorner, it just shows blackness once I hit the Play button. adb logcat oddly claims that aDSP initialization failed, then it claims it was successful :

       01-01 00:41:45.309  4386  4386 E fastcv_lib_log: fastcvadsp_fcvQ6SessionInit failed

       01-01 00:41:45.310  4386  4386 D fastcv_lib_log: Q6 initialized successfully. Q6 FastCV functions mode 2 are enabled.

With loadjpeg, there seemed to be some fundamental bugs in the app configuration. For some it built its object named libfastcvsample.so when it should have been named libloadjpeg.so. Second, it wouldn't even install an icon on the Android desktop so I had no way to run it. I had to edit AndroidManifest.xml and add an intent-filter with android.intent.category.LAUNCHER. I expect these limitations would have been there even if I had used an IDE. And once this was all done and I had a loadjpeg-release.apk I could run, judging from the code it doesn't actually display the jpeg so I can't tell if it's working. The only clue is that it locks things up for 800 ms each time which may have indicated the DSP is getting some use.

I haven't tried fastcvdemo yet, but given how similar it looks to fastcorner I think I would probably end up in the same realm of confusion.

Note that we do have a testsig-0xXXXXXX.so file installed on this Snapdragon 820 dev board, as we are able to run some primitive Hexagon DSP examples.

I guess my main question is: Have any of these three examples worked in recent times? Seeing the rather dated build flow with Eclipse ADT makes me wonder if these examples are maintained.

If these examples really should be working on Snapdragon 820, what should I change in my flow to see some meaningful output?

And if someone here has them running, perhaps you could send me a binary apk to run, and I could further narrow down the differences from there.

  • Up0
  • Down0

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.