DSP 调试

准备工作

在进行 DSP 调试之前,请确保完成以下安装:

  1. 安装 xt-ocd 工具:参考 安装调试插件。xt-ocd 支持通过 SWD 协议使用 J-Link 调试器进行 DSP 调试。

  2. 安装 J-Link 驱动:我们使用的版本是 V6.44,更新的版本应该也可以工作,但尚未经过测试。

调试方法

使用 Xplorer 调试 DSP 内核时,建议先擦除整个 Flash ,然后仅下载 KM4/KR4 固件。 调试启动时, DSP 固件将通过 J-link 直接加载到 PSRAM 中。

  1. 点击 Debug Configurations…

    ../../_images/press_debug_configurations.png
  2. 选择 Xtensa On Chip Debug,然后创建新的调试配置。勾选 Use XOCD Manager 选项,点击 Connect 按钮。刷新 OCD Version 后选择 14.08 版本。

    Topology File 应选择上一节中编辑的 C:Program Files (x86)TensilicaXtensa OCD Daemon 14.08topology.xmlConnection Type 选择 SWD。

    ../../_images/xtensa_on_chip_debug_in_debug_configuration.png
  3. 选择 core0,将 Download binary 设为 Always。然后点击 ApplyDebug

    ../../_images/set_download_binary_to_always.png
  4. 默认情况下,DSP 内核将在 main 函数的第一行停止。如需检查内存值,建议使用 Bounded Memory 并在内存值变化时手动刷新内存表。

    ../../_images/use_bounded_memory_to_check_memory.png

调试建议

  • 如果始终无法连接调试端口,可能是因为 SWD 端口被关闭(SWD 端口被用作普通 GPIO)。需要打开 GPIO 的 SWD 功能。

  • 生成 DSP 反汇编和 map 文件

  • 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 错误。

../../_images/cannot_find_ocd_daemons.png

原因分析:xt-ocd 版本或路径未正确配置。

解决方法:在文件 /opt/xtensa/Xplorer-9.0.18/utils/xocdm9.0.18.3000/xocdm.ini 中的 # [XOCDInstallations] 后添加一行:

14.08=/opt/Tensilica/xocd-14.08