JTAG 调试工具使用手册
1. 概述
1.1 编写目的
主要介绍 SpacemiT 的调试工具使用方法,方便开发人员使用。
1.2 适用范围
适用于 SpacemiT 的 K1 系列 SoC。
1.3 相关人员
- 系统工程师
- 应用工程师
1.4 文档结构
该文档介绍如何下载 OpenOCD,配置 J-Link,运行 OpenOCD 并使用 GDB 进行软件调试。
2. 下载
OpenOCD 下载路径:https://archive.spacemit.com/tools/openocd
GDB 包含在交叉编译工具链中,请参考《交叉编译工具链使用手册》。
3. 配置 JTAG 接口
K1 系列板子都内置了 JTAG 调试功能,要使其正常工作,需要设置硬件和配置 USB 驱动。以 J-Link 为例,具体步骤请参考以下说明。
3.1 配置硬件
- 打开 J-Llink 的外壳,将其中的跳线帽拔下,使得 J-Llink 不对外供电。
- 连接 JTAG 检查 JTAG 信号对应的 引脚是否被使用,以下是JTAG调试接口信息。
K1在 40PinGPIO扩展接口中预留了Primary JTAG调试通道,线序如下
Pin Number | 网络名称 | JTAG信号名称 |
---|---|---|
7 | GPI0_70_3V3 | PRI_TDI |
11 | GPIO_71_3V3 | PRI_TMS |
13 | GPI0_72_3V3 | PRI_TCK |
15 | GPI0_73_3V3 | PRI_TDO |
3.2 配置 USB 驱动
3.2.1 Windows
- 从 Zadig 官网 下载 Zadig 工具并运行。
- 在 Zadig 工具中,进入 “Options” 菜单中选中 “List All Devices”。
- 检查设备列表,选择 J-Link 设备,更新成 WinUSB 驱动。

安装成功后,在设备管理器的通用串行总线设备中能看到 J-Llink 设备。
如果存在多个驱动(例如 segger 原生驱动),再次插入 J-Llink 后可能会自动选择了别的驱动,则需要从计算机的可用驱动程序列表中选择回 WinUSB 驱动 以更新驱动程序。
3.2.2 Linux
- 设置 OpenOCD 所支持 USB 设备的访问权限,将 udev 规则文件 复制到
/etc/udev/rules.d
目录中。执行udevadm control --reload
刷新 udev 规则 - 重新插拔 J-Link 使之前的改动生效
4. 运行 OpenOCD
解压缩后,双击运行 bin 目录下的 spacemit_k1_2x4
脚本即可启动 OpenOCD
如需修改运行参数,可编辑对应的脚本,以 linux 版本为例:
#!/bin/bash
SCRIPT_DIR="../share/openocd/scripts"
./openocd -c "set CORES 8" -f $SCRIPT_DIR/interface/jlink.cfg -f $SCRIPT_DIR/target/spacemit-k1.cfg -c "gdb_port 1024"
上述命令中 -f
选项后跟的是 jlink 适配器和 k1 的配置文件,-c
选项是 openocd 的配置项目,如配置了 gdb 的调试端口号为 1024,以及通过修改 CORES
变量设置调试核心数。
** 5. 使用 GDB 调试**
使用 riscv64-unknown-linux-gnu-gdb
,输入 target remote <ip>:<port>
建立 GDB 与 OpenOCD 的连接。