RISC-V 开发工具包 · 集成开发环境

ChipRV Studio IDE

基于 VS Code 的集成开发环境:一键创建工程、图形化配置、编译、下载与调试,支持代码补全、语法高亮与多核并行在线调试。

一、软件定位

ChipRV Studio 是一个 Visual Studio Code 扩展,用于统一完成嵌入式工程的配置、 编译、下载、运行与片上调试。它不包含 SDK 源码,也不重新实现编译器、调试器或调试服务, 而是把这些标准工具以及调试与外设查看扩展编排起来,让开发者用图形界面完成原本需要多个终端 手工串联的工作。

一个工作区,贯通开发流程 ChipRV Studio
ChipRV Studio / VS Code · 工程、配置、构建、运行与调试
工程与配置Project / Build / Debugger / Startup / SVD
SCons + GCC选择构建目标,编译与链接固件。
OpenOCD + GDB启动共享服务,建立各核调试会话。
源码与外设视图断点、Watch、调用栈与 SVD 位域。
配置保存到工程文件,工具输出汇入终端与调试控制台。
图 1 Studio 负责配置与编排,构建与调试由配套工具执行。
PROJECT
工程管理
创建和打开轻量级工程,或直接对接 SDK 的预置构建目标。
CONFIG
图形化配置
工程、构建、调试器、启动、外设描述五类参数全部可视化配置并落盘。
DEBUG
多核在线调试
断点、变量、Watch、寄存器、调用栈与源码级单步,支持单核与多核会话。
PERIPHERAL
外设寄存器视图
通过 CMSIS-SVD 描述文件展开外设、寄存器与位域,带读写属性和复位值。
VS Code 生态扩展

可结合已安装的代码补全与 AI 助手扩展辅助阅读、编写代码。AI 能力取决于相应扩展与服务;智能断点建议、自动诊断和性能监控应以实际交付版本为准。

二、系统要求

表 1 运行环境要求
类别要求
操作系统Windows / Linux
宿主软件Visual Studio Code 1.85 或更高版本
构建环境Python 3、SCons
编译器RISC-V GCC 交叉编译器
调试器RISC-V GDB
在线调试调试服务,且包含目标所需的接口与目标配置文件
依赖扩展调试扩展、C/C++ 扩展包、外设查看扩展

三、安装与工程

3.1 调试界面

ChipRV Studio IDE 将工程操作、源码编辑与调试信息集中在同一工作区。下图标出主要功能区域,便于在调试过程中快速找到操作入口与目标状态。

ChipRV Studio 调试界面:1 项目资源管理区,2 代码编辑区,3 调试输出区,4 变量与寄存器区,5 监视表达式区,6 外设寄存器区,7 调用栈区,8 断点管理区
图 2 调试界面与主要功能区域

3.2 安装扩展

  1. 安装 VS Code。
  2. 打开扩展面板(Ctrl+Shift+X)。
  3. 点击右上角 ...,选择从 VSIX 安装
  4. 选择随包提供的扩展安装包。
  5. 自动安装依赖扩展后,重新加载 VS Code。

3.3 打开工程

  1. 点击 VS Code 左侧活动栏的扩展图标。
  2. 点击 Open 打开工程目录,或点击 New 创建新工程。
  3. 点击 Settings,确认 SDK、编译器、调试器、调试服务与固件路径正确。

SDK 根目录必须包含构建入口脚本、预置配置目录与工具目录,否则扩展无法定位构建入口。

四、五类配置

所有图形界面的配置最终都会写入工程根目录的工程配置文件, 因此配置变更可以纳入版本管理并逐行比对,团队之间共享一致的构建与调试环境。

表 2 配置页面职责
页面配置内容
Project工程名称、芯片名称、SDK 根目录、工程类型(独立工程 / SDK 预置配置工程)
Build编译器路径、构建来源、所选预置配置、是否在运行或调试前自动构建
Debugger调试服务与调试器可执行文件、接口与目标配置文件、主机地址与各核心 GDB 端口、命令行端口、多核开关与选定核心、启动超时、附加启动命令
Startup各核心的固件文件、运行与重启前是否复位、复位类型、停止函数、程序计数器设置、加载后是否继续运行
SVD外设描述文件路径,供外设视图解析寄存器与字段

4.1 构建来源

构建来源选为 SDK 预置配置时,扩展会先执行一次配置初始化命令,再执行编译命令; 选择独立工程时,则直接在工程目录运行构建命令。两种方式都通过终端输出完整日志, 出错时可直接定位到编译命令本身。

4.2 复位行为

复位类型选为暂停复位时,扩展使用目标级复位命令,按核心分别下发, 而不是对整个芯片做全局复位。

多核不做全局复位

多核模式下不执行全局复位,避免一个核心的复位清除其它核心的共享调试状态。 如需复位,请在针对具体核心的 GDB 会话中执行目标级命令。

五、编译与运行

