3109|8

2933

帖子

4

TA的资源

五彩晶圆(中级)

楼主
 

升级一下嵌入式RISC-V编译器 [复制链接]

 

ch32v103c8t6的板子使用的是MounRiver Studio工具开发,这个工具的集成度还是不错的,但是里面的项目模板有点通过“简单”了。看来要详细研究芯片的工作原理有点懵逼。所以就花了些时间来研究一下,发现该工具集成的是xpack出品的gnu risc-v工具和OpenOCD。我就花了好长的时间下载了xpack-riscv-none-embed-gcc-10.1.0-1.1-win32-x64.zip这个最新版本的工具。辛辛苦苦的一番配置,结果很是悲剧MounRiver的IDE无法下载程序了,于是只好卸了重装吧,经过几番折腾的成果就是了解到MounRiver的工具的makefile文件在哪里了。

看到了吧就是这里啦。

赶忙把下载的文件xpack-riscv-none-embed-gcc-10.1.0-1.1-win32-x64.zip重新解压,我把文件的主目录命名为F:\RVGCC后面的操作都是这个目录

openocd的目录也考到这个目录下,make工具也是这个目录

好了,这下就可以编译了。

首先,设置目录路径

set PATH=%PATH%;F:\RVGCC\bin;F:\RVGCC\BTools\bin;F:\RVGCC\OpenOCD\bin

二、找到项目目录路径

cd  F:\MounRiver\MounRiver_Studio\workspace\CH32V103C8T6

三、编译

make clean
make -j8 all

先清楚一下原来工具生成的文件。再编译

出现了警告,不用理它。因为不符合c的标准才出现的

找到CH32V103C8T6.hex烧写到开发板测试

谢谢!各位一切正常,已经看到闪烁的led和printf的信息了。可能这次的实验是成功的吧,当然出现的警告需要测试看看对程序有没有上面影响。在给各位一个严肃的结论。这几天访问国外的站实在是慢。很是煎熬。所以后面的实验还是需要莫大的勇气的。

最新回复

点赞,先收藏下来,以后慢慢学习,菜鸟加油!!!   详情 回复 发表于 2024-9-6 11:47
点赞 关注
 
 

回复
举报

2933

帖子

4

TA的资源

五彩晶圆(中级)

沙发
 

基于eclipse的工具链我是很讨厌的。有两个毛病真是受不了!

一、启动比较慢,又吃内存。

二、工程文件都堆在屏幕上看着很是闹心。

当然ide本身的语法提示也比较若,但是能使而已。

我是打算换成vscode的!后面测试顺利的化就是试试弄一下了。

 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

我测试的时候用的是Ide,已经习惯了vscode,用这个ide还不是很习惯。

 
 
 

回复

2933

帖子

4

TA的资源

五彩晶圆(中级)

4
 

最新测试这个版本不能使用!经测试在使用中断的时候不正常,程序进入中断后,只执行一次,下次就无法中断了,目前不知道是什么原因造成的

 
 
 

回复

2933

帖子

4

TA的资源

五彩晶圆(中级)

5
 
最新测试这个版本不能使用!经测试在使用中断的时候不正常,程序进入中断后,只执行一次,下次就无法中断了,目前不知道是什么原因造成的
 
 
 

回复

2933

帖子

4

TA的资源

五彩晶圆(中级)

6
 

经过反汇编对比发现不能编译的原因!

机器自带的编译编译的中断程序返回汇编指令是    26:    30200073     mret

而新版的编译器因为无法识别void EXTI0_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));中的属性汇编指令是

32:    8082                    ret

所以造成中断无法返回!

 
 
 

回复

2933

帖子

4

TA的资源

五彩晶圆(中级)

7
 
void NMI_Handler(void) __attribute__((interrupt("machine")));
void HardFault_Handler(void) __attribute__((interrupt("machine")));
void EXTI0_IRQHandler(void) __attribute__((interrupt("machine")));


//void NMI_Handler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
//void HardFault_Handler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
//void EXTI0_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));

现在通过修改程序目前测试已经可以啦。没有出现任何问题

 

 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

8
 

risc-v 前途远大

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

419

帖子

0

TA的资源

纯净的硅(中级)

9
 

点赞,先收藏下来,以后慢慢学习,菜鸟加油!!!

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表