Hexagon DSP系列記錄(五)——DSP LOG輸出

lligen-dai發表於2020-10-20

參考<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

相關文章