这一篇在干嘛?

你板子写好了代码,怎么下载进去?怎么在线抓波形、调 C 程序?答案是调试器。这篇讲安路最新的在线调试器 ANFPGA®-LINK-FT(简称 AL-LINK-FT)以及配套的 OneCable 调试系统——它的亮点是”一根线通吃”:既能做 PL 部分的 JTAG 下载与 ChipWatcher 调试,又能烧录 FLASH/EMMC/NAND 等 NVM,还能做 PS 部分的 C 程序片上调试和 UART 串口通信。素材来自官方手册 UG009 v1.3。同系列目录见 单线烧录 OneCable 首页

认识 AL-LINK-FT 调试器

JTAG 信号定义与目标板参考电路

安装驱动:WinUSB 与 FTDI CDM

TD 的三种 Debug 模式配置

TD+FD 单线联合调试

常见问题排查

AL-LINK-FT 是安路科技最新的在线调试器,支持安路全系列 FPSoC 器件(FPSoC = 现场可编程片上系统,即 PS 处理器系统 + PL 可编程逻辑集成在一颗芯片里,比如 DR1M90、DR1V90)。它配合自研的 TD 软件(逻辑侧)和 FD 软件(处理器侧),能干这些事:

  • PL 部分:JTAG 固件下载(下载 bitstream)、ChipWatcher 在线调试(抓取内部波形);
  • NVM 烧录:对 FLASH、EMMC、NAND 等非易失存储器进行烧录和校验;
  • PS 部分:C 程序片上调试、UART 串口通信。

先来认识一下实物——调试器配合 USB Type-B 数据线、2.54mm 间距 10 针扁平线使用:

AL-LINK-FT 在线调试器实物

调试器右上角有一个 STATUS 状态指示灯,它是你判断连接健康度的第一入口,共 3 种状态:

状态说明你该做什么
红色常亮未检测到 VREF 电平检查扁平线连接、目标板是否上电
绿色常亮检测到 VREF 电平可正常操作
绿色闪动正在执行操作等它跑完即可

这里的关键词是 VREF:它是参考电压,由目标板提供给调试器,合法范围是 1.5V ≤ VREF ≤ 3.3V。红灯常亮十有八九是板子没上电或者扁平线插反/没插紧。

其他硬件参数备查:驱动 WinUSB,电源 5V-500mA,尺寸 84mm×42.5mm×20mm,净重 43 克。

常见坑:

  • 上电顺序:先给目标板上电,再观察调试器指示灯。VREF 由目标板提供,调试器自身不给板子供电——板子没电时调试器永远是红灯。
  • 绿灯常亮不代表 JTAG 链路通,只代表电压检测通过;如果 TD 里仍然扫不到器件,去查 TCK/TDI/TMS/TDO 的接线。

JTAG 信号定义与目标板参考电路

AL-LINK-FT 的 JTAG 接口是 2.54mm 间距、2x5 简牛座。注意一个硬件设计细节:调试器内部没有上下拉电阻,所以建议你在自己的目标板上对 JTAG 信号做上下拉处理。官方给出的参考电路长这样:

目标板 JTAG 参考设计电路

10 根针的信号定义如下表(信号方向以目标板视角为准):

PIN信号名信号描述信号方向
1TCK测试时钟输入
3TDO测试数据输出输出
4VREFJTAG 参考电压-
5TMS测试模式选择输入
6RSTNJTAG 复位,建议不连接-
7TXD目标板串口数据输入,接调试器串口数据输出输入
8RXD目标板串口数据输出,接调试器串口数据输入输出
9TDI测试数据输入输入
2、10GND-

三条硬性注释,画原理图时必须遵守:

  1. VREF 电平由目标板提供,范围 1.5V ≤ VREF ≤ 3.3V;
  2. JTAG 信号推荐上下拉电阻值为 4.7KΩ(参考图中的 R86R89 上拉、R99R102 下拉就是 4.7K 1%);
  3. 信号方向描述指目标板视角的信号传输方向。

