Hexagon DSP系列记录(五)——DSP LOG输出

参考<SDK_ROOT>/docs/Debugging_Message%20Logging.html

需要完成以下两部分:

  1. 代码层面

在DSP端代码包含头文件与相关宏。

#ifndef _DEBUG
#define _DEBUG
#endif
#include "HAP_farf.h"

...
AEEResult gaussian3x3_Gaussian3x3s16(const int16* imgSrc, int srcLen, int16* imgDst, int dstLen, uint32 srcWidth, uint32 srcHeight) 
{
	FARF(RUNTIME_HIGH, “This is a DSP log.\n”);
	...
}
  1. 在合适的手机目录新建配置文件<rpc_hlos_process_name>.farf。

其中,<rpc_hlos_process_name>指的是CPU端App/可执行程序/进程的名字。
合适目录指libxxx_stub.so的同级目录,可能是/vendor/lib/rfsa/dsp/sdk或/vendor/lib/rfsa/adsp等。
如:

/// libxxx_stub.so push 到了/vendor/lib/rfsa/adsp目录
adb push hexagon_Debug_dynamic_toolv83_v66/ship/libcalculator_plus_skel.so /vendor/lib/rfsa/adsp
/// 可执行程序为calculator_plus
adb push android_Debug_aarch64/ship/calculator_plus /vendor/bin
/// 所以是在/vendor/lib/rfsa/adsp目录新建calculator_plus.farf文件
adb shell "echo 0x1f > /vendor/lib/rfsa/dsp/sdk/calculator_plus.farf"

/// 运行
adb shell export LD_LIBRARY_PATH=/vendor/lib64/ ADSP_LIBRARY_PATH="/vendor/lib/rfsa/dsp/sdk\;/vendor/lib/rfsa/dsp/testsig;" /vendor/bin/calculator_plus sum 10

/// 另开终端查看DSP log
adb logcat -s adsprpc

其中0x1f指捕获所有的log。每个层级具体的掩码定义如下,它们可以任意组合:
0x01 – LOW
0x02 – MEDIUM
0x04 – HIGH
0x08 – ERROR
0x10 – FATAL

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页