3、探针驱动安装:J-Link / ST-Link / DAP-Link 实战
驱动安装这事儿,说难不难,说简单吧,我见过不少工程师在这上面卡一整天。其实大部分问题就三个:装错了版本、被系统拦截、或者线没插好。咱们一个一个来捋。
3.1 三大主流探针的驱动安装
先看个总览表,心里有个底:
| 探针类型 | 厂商 | 驱动包名 | 典型版本 | 支持IDE |
|---|---|---|---|---|
| J-Link | SEGGER | J-Link Software Pack | V7.94+ | Keil / IAR / Ozone |
| ST-Link | STMicroelectronics | ST-Link Utility / CubeProgrammer | V3.9+ | STM32CubeIDE / Keil |
| DAP-Link | ARM / 开源社区 | CMSIS-DAP 驱动(系统自带) | 固件版本 V2.x | Keil / pyOCD / OpenOCD |
3.1.1 J-Link 驱动安装
我个人习惯直接从 SEGGER 官网下载 J-Link Software and Documentation Pack。别去第三方网站下,版本乱、还可能带毒。
安装步骤很简单:
- 运行安装包,一路 Next。
- 安装路径不要有中文,我吃过这个亏。
- 安装完成后,插上 J-Link,系统会自动识别。
- 打开设备管理器,看到 J-Link driver 就对了。
JLinkExe,如果能进入 SEGGER 命令行界面,说明驱动和 DLL 都正常。
3.1.2 ST-Link 驱动安装
ST-Link 分两种:板载的(比如 Nucleo 板上的)和独立的。驱动通常集成在 STM32CubeProgrammer 或 ST-Link Utility 里。
我建议直接装 CubeProgrammer,因为它自带最新驱动,还能烧录、调试一把梭。
- 下载并安装 STM32CubeProgrammer。
- 插上 ST-Link,设备管理器里应该出现 STMicroelectronics STLink dongle。
- 如果出现黄色感叹号,右键更新驱动,手动指向安装目录下的
Drivers文件夹。
3.1.3 DAP-Link 驱动安装
DAP-Link 走的是 CMSIS-DAP 协议,Windows 10/11 基本免驱。插上就能识别为 CMSIS-DAP 或 ARM CMSIS-DAP。
如果系统没自动装上,可以手动安装:
- 打开设备管理器,找到未知设备。
- 右键更新驱动,选择 从计算机查找。
- 路径指向 Keil 安装目录下的
ARM\BIN文件夹。
嗯,这里要注意:DAP-Link 的固件版本很重要。V1 版只支持 SWD,V2 版才支持高速模式和串口。买的时候问清楚。
3.2 驱动验证:别急着点“下载”
装完驱动,我建议先做三件事验证,免得后面调试时抓瞎。
3.2.1 设备管理器确认
打开设备管理器,展开 通用串行总线设备 或 调试器 分类:
- J-Link:显示为
J-Link或SEGGER J-Link - ST-Link:显示为
STLink dongle或ST-Link/V2-1 - DAP-Link:显示为
CMSIS-DAP或ARM CMSIS-DAP
没有黄色感叹号,才算第一步通过。
3.2.2 探针自带工具检测
每个探针都有官方检测工具:
| 探针 | 检测工具 | 检测命令 |
|---|---|---|
| J-Link | JLinkConfig.exe | 打开后显示序列号和固件版本 |
| ST-Link | STM32CubeProgrammer | 连接后显示目标芯片信息 |
| DAP-Link | pyOCD | pyocd list 列出设备 |
3.2.3 连接目标板测试
最后一步,连上目标板,在 IDE 里尝试连接。Keil 里点 Debug → Start/Stop Debug Session,如果能进入调试界面,驱动就彻底没问题了。
3.3 常见驱动问题排查
这部分是我踩坑最多的。我整理了几个高频问题,你遇到直接对号入座。
3.3.1 设备管理器显示“未知设备”
原因: 驱动没装上,或者 USB 枚举失败。
解决:
- 换一个 USB 口,尽量插在主板直出的口上,别用前置面板。
- 手动更新驱动,指向正确的驱动目录。
- 如果还不行,重启电脑再试。别笑,Windows 的 USB 栈有时候就是抽风。
3.3.2 驱动装上了,但 IDE 找不到探针
原因: 通常是版本不匹配。比如 Keil 太老,不认识新版的 J-Link 驱动。
解决:
- 升级 IDE 到最新版。
- 或者降级探针驱动。我记得有一次项目紧急,我硬是把 J-Link 驱动从 V7.94 降到了 V6.80 才兼容客户的 Keil MDK 4。
3.3.3 驱动冲突:多个探针同时插
如果你同时插了 J-Link 和 ST-Link,Windows 可能会把驱动搞混。表现为:插上 J-Link 却识别成 ST-Link。
解决:
- 只插一个探针,另一个拔掉。
- 在设备管理器里卸载错误的驱动,重新插拔。
- 用 USBDeview 这类工具清理 USB 记录。
3.3.4 权限问题:Linux 下无法访问
Linux 用户注意,默认情况下普通用户没有权限访问 USB 设备。需要添加 udev 规则。
# 以 J-Link 为例
sudo wget -O /etc/udev/rules.d/99-jlink.rules https://www.segger.com/downloads/jlink/99-jlink.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
ST-Link 和 DAP-Link 也有类似的规则文件,去各自官网找一下。
3.4 知识体系总览
下面这张图把驱动安装、验证、排查的流程串起来了,建议保存下来当 checklist。
3.5 我的个人经验总结
做了这么多年调试,我总结了一条铁律:驱动问题,90% 出在 USB 和供电上。别一上来就重装系统、重装 IDE,先做三件事:
- 换 USB 口,最好插在电脑背面。
- 量电压,目标板 VCC 和 GND 之间至少 3.3V。
- 看灯,探针上的指示灯亮了没?
这三步能解决大部分问题。剩下的,再去看驱动版本和冲突。