这张表还有个容易忽略的信息:PIN 7/8 是串口(TXD/RXD)。也就是说这根 10 针扁平线里同时走了 JTAG 和 UART 两组信号——这正是”OneCable(一根线)“名字的由来:一根线既下载调试 PL,又当串口用、还能调 PS 的 C 程序,不用再单独拉一根 USB 串口线。

常见坑:

  • TXD/RXD 是交叉连接的:目标板的 TXD(数据输出)要接调试器的 RXD(数据输入),别同名直连,否则串口通不了。
  • RSTN 这根针”建议不连接”,画板时可以留网络但默认不接,接错了反而可能引起复位异常。
  • 简牛座有方向防呆,但扁平线插反不会损坏器件——只会红灯常亮/扫不到链。插线时注意缺口方向。

安装驱动:WinUSB 与 FTDI CDM

AL-LINK-FT 插上 PC 后,在系统里会枚举成两个设备,都用 FTDI 芯片方案,VID/PID 均为 0403/6042:

  • USB Serial Converter A:实现 USB 转 JTAG 功能 → 需要安装 WinUSB 驱动(OneCable 模式依赖它);
  • USB Serial Converter B:实现 USB 转串口功能 → 安装 FTDI 默认驱动(FTDI CDM),装好后设备管理器里会出现虚拟串口号(COMx)。

安装工具是 UsbDriverTool(需要管理员权限运行)。步骤如下:

第一步:AL-LINK-FT 连接到 PC,打开 UsbDriverTool,在 DEVICE 列表里找到 USB Serial Converter A(注意 VID/PID 0403/6042,别选到别的 FTDI 设备):

在 UsbDriverTool 中找到 USB Serial Converter A

第二步:右键该设备,选择”Install WinUSB”安装 WinUSB 驱动:

右键选择 Install WinUSB

第三步:安装完成后,UsbDriverTool 的设备名会变成 “USB Serial Converter A (WinUSB)“,说明 A 设备驱动装好了。

第四步:用同样的方法,对 USB Serial Converter B 右键选择 “Install FTDI CDM”(FTDI 默认驱动)。安装成功后,打开 Windows 设备管理器,在”端口(COM 和 LPT)“下能看到这个设备的虚拟串口号,后面做 UART 串口通信就靠它。

常见坑:

  • A 和 B 千万别装反:A 装 WinUSB(给 JTAG/TD 用),B 装 FTDI CDM(给串口用)。装反了 TD 找不到 cable、串口也没响应。
  • 如果设备管理器里这两个设备图标带黄色感叹号,说明驱动版本有问题,请安装安路科技提供的 FTDI、WinUSB 驱动。
  • UsbDriverTool 必须以管理员身份运行,否则安装会静默失败。

TD 的三种 Debug 模式配置

TD 软件可以配置三种 Debug 模式,先建立全局认识:

  1. AL LINK OLD:使用旧版 AL-Link 作为调试 Cable。注意旧版 AL-Link 不支持 FPSoC PS 部分的 C 程序调试,仅支持 TD 对 PL 部分执行下载 bitstream、CWC 抓取波形等操作;
  2. AL-LINK-FT(Local Host):使用 AL-LINK-FT 作为调试 Cable,调试连接在本机的开发板(最常用);
  3. AL-LINK-FT(Remote):使用 AL-LINK-FT 作为调试 Cable,调试远程主机上连接的开发板。

打开配置界面的入口:在 TD 中点击 Tools -> Debug Server Setting,弹出 Debug Server Setting 对话框,三种模式以单选按钮形式列在 Mode Select 区域。

在弹出的窗口中点选 AL_LINK_OLD,即可切换为使用旧版 AL-Link 作为调试 Cable。选择完成后点击右下角 Apply and Close 按钮,TD 即切换至旧版 AL Link 模式并自动关闭配置窗口。手里只有老调试器、且不需要调 PS 程序时才用它。

这是单机开发的标准模式。点选 AL-LINK-FT(Local Host) 后,下方 Local Host 区域可配置 OneCable 本地调试参数:

