目录

硬件准备

  • 沁恒CH32V003F4P6开发板
  • WCH-LinkE

MounRiver Studio Community 环境

使用 MounRiver Studio Community IDE 进行开发是比较简单的一种方式, 前往 http://mounriver.com/download 下载 MounRiver_Studio_Community_Linux_V130, 解压后

  • 参照 beforeinstall/start.sh 的内容, 添加动态链接库文件以及udev规则文件
  • 运行可执行文件 MounRiver Studio_Community 即可启动MRS

创建项目

File -> New -> MounRiver Project

  • Project Name: 项目名称,随便输入
  • Use Default Location: 使用默认的工作空间或另外指定
  • 勾选 RISC-V Core, 因为要查找的是 CH32V003, 在下面的选择框中选中 CH32V003, 然后选择 CH32V003F4P6
  • 其它默认

点击Finish后, IDE会创建一个带内容的项目模板

编译项目

可以直接按 Ctrl + B 或从菜单 Project -> Build All 编译. 如果提示编译错误, 可能是工具链未设置, 需要设置一下工具链路径

全局默认工具链路径设置

菜单 Window -> Preferences -> MCU, 只需要设置和CH32V003相关的工具链

  • Global OpenOCD Path, 设置为自带的openocd路径, 例如 /opt/wch/MRS_Community/toolchain/OpenOCD/bin
  • Global RISC-V Toolchains Paths, 设置为自带的gcc路径, 例如 /opt/wch/MRS_Community/toolchain/RISC-V Embedded GCC/bin

项目工具链路径设置

Project -> Properties 下可以设置当前项目相关的工具链路径, 条目和全局的一样.

烧录

Flash -> Config, 配置烧录选项

  • 点击第一个图标查询编程器状态
  • 如果开启了读写保护(底下状态为绿), 要点击解锁图标解锁
  • 检查Target中的MCU类型, Target File是否正确
  • Options默认全部勾选

应用后, 按F8就会开始烧录

问题处理

启动后无创建MounRiver Project的选项

如果将解压得到的 MRS_Community 目录修改为其它用户, 例如将其移动到 /opt 下并 chown -R root:root, 那么在启动后, 在 New 菜单中会看不到创建 MounRiver Project 的选项, 是因为有几个 plugins 的权限不正确导致, 文件权限为600, 应该修改为644.

plugins目录下 com.mounriver 开头的文件

-rw-r--r-- 1 root root   115170 Sep 20 00:35 com.mounriver.editor.ld_1.8.2.jar
-rw------- 1 root root 581702 Oct 10 19:19 com.mounriver.flash_1.8.2.jar
-rw------- 1 root root 2088946 Oct 10 19:19 com.mounriver.project_1.8.2.jar
-rw-r--r-- 1 root root 141287 Sep 22 2020 com.sun.el_2.2.0.v201303151357.jar
# 执行命令
sudo chmod 644 com.mounriver.*

以及 plugins/org.eclipse.epp.package.embedcdt_4.17.0.20200921-0821 目录下的几个png文件

-rw-r--r-- 1 root root   1036 Sep 22  2020 about.properties
-rw------- 1 root root 777 Sep 7 2021 eclipse16.png
-rw------- 1 root root 18913 Sep 7 2021 eclipse256.png
-rw------- 1 root root 1739 Sep 7 2021 eclipse32.png
-rw------- 1 root root 2826 Sep 7 2021 eclipse48.png
-rwxrw-r-- 1 root root 95552 Apr 3 2020 eclipse_lg.png*
-rw-r--r-- 1 root root 10655 Sep 22 2020 intro-eclipse.svg
drwxr-xr-x 3 root root 4096 Sep 22 2020 META-INF/
-rw------- 1 root root 137750 Sep 1 2021 MounRiver.png
drwxr-xr-x 2 root root 4096 Sep 22 2020 org.eclipse.ui.intro.universal.solstice/
# 执行命令
sudo chmod 644 *.png

Makefile, VSCode 环境

如果倾向于使用其它的IDE, 例如VSCode, 则需要使用 Makefile 方式进行配置

  • 硬件 依然使用 CH32V003F4P6开发板以及WCH-LinkE,
  • 软件 从http://mounriver.com/download下载 MRS_Toolchain_Linux_x64_V1.60.tar.xz, 注意需要使用V1.60, 旧版本不支持CH32V003.

注意: 当前CH32V系列的开发都不能使用公版RISC-V GCC和公版OpenOCD, 因为包含沁恒定制部分, 未在开源项目主干中支持.

配置步骤

解压工具链后

  • 参照 beforeinstall/start.sh 的内容, 添加动态链接库文件以及udev规则文件
  • 将工具链移动到合适的位置, 并修改owner为root避免误修改

导出项目模板

git clone https://gitee.com/iosetting/ch32v003-template.git

根据自己本地环境, 修改Makefile中的配置

TOOL_CHAIN_PATH ?= /opt/gcc-riscv/riscv-wch-embedded-gcc-v1.60/bin
OPENOCD_PATH ?= /opt/openocd/wch-openocd-v1.60/bin

编译和烧录

