用途:当工作区已有可用固件产物且目标板连接 SEGGER J-Link 探针时,本技能用于通过 J-Link Commander 烧录与校验固件,而非 OpenOCD;也可启动 J-Link RTT 日志捕获,适用于无串口场景。支持扫描工作区 .jlink 配置文件与 .vscode/launch.json 中的 J-Link 设置。
主要能力:自动复用工程根目录 .em_skill.json 中上次成功的 profile 作为默认参数,显式参数优先;按 ELF > HEX > BIN 选择固件产物;自动查找 JLinkExe(配置文件、PATH、常见安装路径);支持 --scan-configs 扫描配置;支持 --detect 探测环境、--rtt 启动 RTT 捕获,并输出烧录结果报告,重点关注校验状态与失败分类。
必要输入:固件产物路径或含 artifact_path 的 Project Profile;--device 指定目标芯片型号(J-Link Commander 必须指定);可选 --interface(SWD 或 JTAG,默认 SWD)与 --speed;若为 BIN 产物,必须提供 --base-address 烧录基地址。设备名缺失且无法推断时返回 ambiguous-context,不会猜测设备名。
使用方式:先阅读 references/usage.md 确认任务类型;不确定环境时运行 scripts/jlink_flasher.py 的 --detect 模式;不确定设备或接口时用 --scan-configs 扫描线索;使用 --artifact + --device 执行烧录,可选 --interface 与 --speed;BIN 需配合 --base-address;需要日志时加 --rtt。
失败分类:environment-missing(JLinkExe 不可用)、artifact-missing(产物无法解析或 BIN 缺基地址)、connection-failure(无法发现探针或目标)、project-config-error(配置无效或设备名不识别)、target-response-abnormal(烧录后校验或复位失败)、ambiguous-context(设备缺失且无法推断)。
平台说明:Linux/macOS 下命令为 JLinkExe,Windows 下为 JLink.exe;SEGGER 默认安装路径 Linux 为 /opt/SEGGER/JLink/,Windows 为 C:\Program Files\SEGGER\JLink\。自带脚本使用 Python 标准库与 subprocess 调用,跨平台。RTT 为 J-Link 独有,不占用 UART。
输出与交接:输出 JLinkExe 命令、设备名、接口类型、产物路径与校验结果;在 Project Profile 中保留或更新 artifact_path、artifact_kind、jlink_device、jlink_interface;成功后推荐 serial-monitor 或 debug-jlink。