Edit online

调试 SDK

6 Jan 2025
Read time: 2 minute(s)

JTAG 调试的整个物理环境示意图如下,本地 PC 和调试 PC 可以是同一台 PC,也可以是局域网内不同的两台 PC:


IMG_256

执行调试流程之前,需要先准备 JTAG 调试的物理环境,包括:

  • 硬件:
    • 板子上有 JTAG 插座,或者飞线引出了 JTAG 信号线,可以连接到 JTAG 调试器。

    • JTAG 调试器:Luban-Lite 支持 CKLink 调试器 和 AIC JTAG 两种。


      IMG_256


      IMG_256

    • 保证板子和 JTAG 调试器的信号线正确连接,请参考调试器上的信号标识。

  • 软件:
    • 安装 T-HeadDebugServer:调试器在 PC 端的代理,提供 GDB Server 调试服务。

    • 安装 AiBurn:ArtInChip 烧录软件,需要用到其中的 USB 烧写驱动。

      注:
      调试前,确保 PC 已安装上述软件。由于安装过程涉及驱动安装,务必开启管理员权限。关于软件的安装包,可以在工具包中找到。所有资源均可在代码仓库中下载
  • 选择当前需要 JTAG 调试的场景。JTAG 调试包括以下两种场景:
    • 板子刚执行完 PSRAM/ DDR 的初始化,等待 JTAG 连接,Debug 配置选择执行: Dxx load
    • 板子上已经在运行一份镜像,中途用 JTAG 连接,Debug 配置选择执行: Dxx connect only
    Luban-Lite 的 VSCode 配置中已经默认提供了四种 JTAG 选择,选择的方法:
    SoC 型号 板子上无镜像 板子上已经在运行镜像
    D21x D21x load D21x connect only
    D12X/D12x D12X/D12x load D12X/D12x connect only

完成上述 JTAG 环境准备后,遵照以下流程调试 SDK:

  1. 根据 JTAG 调试的场景,在 VSCode 中选择合适的 Debug 配置方法,点击箭头小图标(快捷键 F5),界面操作如下:
    注:
    Debug 配置只需选择一次,VSCode 会记住上次的配置。

    IMG_256

  2. 运行 T-HeadDebugServer 并配置下列参数:
    注:
    T-HeadDebugServer 完成安装后,桌面会自动创建一个 T-HeadDebugServer 的图标。
    Setting 目录下选择 Target Setting
    • Debug Arch Select:必须选择 RISC-V DM
    • D1:需要选择 CSKY HAD


  3. 等待调试器正常连接且目标板上电后,点击红色小三角按钮,或者点击 Control > RunDebugServer,开始连接设备:



    正常情况下,执行上述步骤会看到扫描出 CPU 信息如下:



    注:
    • 通过 JTAG load elf 前,必须要先完成 PSRAM、或者 DDR 初始化,否则 JTAG 在写 PSRAM/ DDR 时会出现异常,使用 JTAG 口需要关闭 IIC、以及 Touch panel,操作命令如下:
      1. 运行 scons --menuconfig 命令。
      2. 执行下列命令关闭 I2C 和 Touch Panel。
        Board options  --->
            [] Using i2c3
        Drivers options  --->
            Peripheral  --->
                Touch Panel Support  --->
                    Gt911 touch panel options  --->
                        [] Using touch panel gt911
        
      3. 若使用 JTAG 口,另外需断开 CTP 触屏排线。


  4. 在 VSCode 中修改 Luban-Lite/.vscode/launch.json 文件的下列参数,与当前方案配置保持一致:
    • 路径名、elf 文件名

    • DebugServer 的服务 IP 和端口号,选择 Setting > Socket Setting

    • 断点

      如果要添加多个断点,方法如下:


      IMG_256

    以 Dxx load 为例,修改方法如下:



    Dxx connect only 需要修改的参数和上面类似,在 launch.json 文件中都用关键字 FIXME 标注。

  5. 打开 DebugServer,确保已经成功连接 JTAG 调试器。

    如果成功连接,则界面显示如下:



    如果连接成功,VSCode 会进入 Debug 界面,如下所示:


    IMG_256

  6. 按照实际需求,开始调试。