环境准备:安装J-Link驱动、配置系统PATH、验证命令行工具是否可用
做嵌入式烧录,J-Link 基本算是标配工具了。不管你是用 Segger 原厂货,还是某宝上几十块的兼容版,驱动装不对,后面全是坑。这一章咱们就把环境彻底搞定。
我个人习惯是先把驱动装好,再配 PATH,最后跑几个命令验证一下。三步走,稳得很。
2.1 下载与安装 J-Link 驱动
去 Segger 官网下载 J-Link Software and Documentation Pack。别下错了,Windows 就选 Windows 版,Linux 选 Linux 版,macOS 也有对应的包。
安装过程很简单,一路 Next 就行。但有几点我踩过坑:
- 安装路径不要有中文 —— 有些 IDE 插件解析路径会乱码
- 勾选 "Add J-Link to the system PATH" —— 省得后面手动配
- USB 驱动也要装 —— 如果弹出 "Segger USB Driver" 安装提示,点同意
装完之后,设备管理器里应该能看到 "J-Link" 或者 "Segger J-Link" 设备。如果显示黄色感叹号,那就是驱动没装好,右键更新驱动试试。
2.2 配置系统 PATH 环境变量
如果你安装时忘了勾选那个 PATH 选项,或者像我一样喜欢手动控制,那就自己配一下。
为什么要配 PATH?说白了,就是让系统能在任何目录下直接敲 JLinkExe、JLinkGDBServer 这些命令。不然每次都要 cd 到安装目录,烦不烦?
Windows 配置步骤
- 右键"此电脑" → 属性 → 高级系统设置 → 环境变量
- 在"系统变量"里找到
Path,双击编辑 - 新建一行,填入 J-Link 安装目录(默认是
C:\Program Files\SEGGER\JLink) - 确定保存,重启命令行窗口
Linux / macOS 配置步骤
编辑 ~/.bashrc 或 ~/.zshrc,添加一行:
export PATH=$PATH:/opt/SEGGER/JLink
然后 source ~/.bashrc 让它生效。
which JLinkExe 确认一下。
2.3 验证命令行工具是否可用
环境配好了,咱们来验证一下。打开命令行(Windows 用 cmd 或 PowerShell,Linux/macOS 用终端),敲下面几个命令:
JLinkExe -v
JLinkGDBServer -v
JLinkSWOViewer -v
如果每个命令都能打印出版本号,说明环境没问题。如果提示 "command not found" 或者 "不是内部或外部命令",那就是 PATH 没配好,回去检查一下。
我记得有一次帮同事排查,他明明装了驱动,但 JLinkExe 就是跑不起来。后来发现他装的是 32 位版本,系统是 64 位的,路径里多了个 (x86) 后缀。嗯,这种细节最容易忽略。
快速验证清单
| 命令 | 预期输出 | 作用 |
|---|---|---|
JLinkExe -v |
显示版本号,如 V7.94 | 命令行烧录工具 |
JLinkGDBServer -v |
显示版本号 | GDB 调试服务器 |
JLinkSWOViewer -v |
显示版本号 | SWO 数据查看器 |
JLink -device STM32F103C8 -if SWD -speed 4000 -autoconnect 1 |
连接成功,显示目标芯片信息 | 实际连接测试 |
最后一条命令是实际连接测试。把 J-Link 插到电脑上,接好目标板,运行一下。如果能识别出芯片型号,那恭喜你,环境准备彻底搞定。
2.4 知识体系总览
下面这张图把环境准备的整个流程串起来了,你可以对照着检查自己走到哪一步了。
这张图把整个流程分成了三个大阶段:下载安装、PATH 配置、命令验证。中间有个判断节点——如果你安装时勾选了 PATH,直接跳到验证;没勾选就手动补上。最终目标就是让 JLinkExe 和 JLinkGDBServer 能在任意目录下直接调用。
2.5 常见问题与解决
- JLinkExe 提示 "Cannot connect to J-Link" —— 先看设备管理器有没有识别到设备,没有就重装驱动
- Linux 下提示 "libusb error" —— 需要安装 udev 规则,执行
sudo cp /opt/SEGGER/JLink/99-jlink.rules /etc/udev/rules.d/然后sudo udevadm control --reload-rules - macOS 下提示 "kext not loaded" —— 去系统设置里允许 Segger 的内核扩展加载
环境准备这块,说白了就是一次性的体力活。但千万别小看它——我见过太多人后面烧录脚本跑不通,最后发现是驱动版本不对或者 PATH 没配好。花十分钟把这一步做扎实,后面几十章都能省心。