DSP 调试
准备工作
在进行 DSP 调试之前,请确保完成以下安装:
安装 xt-ocd 工具:参考 安装调试插件。xt-ocd 支持通过 SWD 协议使用 J-Link 调试器进行 DSP 调试。
安装 J-Link 驱动:我们使用的版本是 V6.44,更新的版本应该也可以工作,但尚未经过测试。
将 DSP 连接至 J-Link
Xtensa OCD Daemon 的默认安装路径为: C:\Program Files (x86)\Tensilica\Xtensa OCD Daemon 14.08
。
用以下代码替换路径下的
topology.xml
文件:Windows:
C:Program Files (x86)TensilicaXtensa OCD Daemon 14.08topology.xml
Linux:
/opt/Tensilica/xocd-14.08/topology.xml
需要根据 J-Link 序列号修改 usbser 值:
<configuration> <controller id='Controller0' module='jlink' usbser='XXXXXX' type='swd' speed='4000000' locking='1'/> <driver id='XtensaDriver0' dap='1' xdm-offset='0x80000000' module='xtensa' step-intr='mask,stepover,setps' /> <chain controller='Controller0'> <tap id='TAP0' irwidth='5' /> </chain> <system module='jtag'> <component id='Component0' tap='TAP0' config='trax' /> </system> <device id='Xtensa0' component='Component0' driver='XtensaDriver0' ap-sel='3'/> <application id='GDBStub' module='gdbstub' port='20000'> <target device='Xtensa0' /> </application> </configuration>
通过 J-Link commander 查找 usbser 值:
调试方法
使用 Xplorer 调试 DSP 内核时,建议先擦除整个 Flash ,然后仅下载 KM4/KR4 固件。 调试启动时, DSP 固件将通过 J-link 直接加载到 PSRAM 中。
点击 Debug Configurations…
选择 Xtensa On Chip Debug,然后创建新的调试配置。勾选 Use XOCD Manager 选项,点击 Connect 按钮。刷新 OCD Version 后选择 14.08 版本。
Topology File 应选择上一节中编辑的
C:Program Files (x86)TensilicaXtensa OCD Daemon 14.08topology.xml
。 Connection Type 选择 SWD。选择 core0,将 Download binary 设为 Always。然后点击 Apply 和 Debug。
默认情况下,DSP 内核将在 main 函数的第一行停止。如需检查内存值,建议使用 Bounded Memory 并在内存值变化时手动刷新内存表。
打开命令提示符窗口,切换目录到
C:\Program Files (x86)\Tensilica\Xtensa OCD Daemon 14.08
运行
xt-ocd -c topology.xml
Note
某些警告信息属于正常现象可忽略。如果 XDM 驱动初始化报错,可能需要先初始化并启动 DSP 核再调试。
在
<dsp_sdk>\project (or auto_ws)\project_dsp\bin\HIFI5_PROD_1123_asic_UPG\Release
路径下有project_dsp
文件。将其复制到
C:\usr\xtensa\XtDevTools\install\tools\RI-2021.8 -win32\XtensaTools\bin
目录下。打开命令提示符窗口,切换目录到
C:\usr\xtensa\XtDevTools\install\tools\RI-2021.8-win32\XtensaTools\bin
。CALL0 ABI 的 CMD 命令如下:
xt-gdb --xtensa-core=HIFI5_PROD_1123_asic_UPG project_dsp target remote localhost:20000 reset load
接下来就可以正常调试了。调试命令可以参考:Xtensa 文档。
调试建议
如果始终无法连接调试端口,可能是因为 SWD 端口被关闭(SWD 端口被用作普通 GPIO)。需要打开 GPIO 的 SWD 功能。
Linux 环境下为方便调试,可以将以下路径加入 PATH:
/opt/Tensilica/xocd-14.08 /opt/xtensa/XtDevTools/install/tools/RI-2021.8-linux/XtensaTools/bin
如果使用
auto_build.sh
而非 Xplorer 编译项目,可在以下路径找到 project_dsp elf 文件:<dsp_sdk>/auto_ws/project_dsp/bin/<configuration_name>/Release
更多调试指南请参考 Xtensa 文档。
xt-ocd 调试问题
问题描述:在 Linux Xplorer 中进行调试时,出现 Cannot Find OCD Daemons
错误。

原因分析:xt-ocd 版本或路径未正确配置。
解决方法:在文件 /opt/xtensa/Xplorer-9.0.18/utils/xocdm9.0.18.3000/xocdm.ini
中的 # [XOCDInstallations] 后添加一行:
14.08=/opt/Tensilica/xocd-14.08