# 清空
make clean
# 编译
make
# 烧录 = 擦除 + 烧录 + 重启运行
make flash
# 擦除
make erase
# 重启运行
make reset

编译参数

CH32V003编译的基本参数如下, 注意 march 和 mabi, 和 CH32V103 是不一样的, 使用CH32V103参数编译写入后不运行, 这些参数是从MRS中实际执行的编译命令中提取的

CCFLAGS := -march=rv32ec \
-mabi=ilp32e \
-msmall-data-limit=0 \
-msave-restore \
-Os \
-fmessage-length=0 \
-fsigned-char \
-ffunction-sections \
-fdata-sections \
-fno-common \
-Wunused -Wuninitialized -g

沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置的更多相关文章

  1. 二维码解码器Zbar+VS2012开发环境配置

    Zbar条码解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件.手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Co ...

  2. 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置

    目录 沁恒CH32V103C8T6(一): 核心板焊接和Windows开发环境配置 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置 硬件准备 CH32V103 开发板 ...

  3. 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录

    目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 StdPeriphLi ...

  4. 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  5. 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  6. Ubuntu 12.04 搭建 Eclipse Android 开发环境(转)

    Ubuntu 12.04 搭建 Eclipse Android 开发环境 http://blog.sina.com.cn/s/blog_93dc666c0101b39p.html (2012-09-0 ...

  7. OK335xS Ubuntu 12.04.1 版本 Android 开发环境搭建

    /******************************************************************************************** * OK33 ...

  8. 开发环境配置--Ubuntu+Qt4+OpenCV(二)

    同系列文章 1. 开发环境配置--Ubuntu+Qt4+OpenCV(一) 2. 开发环境配置--Ubuntu+Qt4+OpenCV(二) 3. 开发环境配置--Ubuntu+Qt4+OpenCV(三 ...

  9. C#进行CAD二次开发环境配置

    最近被公司分配到了做CAD二次开发.也是初次接触这方面的东西,其实是有些无从下手的感觉.因为公司这边也没有人有时间带我,只能是自己看书,然后再写一些Demo,再结合实际的应用来一点点的学习.废话不多说 ...

随机推荐

  1. TypeScript 项目报错 Unknown file extension ".ts"

    下图是该问题的详细报错截图,经过多次捣鼓,初步猜测是模块有问题,要用 ES Module 还真是曲折,最不容易出错的就是 CommonJS 模块: 在百度.Bing 上搜索了好久的帖子也都没有相关的解 ...

  2. 如何保证遍历parent的时候的task的存在性

    在一次crash的排查过程中,有这么一个内核模块,他需要往上遍历父进程, 但是在拿父进程task_struct中的一个成员的时候,发现为NULL了, 具体查看父进程,原来它收到信号退出中. 那么怎么保 ...

  3. RabbitMQ协议-AMQP 0-9-1 (高级消息队列协议)

    工作模型 producer:生产者 Connection:TCP长连接,AMQP 0-9-1 连接通常是长期存在的.AMQP 0-9-1 是一个应用层协议,它使用 TCP 进行可靠传输.连接使用身份验 ...

  4. 【java】学习路径16-重写Object方法(equals()等)

    在平时开发中,想要比较自定义类对象中的特定成员时,我们需要逐一手动比较,非常不方便. 举个栗子,我们有两个cafe对象,我们想比较两杯咖啡的价格是否一样,一般来说我们使用getter()来比较,但是这 ...

  5. 在Boss直聘上投简历时,怎样保证有新消息时能及时收到

    最近在Boss直聘上投简历,偶尔会有HR给我发消息,不想在电脑上错过这些消息,但我又不能时时刻刻盯着这个页,怎么办呢? 这时,我想起来,之前做过的Chrome插件,如果检测到Boss直聘上新消息数大于 ...

  6. 第三课:nodejs npm和vue

    1.安装node js 2.node js给windows提供了一个可以直接执行js的环境{node提供翻译} 3.npm是包管理器 a.npm是nodejs的组成部分 b.管 包(package) ...

  7. 员工离职困扰?来看AI如何解决,基于人力资源分析的 ML 模型构建全方案 ⛵

    作者:韩信子@ShowMeAI 数据分析实战系列:https://www.showmeai.tech/tutorials/40 机器学习实战系列:https://www.showmeai.tech/t ...

  8. 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档

    背景 在计量领域中,计量检定是一种重要形式,主要用于评定计量器具的计量性能,确定其量值是否准确一致,实现手段包括计量检验.出具检定证书和加封盖印等. 在检定证书这一环节,存在一个难点,就是无法在线预览 ...

  9. 手把手教你用Java获取IP归属地

    前几个月微信公众号上线了IP归属地的功能,后续知乎.抖音等平台纷纷添加了该功能.如果是国内的用户精确到省份,国外用户精确到国家.本文就使用Java实现获取IP归属地. ! 主要讲解几个步骤: Java ...

  10. Odoo自建应用初步总结(一)

    学习了<Odoo快速入门与实践 Python开发ERP指南>(刘金亮 2019年5月第1版 机械工业出版社)第6章自建应用入门后进行一下总结. 因为本书作者使用Odoo11,而目前最新版本 ...