PS:要转载请注明出处,本人版权所有。
PS: 这个只是基于《我自己》的理解,
如果和你的原则及想法相冲突,请谅解,勿喷。
前置说明
本文作为本人csdn blog的主站的备份。(BlogID=117)
环境说明
- 高通865 android盒子
- Hexagon_SDK
前言
由于业务需求,我们需要展示高通865的cpu/gpu/dsp的使用率,其中cpu/gpu是非常简单的。但是对于dsp来说,我找了许久,才发现了一点点端倪,下面就是这一部分成果。
高通cDSP使用率查询
要实现高通dsp使用率的查询,我们最开始查询到的一点资料是一个sysmon tools,这个工具在高通的sdk中,这个工具可以查看相关的利用率,所以我们按照这个方向走下去。
安装高通dsp sdk
去此网站下载sdk并安装(https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools) 。注意,安装需要java环境,请自备。
然后我们需要检查我们的环境配置。
参考SDK目录中Hexagon_SDK/3.5.4/docs/calculator_c++.html,然后进入Hexagon_SDK3.5.4examplescommoncalculator_c++目录,编译生成target文件及模拟文件。然后安装教程,将计算器例子拷贝到设备相关目录进行运行,成功得到计算结果。这代表环境配置正确。
注意:这里可能会有很多问题,多看文档,多对比。特别是设备对应的dsp工具链选对,详情参考:Hexagon_SDK/3.5.4/docs/feature_matrix.html。
在这一步的计算器例子执行完成之后,基本上,我们应该知道生成的文件有3个,一个是android adb 可执行文件,一个是可执行文件对应的ndk库。一个是ndk库对应的dsp调用so。它们之间的关系是执行可执行文件,查找对应的符号,然后通过fastrpc调用dsp对应的符号,并得到结果。详情参考:Hexagon_SDK/3.5.4/docs/APIs_FastRPC.html#FastRPC%20architecture
高通cDSP使用率查询原理分析
在Hexagon_SDK3.5.4toolsutilssysmon,当我把sysMon_DSP_Profiler_V2.apk安装到系统后,终于看到了cDSP使用率查询的一丝方法。从图中可知,我们得到了dsp的当前工作频率,以及当前的使用率。但是我的需求是制作一个小工具,能够直接打印出core utilization,所以需要想其他办法。
