Hi everyone, I am trying to run the Hexagon SDK 6.x calculator example on rubikpi3, but got the error after executing all these commands.
make tree V=UbuntuARM_Debug_aarch64
make make tree V=hexagon_Debug_dynamic_toolv84_v68
Then I transfer the files UbuntuARM_Debug_aarch64\ship\calculator , UbuntuARM_Debug_aarch64\ship\libcalculator.so to /vendor/bin and hexagon_Debug_toolv87_v69\ship\libcalculator_skel.so to /vendor/lib/rfsa/adsp/ on rubikpi sbc. Error log after running the /vendor/bin//calculator -r 0 -d 3 -n 1000 -U 0 on sbc,
- Starting calculator test on domain 3
src/rpcmem_android.c:38:dummy call to rpcmem_init, rpcmem APIs will be used from libxdsprpc
- allocate 4000 bytes from ION heap
- creating sequence of numbers from 0 to 999
- compute sum on domain 3
- retry attempt unsuccessful. Timing out....
ERROR 0x72: Failed to compute sum on domain 3
ERROR 0x72: Failed to find max on domain 3
src/rpcmem_android.c:42:dummy call to rpcmem_deinit, rpcmem APIs will be used from libxdsprpc
- calculator example failed with nErr = 114
Does anyone know how to fix the domain 3 DSP communication or what might be missing on the board?
Dear customer,
May I inquire which version you are currently using—Android, Linux, or Debian?
Have you attempted to rebuild using the toolchain that matches the SDK?
If the issue persists, please provide a complete dmesg log.
Hi, I tried this too. I used SDK version 6.4.0, following the directions cited in the SDK: 6.4.0.0/docs/examples/calculator/index.html
After building examples/calculator
sudo mkdir -p /usr/lib/rfsa/dsp/sdk
sudo chmod 777 /usr/lib/rfsa/dsp/sdk
Copy libcalculator_skel.so to /usr/lib/rfsa/dsp/sdk
Copy UbuntuARM_ReleaseG_aarch64/ship to /tmp/ship (also copy UbuntuARM_ReleaseG_aarch64/libcdsprpc.so to /tmp/ship)
ERROR 0xffffffff: FastRPC Capability API failed. Falling back to signed pd.Unsigned PD is not supported on domain 3.
ERROR 0x1: Calculator example failed
I had to check the SDK documentation to get the ARM-GCC tools installed they are not present by default. I followed the OS build support page’s directions to get them loaded.
Here are my system details (freshly flashed)
Kernel : 6.8.0-1054-qcom
Ubuntu Release: VERSION=“24.04.3 LTS (Noble Numbat)”
Yes -r 1 will work but I wanted to try using the CDSP, so I was using -r 0 which gave errors.
I was missing the fastrpc package, this is the fix:
sudo apt-get install qcom-fastrpc1
This didn’t fix everything so I did the following:
Still see the following error:
./calculator -r 0 -d 3ERROR 0xffffffff: FastRPC Capability API failed. Falling back to signed pd.Unsigned PD is not supported on domain 3.
ERROR 0x1: Calculator example failed
Download fastrpc from github and build. I downloaded to my SDK tree: Qualcomm/Hexagon_SDK/6.5.0.0/fastrpc
Note: The configure of this is tricky you must install yaml on the rubikpi-target and copy the development headers and libraries to your cross build environment.
The cross tools you installed in the SDK need the following:
./calculator -d 3 -r 0 -n 100Starting calculator test
Attempting to run on unsigned PD on domain 3Allocate 400 bytes from ION heap
Creating sequence of numbers from 0 to 99
Compute sum on domain 3Call calculator_sum on the DSP
Sum = 4950Call calculator_max on the DSP
Max value = 99
Success