AL-LINK-FT(Local Host) 设置界面

三个参数分别是:

  1. Local Port:本地调试端口号。若要执行 FD+TD 的联合调试,必须在 FD 和 TD 中填写相同的端口号,否则联合调试功能不可用;
  2. JTAG CLK Freq:通过下拉列表配置 JTAG 时钟频率(如 10MHz);
  3. Cable Select:当本地主机连接多个调试器时,通过此下拉菜单选择目标调试器。列表里没找到目标调试器就点 Refresh 按钮刷新。

关于端口号,手册反复强调三条限制(所有需要填端口号的地方都适用):

  1. 必须大于 1024——0~1023 是公认端口,已绑定特定服务;
  2. 必须是空闲端口号;
  3. 必须是本机防火墙策略放通的端口号(如果有开防火墙)。

配置完点 Apply and Close 即可。

场景:开发板插在另一台机器(硬件服务器)上,你在自己工位的 PC 上远程调试。此时角色分为两方:

  • 硬件端 PC(硬件服务器):连接 AL-LINK-FT 调试 Cable,运行 HwServer 对外提供服务,Linux、Windows 均可;
  • 调试端 PC:运行 TD,连到硬件端的 HwServer。

硬件端操作:打开命令行,进入 TD 安装目录下的 bin 目录,运行 HwServer。手册截图中的完整命令是:

./hwserver.exe -s 5555 -r -f 15

参数含义:-s 5555 表示服务监听端口 5555(若接入多个 cable 或 5555 被占用,可换其他端口);-r 代表开启 TD 所使用的 RBB server(Remote Bit Bang,远程位操作服务);-f 15 代表 JTAG 时钟频率 15MHz。硬件端界面如下:

硬件端运行 HwServer 命令行

调试端操作:打开 TD 的 Debug Server Setting 对话框,点选 AL-LINK-FT(Remote),点击右侧绿色 + 号新增服务器条目。例如服务器地址为 10.1.2.3、端口号为之前配置的 5555,按下图填写即可:

调试端配置远程服务器地址与端口

两个实用细节:

  • TD 支持直接填写 IPv4/IPv6 地址,也支持域名形式——把该条目第一个下拉框从 IPv4/IPv6 切换为 Domain 即可;
  • 填写完毕确认无误后点 Apply and Close,完成配置。

端口号同样要遵守上面那三条限制(大于 1024、空闲、防火墙放通)。

常见坑:

  • 远程调试连不上时,优先在硬件端确认 HwServer 是否真的在监听(命令有没有带 -r),再在调试端核对 IP 和端口号是否一致,最后查两边的防火墙。
  • HwServer 端口、TD Remote 配置的 Server Port、(联合调试时)FD 的 Rbbport 是一串要”对得上”的数字,改一处就要全链路同步改。

TD+FD 单线联合调试

这是 OneCable 系统最有价值的能力:TD(调 PL)+ FD(调 PS 的 C 程序)共用同一根 AL-LINK-FT,同时工作。原理是 FD 启动 OpenOCD 进行 PS 调试时,OpenOCD 内置的 RBB Server 会一并启动,TD 通过这个 RBB Server 间接对 PL 部分执行 bitstream 下载、CWC 波形抓取——所以物理上只有一根调试线,软件上两个工具各走各的通道。

