专栏硬件技术DSP侧日志查看方法

DSP侧日志查看方法

芯链情报局2024-01-03
104
0

1 前言

在编写DSP程序开发自定义算子时,经常需要查看DSP侧的中间结果或者错误信息,以进行调试工作。但是和ARM侧不同,DSP侧的打印信息无法直接显示在终端,因此本文介绍两种方法,指导用户如何查看DSP侧的日志输出。

本文基于J5 OE 1.1.68编写,如无意外也会支持其他OE版本,使用的示例代码可参考社区文章《DSP开发快速上手》,这里节选其中的DSP源码add.cc展示,作用为对两个浮点数进行加法计算,后文会围绕该部分代码做修改。

2 串口有线输出

该方法需要用户准备一根可以进行数据传输的串口线,即micro-usb转usb的连接线。micro-sub接入J5开发板,usb接入PC,使用mobaxterm等终端软件建立串口有线通信。

DSP侧可以使用C语言的printf方法将日志从串口输出到终端,只需进行如下所示的代码修改:

  1. 加入头文件stdio.h

  2. 在需要日志输出的地方使用printf语句

如此一来,编译出新的镜像并部署到J5开发板后,运行该算子时时即可在串口看到日志输出,显示加法计算结果。

3 远程监听输出

如果用户不方便使用串口进行有线连接,可以启动日志服务监听,远程查看日志输出。

我们可以在add.cc做出以下修改:

  1. 加入头文件hb_dsp_log.h

  2. 在需要日志输出的地方使用DSP_LOGD/DSP_LOGI/DSP_LOGW/DSP_LOGE/DSP_LOGA语句

其中,DSP_LOG后跟的字母,表示不同级别的log,D表示Debug,I表示Info,W表示Warning,E表示Error,A表示Always

在编译镜像并部署到J5开发板后,还需要在板端配置以下环境变量才可激活日志监听功能:

  1. HB_DSP_VDSP_LOG_LEVEL为1,会输出Debug、Info、Warning、Error、Always级别的日志

  2. HB_DSP_VDSP_LOG_LEVEL为2,会输出Info、Warning、Error、Always级别的日志

  3. HB_DSP_VDSP_LOG_LEVEL为3,会输出Warning、Error、Always级别的日志

  4. HB_DSP_VDSP_LOG_LEVEL为4,会输出Error、Always级别的日志

  5. HB_DSP_VDSP_LOG_LEVEL为5,会输出Always级别的日志

上述环境变量需要在运行DSP程序的进程中开启,之后我们需要再开启一个进程以使用日志监听服务。在新的进程中,我们可以使用以下命令:

如此一来,当我们在原本的进程中运行DSP自定义算子时,就可以在监听进程中查看到对应级别的log信息了。

硬件技术
征程5
评论0
0/1000