表 3 工程面板操作
操作行为
Build在配置的工作目录执行构建,输出显示在编辑器终端
Clean调用构建系统清理;SDK 使用 scons -c 时同时删除 .config,清理前应保存配置
Menuconfig在 SDK 根目录打开菜单配置界面,保存后重新构建生成新固件
Run检查固件 → 启动调试服务 → 建立调试连接 → 加载固件 → 按启动配置继续执行 → 退出临时会话
Debug停止旧会话 → 启动共享调试服务 → 逐个建立各核心调试会话 → 加载固件 → 在停止函数设临时断点 → 暂停并打开源文件
Settings修改工程、工具链与调试配置
源码级调试的前提

固件必须包含调试信息,即构建配置中启用调试信息选项(编译器加入 -g)。 否则调试时只能看到汇编地址,无法定位到 C 源码行。

六、调试功能

在 C/C++ 源文件行号左侧单击即可设置断点,再次单击删除。断点命中后,编辑器与侧边栏同时呈现 当前停止位置、局部与全局变量、Watch 表达式、调用栈以及外设寄存器。

01 / PROJECT & EDITOR
工程配置与源码编辑
管理工程、构建目标与启动参数;在源码区设置断点、查看停止位置并执行单步。
02 / VARIABLES & REGISTERS
变量、监视与寄存器
通过 Variables、Watch 与寄存器视图检查当前核心状态;通过 SVD 查看外设寄存器与位域。
03 / SESSIONS & CALL STACK
多核会话、断点与调用栈
选择目标核心的 GDB 会话,管理断点并沿调用栈定位问题。切换会话后确认核心与固件对应关系。
04 / TERMINAL & DEBUG OUTPUT
终端与调试输出
查看构建日志及 OpenOCD / GDB 输出,区分编译、连接、固件加载和运行阶段的问题。

6.1 变量与寄存器

  • 变量视图:显示当前可见的局部变量、全局变量与静态变量。
  • Watch:手动添加重点变量、数组或任意表达式。
  • 寄存器视图:查看通用寄存器、程序计数器与调试相关寄存器。
  • 外设视图:基于 SVD 展开外设寄存器及其字段,含位域、读写属性与复位值。
寄存器读取的两个前提

寄存器内容只代表当前选中核心当前暂停时刻的状态。目标运行中 部分寄存器无法读取,必须先暂停;多核调试时切换会话后应确认窗口标题中的核心名称, 避免误读其它核心的寄存器。

6.2 源码级单步

表 4 单步操作
操作行为适用场景
Step Into(步入)执行当前行并进入该行调用的函数内部查看函数调用过程与被调函数的参数、局部变量
Step Over(步过)执行当前行但不进入被调函数,在调用返回后的下一行暂停快速浏览当前函数逻辑
Step Out(步出)继续执行至当前函数返回,在调用者的下一行暂停误入无需查看的函数时快速返回上层

单步操作必须在调试会话已连接且目标处于暂停状态时执行;多核调试时,单步只作用于当前选中的核心会话。

6.3 多核调试

多核调试使用一个共享的调试服务进程,为每个选定核心使用独立 GDB 端口。 扩展按序连接各核心,避免多个调试会话同时握手造成协议冲突。后台核心可能先产生停止事件, 扩展会尽量保持当前选定核心的源文件焦点,不让后台核心自动替换编辑器内容。

  • 为不同核心分别指定匹配的固件,否则符号、源文件与断点地址会不一致。
  • 不要在多核配置中使用全局复位命令。
  • 确认各核心的 GDB 端口无冲突,且与目标配置文件中的数量、名称一致。
  • 某个核心连不上时,先单独选择该核心验证其配置、固件与端口。

七、配置文件

工程主配置文件包含工程与 SDK 路径、构建目标与预置配置、工具链路径、接口与目标配置、 各核心的固件与端口、启动命令以及外设描述与多核选项。保存配置后,扩展会自动生成或更新 编辑器侧的 IntelliSense、启动与任务配置文件。

不要手工长期维护自动生成的文件

下一次保存工程配置时,自动生成文件的内容可能被覆盖。需要定制时应通过配置界面调整。

八、常见问题

表 5 常见问题排查
现象优先检查
调试器没有启动依赖调试扩展是否安装;调试器路径与固件文件是否存在;查看调试控制台与扩展输出的报错
配置信息缺失或不正确在配置界面重新指定 SDK、工具链、固件与外设描述文件路径后重试
源文件路径报错重新保存配置,扩展会把头文件搜索路径重新指向 SDK 的相应目录
多核窗口自动切换确认使用与当前版本匹配的扩展安装包,并在多核模式下只选择需要调试的核心
暂停超时调试服务与目标配置版本是否匹配;目标板是否保持连接;是否误用全局复位;是否需要启用看门狗或定时器挂起命令
远程通信错误调试连接已失效或残留旧会话;先保存文件,再重新加载编辑器窗口后启动调试

九、版本升级

安装新版本扩展前建议先卸载旧版;安装完成后重新加载编辑器窗口使扩展生效。 工程配置文件建议提交到版本管理系统,以便跟踪配置变更、在团队之间复用同一套环境。

RISC-V 开发工具包 一站式芯片开发平台,从仿真到流片全链路支持

需要技术支持?

我们的工程师团队随时为您提供工具链使用、调试问题排查与定制开发支持。