沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置
目录
硬件准备
- 沁恒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开发环境配置的更多相关文章
- 二维码解码器Zbar+VS2012开发环境配置
Zbar条码解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件.手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Co ...
- 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置
目录 沁恒CH32V103C8T6(一): 核心板焊接和Windows开发环境配置 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置 硬件准备 CH32V103 开发板 ...
- 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录
目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 StdPeriphLi ...
- 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明
目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...
- 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明
目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...
- Ubuntu 12.04 搭建 Eclipse Android 开发环境(转)
Ubuntu 12.04 搭建 Eclipse Android 开发环境 http://blog.sina.com.cn/s/blog_93dc666c0101b39p.html (2012-09-0 ...
- OK335xS Ubuntu 12.04.1 版本 Android 开发环境搭建
/******************************************************************************************** * OK33 ...
- 开发环境配置--Ubuntu+Qt4+OpenCV(二)
同系列文章 1. 开发环境配置--Ubuntu+Qt4+OpenCV(一) 2. 开发环境配置--Ubuntu+Qt4+OpenCV(二) 3. 开发环境配置--Ubuntu+Qt4+OpenCV(三 ...
- C#进行CAD二次开发环境配置
最近被公司分配到了做CAD二次开发.也是初次接触这方面的东西,其实是有些无从下手的感觉.因为公司这边也没有人有时间带我,只能是自己看书,然后再写一些Demo,再结合实际的应用来一点点的学习.废话不多说 ...
随机推荐
- Unity3D学习笔记12——渲染纹理
目录 1. 概述 2. 详论 3. 问题 1. 概述 在文章<Unity3D学习笔记11--后处理>中论述了后处理是帧缓存(Framebuffer)技术实现之一:而另外一个帧缓存技术实现就 ...
- 关于virtio_net网卡命名的小问题
最近看了一个小问题,涉及到一致性网络设备命名(Consistent Network Device Naming),在此记录一下. 系统是 4.18.0-240.el8.x86_64,centos 8. ...
- ipi发送阻塞导致crash
3.10的内核, 在子进程退出的时候,发送信号通知父进程,此时是持有父进程的sighand中的spinlock的,然后父进程和该子进程不在一个核上,发送ipi的reschedule中断给对应的核, 但 ...
- linux scsi相关的一些学习笔记
最近看scsi相关处理的一些备忘,比较零碎,仅作参考. 先从最显而易见的打印入手: [0:0:0:0] disk ATA INTEL SSDSC2BX20 0150 - [0:0:1:0] dis ...
- 小样本利器3. 半监督最小熵正则 MinEnt & PseudoLabel代码实现
在前两章中我们已经聊过对抗学习FGM,一致性正则Temporal等方案,主要通过约束模型对细微的样本扰动给出一致性的预测,推动决策边界更加平滑.这一章我们主要针对低密度分离假设,聊聊如何使用未标注数据 ...
- Java方法总结
什么是方法 何谓方法 就是一个方法只完成一个功能,这样利于后期的扩展 例子: public static void main(String[] args) { System.out.printl ...
- day30-注解
Java注解 1.注解的理解 注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包.类.方法.属性.构造器.局部变量等数据信息 和注释一样,注解不影响程序逻辑,但注解可以被 ...
- 免费内网穿透服务Localtunnel
Localtunnel 将为您分配一个唯一的可公开访问的 url,它将所有请求代理到您本地运行的网络服务器. 快速开始 全局安装 Localtunnel(需要 NodeJS)以使其在任何地方都可以访问 ...
- docker commit镜像
commit镜像 docker commit 从容器创建一个新的镜像. docker commit 提交容器副本使之成为一个新的镜像 #语法 docker commit -m="提交的描述信 ...
- Spark 读取HDFS csv文件并写入hive
package com.grady import org.apache.spark.SparkConf import org.apache.spark.sql.{Row, SaveMode, Spar ...