一、背景
上一节介绍了使用 VSCode Cortex-Debug 和 probe-rs 调试 RA 项目(七、vscode四种调试方案完全指南)。本节介绍如何将 probe-rs直接嵌入 e2studio,实现 e2studio 内一键下载+调试,停止后芯片自动复位运行。
probe-rs 优势:不依赖 SEGGER 软件,但需要简单配置且下载速度略慢。
我们最后形成脚本debug.cmd,方便移植调用,进一步降低使用门槛。
二、方案概述
步骤 | 内容 | 工具 |
|---|---|---|
第 1 步 | 安装 probe-rs + 切换 WinUSB 驱动 | PowerShell / SEGGER Configuration |
第 2 步 | 复制 debug.cmd 到项目根目录 | 文件管理器 |
第 3 步 | 修改 debug.cmd 中的项目参数 | 文本编辑器 |
第 4 步 | 新建 e2studio 调试配置指向 debug.cmd | e2studio |
三、安装 probe-rs
winget install probe-rs确认安装:
probe-rs --versionJ-Link 需要 WinUSB 驱动(使用SEGGER J-Link Configuration→ USB → 选中 J-Link → 改为 WinUSB)。如需恢复原生 J-Link 调试,切回 SEGGER 驱动即可。
四、核心:debug.cmd 脚本
核心是一个debug.cmd脚本文件,它替代了 e2studio 默认的 GDB 程序,自动完成下载 → 启动 GDB Server → 启动 GDB → 停止后复位。
4.1 复制到项目
将debug.cmd复制到你的项目根目录,按注释修改 4 个参数:
set PROJ_DIR=E:\RS_workspace\ra8d1_cpkcor_probers REM 项目路径 set GDB="D:\Program Files\GCC\...\arm-none-eabi-gdb.exe" REM ARM GCC gdb路径 set CHIP=R7FA8D1BH REM 芯片型号 set PRJ_NAME=ra8d1_cpkcor_probers REM 项目名4.2 脚本流程
taskkill → 清除残留进程 │ ▼ probe-rs download → 下载固件(弹出进度窗口) │ ▼ probe-rs gdb → GDB Server 后台监听 1337 端口 │ ▼ arm-none-eabi-gdb → 调试开始 │ ▼ 调试结束 → probe-rs reset 复位芯片继续运行五、配置 e2studio 调试启动项
新建 GDB Hardware Debugging 配置,主要改 3 处:
5.1 主要标签页
项目名和配置名(建议以probers结尾)。
5.2 调试器标签页
- GDB 命令
:
${workspace_loc:/ra8d1_cpkcor_probers}/debug.cmd - 连接
:TCP
localhost:1337
5.3 启动标签页
- 加载镜像
:取消勾选(debug.cmd 已处理下载)
- 加载符号
:勾选(源码级调试)
- 初始化命令
:留空
六、开始调试
点击 Debug,自动弹出下载进度条 → 完成后进入调试器 → 停止调试后芯片自动复位运行。
七、优缺点对比
probe-rs | 原生 J-Link (JLinkGDBServerCL) | |
|---|---|---|
依赖 | 无,仅需 probe-rs | 需安装 SEGGER 软件包 |
配置 | 复制脚本修改 4 个参数 | e2studio 自动生成 |
下载速度 | 略慢 | 快 |
停止后行为 | 自动复位运行 | MCU 保持暂停 |
下载进度条 | 有 | 无 |
驱动 | WinUSB | SEGGER |
八、常见问题
Q:下载失败 "Failed to open probe"?
A:J-Link 驱动是否已切换为 WinUSB?运行probe-rs list确认能识别到调试器。
Q:停止调试后 MCU 还是暂停的?
A:手动运行probe-rs reset --chip <型号>测试,确认 debug.cmd 末尾的 reset 命令正确执行。
Q:想用回原生 J-Link 调试?
A:驱动切回 SEGGER,调试配置改回默认 JLinkGDBServerCL 即可。