Hexagon SDKv3.2是目前Qualcomm公布的最新版本的软件开发包,以帮助开发者更方便快捷地使用DSP的功能。该SDK支持MSM8996和MSM8998。之前的文章介绍了SDK的下载安装,基本API接口和结构组成,大家应该对SDK 3.2有了一些初步的了解。
本文以一个sample代码为例演示该SDK的使用。用尽量详细的说明使大家尽快能够入门。
设置环境
进入SDK的根目录,运行目录下的环境配置脚本文setup_sdk_env.source
运行结果如下:
配置以下信息:
export HEXAGON_SDK_ROOT=$DIR
export HEXAGON_SDK_ROOT=$DIR
export SDK_SETUP_ENV=Done
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HEXAGON_SDK_ROOT/tools/libusb/
export UBUNTU_ROOT_DIR=$HEXAGON_SDK_ROOT/tools/linaro
编译测试
进入calculator工程所在的路径,在该路径下编译
编译运行在arm: make tree V=android_Debug:
编译运行在DSP: make tree V=hexagon_Debug_dynamic:
检查DSP
输入:adb logcat -s adspmsgd:
输入:adb shell getprop init.svc.adsprpcd检查fastrpc是否可用:
输出结果为running
测试机调试
1.root权限:
输入 adb root
adb wait-for-device
adb remount
2.运行在arm端:
将编译生成的可执行文件和库分别push到数据文件夹/data和系统库文件夹/system/lib/下并修改可执行文件权限:
adb push android_Debug/ship/calculator /data/
adb shell chmod 777 /data/calculator
adb push android_Debug/ship/libcalculator.so /system/lib/
查看运行结果:
3.运行在DSP端:
adb shell mkdir /system/lib/rfsa
adb shell mkdir /system/lib/rfsa/adsp
adb push hexagon_Debug_dynamic/ship/libcalculator_skel.so
/system/lib/rfsa/adsp/
新建rfsa文件夹保存编译生成的库文件,运行结果:
参数说明:
第1个参数:0表示运行在DSP,1表示运行在arm。
第2个参数:0表示不打印DSP的log信息,1表示打印。
第3个参数:整形x,表示求和,从0依次加到x-1,这x个整数的和打印输出。
Qualcomm汽车技术讨论组 QQ群号:566131670