VSCode+EIDE开发CH32V系列RISC-V MCU

1. VS Code

Visual Studion Code (VS Code),是一款由微软开发且跨平台的免费源代码编辑器。该软件支持语法高亮、代码自动补全(又称 IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和 Git 版本控制系统。

2. Embedded IDE 简介

Embedded IDE (EIDE)是一款适用于 8051/STM8/Cortex-M/RISC-V 的单片机开发环境。

能够在 vscode 上提供 8051, STM8, Cortex-M, RISC-V 项目的 开发, 编译, 烧录 功能。

3. 在VS Code中安装EIDE插件

4. 工具链配置

eide还需要调用相应的工具链才可完成MCU的工程编译,

8051 MCU 的工具链SDCC或者Keil C51, RISC-V MCU的工具链RISC-V GCC

"设置工具链路径" 中选项的图标表明了工具链路径设置的总体状态

  • :某一个工具链已设置完毕
  • x :还没有为任何工具链设置安装路径

工具链可以通过在线的方式安装,有的工具链上github中下载,需要考虑网络情况,如RISC-V官方工具链下载网址

沁恒RISC-V系列MCU支持官方RISC-V GCC工具链,不过其自研的RISC-V架构青稞系列处理器增加了自定义压缩指令、硬件压栈、免表中断等功能,需要使用其自家的工具链。工具链在MounRiver Studio(MRS) 安装目录下:D:\MounRiver\MounRiver_Studio\toolchain\RISC-V Embedded GCC\bin

为EIDE配置本地 RISC-V 编译工具链(由MRS提供):

工具链安装目录 是指你的编译器的根目录

示例:

  • 如果你的 GCC 编译器位置是:D:/MounRiver/MounRiver_Studio/toolchain/RISC-V Embedded GCC/bin/riscv-none-embed-gcc.exe
  • 那么,你需要将 工具链安装目录 设置为 D:/MounRiver/MounRiver_Studio/toolchain/RISC-V Embedded GCC,因此对于 GCC 来说,这个目录就是 bin 文件夹所在的目录

详细过程参考eide 使用教程

5. openocd下载配置

通过openocd和wchlink可以对沁恒RISC-V MCU进行程序下载。

在EIDE中需要配置openocd的路径,该工具同样也在MRS的安装目录下:D:\MounRiver\MounRiver_Studio\toolchain\OpenOCD\bin\openocd.exe

6. 新建工程

通过github远程仓库模板新建工程,需要保证能正常访问github

github中的模板更新并不及时。

模板中的sdk文件夹中的 Core、Debug、Ld、Peripheral、Startup文件夹可能并不是最新的,

建议在官网下载最新的evt,替换对应的文件即可。

7.Debug 配置

通过OpenOCD进行DEBUG调试,可以借用 Cortex-Debug插件,

launch.json 配置如下:

{
"version": "0.2.0",
"configurations": [
{
"cwd": "${workspaceRoot}",
"executable": "./build/Debug/CH32V307_hello_world.elf", //替换对应的elf文件路径
"name": "Debug with OpenOCD",
"request": "launch",
"type": "cortex-debug",
"servertype": "openocd",
"searchDir": [],
"runToEntryPoint": "main",
"showDevDebugOutput": "none",
"device": "CH32V307",
"svdFile": "D:/MounRiver/MounRiver_Studio/template/wizard/WCH/RISC-V/CH32V307/NoneOS/CH32V307xx.svd", //MRS安装目录
"toolchainPrefix": "D:/MounRiver/MounRiver_Studio/toolchain/RISC-V Embedded GCC/bin/riscv-none-embed-gdb.exe", //MRS安装目录
"configFiles": [
"D:/MounRiver/MounRiver_Studio/toolchain/OpenOCD/bin/wch-riscv.cfg" //MRS安装目录
]
}
]
}

VSCode+EIDE开发CH32V系列RISC-V MCU的更多相关文章

  1. 【Xamarin开发 Android 系列 13】 应用打包部署

    原文:[Xamarin开发 Android 系列 13] 应用打包部署 开始倒叙咯................ 先更新大宝部署吧,这个章节比较的Easy,童鞋们不用费脑筋.点解?从界面上填写几个参 ...

  2. 开发快平台(M302I小e开发板系列教程)

    开发快平台(M302I小e开发板系列教程) 开发块平台ESP8266模块相关理解 一. M302I小e开发板源码注释,源码基于:v1.4.0.8-u34.zip 1. user_main.c /*** ...

  3. VSCode高效开发插件

    VSCode 必装的 10 个高效开发插件 https://www.cnblogs.com/parry/p/vscode_top_ten_plugins.html 本文介绍了目前前端开发最受欢迎的开发 ...

  4. 现代前端库开发指南系列(二):使用 webpack 构建一个库

    前言 在前文中,我说过本系列文章的受众是在现代前端体系下能够熟练编写业务代码的同学,因此本文在介绍 webpack 配置时,仅提及构建一个库所特有的配置,其余配置请参考 webpack 官方文档. 输 ...

  5. C#开发BIMFACE系列44 服务端API之计算图纸对比差异项来源自哪个图框

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前两篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>.<C#开发BIMFACE系列43 ...

  6. C#开发BIMFACE系列46 服务端API之离线数据包下载及结构详解

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列45 服务端API之创建离线数据包>中通过调用接口成功的创建一个离线数 ...

  7. C#开发BIMFACE系列48 Nginx部署并加载离线数据包

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列47 IIS部署并加载离线数据包>中详细介绍了IIS部署并访问的完整步 ...

  8. VSCode PHP 开发环境配置 详细教程

    VSCode PHP 开发环境配置 详细教程 这篇文章主要介绍了VScode+PHPstudy配置PHP开发环境的步骤,整理了官方以及优秀第三方的内容,对于学习和工作有一定借鉴意义. 配置过程 第一步 ...

  9. phoenix 开发API系列 目录

    phoenix 开发API系列(一)创建简单的http api phoenix 开发API系列(二)phoenix 各类 api 实现方式 phoenix 开发API系列(三)phoenix api ...

  10. Web程序员开发App系列 - 开发我的第一个App,源码下载

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

随机推荐

  1. 调用后台接口实现Excel导出功能以及导出乱码问题解决

    实现效果 在导出表格数据的时候,通常分为两种情况 页面列表数据导出 接口返回数据导出 这里主要介绍接口返回数据导出,关于页面的列表数据导出,请看另一篇:vue3+element表格数据导出 接口返回数 ...

  2. 微信小程序【关于地址信息的接入以及自动选择当前位置】

    在做收货地址的时候,通常会让用户填写或者打开地图选择收获地址,此时就需要用到微信提供的地址API,在使用地址API的时候需要注册对应的API,而且地址API会经常调整,需要关注官方公告,下面就是关于地 ...

  3. 02Python输入输出

    输入输出 print()函数 sep=' ' 数据之间一空格分割,默认是空格 end='\n' 在打印后会额外的加一个数据,默认是换行符 print("hello", " ...

  4. ASP.NET Core知识之RabbitMQ组件使用(二)

      近期,业务调整,需要内网读取数据后存入到外网,同时,其他服务器也需要读取数据,于是我又盯上了RabbitMQ.在展开业务代码前,先看下RabbitMQ整体架构,可以看到Exchange和队列是多对 ...

  5. js/jquery 所有页面点击事件(持续更新)

    // 切换菜单 <div class="box">                <div class="box-item" id=" ...

  6. Postgresql动态共享内存类型

    一.简介 linux为多个进程通信提供了不同的IPC机制,如:System V , POSIX 和 MMAP,所以Postgresql共享内存管理也支持以上类型. 在Postgresql中可以使用dy ...

  7. 【MySQL速通篇001】5000字吃透MySQL部分重要知识点

    写在前面 这篇5000多字博客也花了我几天的时间,主要是我对MySQL一部分重要知识点的理解[后面当然还会写博客补充噻,欢迎关注我哟],当然这篇文章可能也会有不恰当的地方[毕竟也写了这么多字,错别字可 ...

  8. 后台Mysql存储过程调用

    https://blog.csdn.net/weixin_43695211/article/details/127883536

  9. [Unity]关于Unity中的触摸类Input.Touch以及简单的虚拟摇杆实现

    InputTouch 使用Unity开发的游戏大多是移动端游戏,而一些移动端游戏完全使用触摸操作而不是点击Button Unity使用Input.Touch来管理触摸操作 Input.TouchCou ...

  10. 找出一组数中出现次数最多的数(csp201312-1)

    问题描述:找出一组数字出现次数最多的数,如果有多个这样的数,输出其中最小的一个. 算法:sort排序,遍历数组,每遍历一个数,查出它已经出现的次数. 代码: #include<bits/stdc ...