DSP 调试

在阅读本章节前,请确保按照 文档描述 安装了 xt-ocd 工具。 当前 xt-ocd 支持通过 SWD 协议使用 J-Link 调试器进行 DSP 调试。您需要先安装 J-Link 驱动,我们使用的版本是 V6.44。更新的版本应该也可以工作,但尚未经过测试。

Debug 建议

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

  • 默认情况下,开始调试 DSP 时 KM4/KR4 会停止运行。如需在 KM4/KR4 运行状态下调试 DSP,需要在 Km4 bootloader(component/soc/amebalite/bootloader/bootloader_km4.c)中修改寄存器值。

    BOOT_Image1() 函数对应位置添加红框内代码:

    HAL_WRITE32(0xE0042400, 0, 0);
    
    ../../rst_dsp/dsp_debug/figures/boot_image1_func_in_code.png
  • 生成 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_debug_guide.pdfgnu_gdb_ug.pdf