配置步骤如下:

  1. TD 设置为 One Cable 模式:按上文第 4 章第 2 节,选择 AL-LINK-FT(Local Host) 本地调试,记下你填的 Local Port。

  2. 下载码流的方式二选一

    • a) 在 TD 中下载:使用 TD Download 功能下载码流,下载完成后关闭下载窗口,停止占用 AL-LINK-FT;
    • b) 或者在 FD 中勾选”开始片上调试前自动下载码流”(见第 4 步)。

    关键纪律:其他 CWC、PVT Sensor 窗口也应当全部关闭,停止占用 AL-LINK-FT,否则会导致 FD 中 OpenOCD 启动失败——调试器是独占资源,同一时刻只能被一个程序持有。

  3. FD 配置端口:在 FD 中打开 Debug Configurations 配置界面,进入 Debugger 标签页,按实际需求填写 Rbbport 端口号。该端口号必须与 TD 中 Debug Server Setting 界面填写的端口号一致,默认值为 5555。手册给出的完整参考配置(OpenOCD Setup 部分):

    Name: apu_demo_app
    Start OpenOCD locally
    Executable path: C:/Anlogic/FD/FD_2024.5_ES1.1/FutureDynasty/toolchain/openocd/fpsoc/bin
    Actual executable: .../toolchain/openocd/fpsoc/bin/openocd.exe
    GDB port: 3333
    Telnet port: 4444
    Rbb port: 5555
    Tcl port: 6666
    Config options: -f ".../openocd/scripts/target/anlogic/dr1m90.cfg"

    其中 GDB/Telnet/Tcl 端口是 OpenOCD 自身的标准端口,Rbb port 才是给 TD 用的那个;Config options 指向目标芯片的 OpenOCD 配置脚本(示例为 DR1M90)。

  4. (可选)让 FD 自动下载码流:若需要 FD 在进入片上调试模式之前把码流下载到 PL 部分,在 Debug Configurations 配置界面进入 Startup 标签页,勾选复选框 Program FPGA,并通过 Browse 选择所需的 Bitstream File:

    FD Startup 标签页勾选 Program FPGA 并选择码流文件

  5. 开始调试:完成以上配置后即可启动 OpenOCD 的 C 程序调试。OpenOCD 启动完成后,可以同时使用 TD 进行 CWC 波形抓取等操作,实现 TD+FD 联合调试。在 FD 的 Console 里看到类似 Info : Listening on port 5555 for rbb connections 的输出,就说明 RBB Server 起来了,TD 这边可以连上了。

常见坑(联合调试最重要的纪律):

使用 TD+FD One Cable 联合调试时,TD 需要通过 FD OpenOCD 中的 RBB Server 执行操作,因此在做 bitstream 下载、CWC 波形抓取等操作期间,请保持 FD OpenOCD 处于工作状态。如果需要关闭 FD OpenOCD,请先等待正在进行的 bitstream 下载完成、或停止 CWC 波形抓取操作,否则可能因 TD 工作连接断开导致程序错误。

常见问题排查

手册给的四类典型故障与官方解决办法,整理如下表(建议按顺序排查):

#故障解决办法
1驱动安装失败在计算机设备管理器中确认 USB Serial Converter A、B 设备图标无黄色感叹号;如有驱动版本问题,安装安路科技提供的 FTDI、WinUSB 驱动
2未识别到目标器件检查状态指示灯是否为绿色;检查目标板连接、上电情况
3串口操作无响应检查驱动是否安装正确(USB Serial Converter B 应使用 FTDI 默认驱动);检查目标板连接、上电情况;检查目标板串口信号与 AL-LINK-FT 串口信号是否连接正确(TXD/RXD 交叉)
4HwServer/OpenOCD 不能识别到 AL-LINK-FT检查调试用端口号是否符合三项限制;检查 Cable Select 是否选择正确;检查 AL-LINK-FT 是否被其他程序占用(TD 的 Download、CWC、PVT Sensor 窗口未关闭都会占用);检查目标板、调试器连接与上电;检查驱动安装情况

排查的共同思路:先看(VREF/连接层面)→ 再看驱动(枚举层面)→ 再看端口与占用(软件层面)。绝大多数”扫不到器件/连不上 cable”的问题都出在这三层之一。

通关标准:

  • 能独立完成两颗 FTDI 设备(A 装 WinUSB、B 装 FTDI CDM)的驱动安装,并用 STATUS 指示灯确认目标板连接正常。
  • 能在 TD 的 Debug Server Setting 中配置 Local Host 模式并成功连上开发板,说清 Local Port 的三条端口限制。
  • 能跑通一次 TD+FD 联合调试:TD 下载码流后释放占用,FD 的 OpenOCD 以相同 Rbbport 启动,随后 TD 仍可抓 CWC 波形。