前言

Windows环境下搭建基于Eclipse + RISC-V gcc编译器的RISC-V开发环境,配合openocd调试软件,可以实现RISC-V内核程序的编译、下载和调试。

准备工作

工欲善其事,必先利其器,RISC-V开发环境搭建之前,要先准备好所需要的软件,如下:

  • jdk-8u101-windows-x64.exe
  • Eclipse IDE for C/C++ developers
  • GNU MCU Eclipse Windows Build Tools
  • openocd
  • riscv32-unknown-elf-gcc

其中, jdk软件是在Eclipse不能打开时,才需要安装,如果能正常打开Eclipse则不需要安装,后面的几个软件都是压缩包形式,只需要解压到对应的位置,就可以直接使用,不需要安装。

安装Eclipse及工具链、调试工具

由于这些软件都是解压后就可以直接使用的,为了简化操作步骤,我已经把这些软件放在了一起,并压缩成了一个文件,直接解压就可以使用。

Eclipse.rar下载链接

链接:https://pan.baidu.com/s/1TvM_do0hdHHmJw2ARJNMWg 提取码:zj5f

包含:

  • Eclipse
  • GNU MCU Eclipse WindowsBuild Tools
  • openocd
  • riscv32-unknown-elf-gcc
  • Boot_Config

压缩包里,我添加了上一个帖子织女星开发板启动模式修改中介绍的用于切换启动模式的两个批处理文件,可以方便的对RV32M1的启动模式进行切换。

下载eclipse.rar文件之后,解压到本地,我的是解压到 F:\VEGA_Board\IDE\

其中GNU MCU Eclipse目录结构如下:

安装JAVA运行环境JRE

如果Eclipse.exe可以正常打开,就不用安装JAVA运行环境。我的电脑在运行Eclipse.exe,不能打开,出现A Java Runtime Environment or Java Development Kit(dkmust be available in order to run eclipse. balabala......,如下图

网上搜索一番,发现是没有安装JAVA运行环境,而Eclipse是基于JAVA运行的,然后找了一个jdk安装,再打开就好了。

jdk-8u101-windows-x64.exe下载

链接:https://pan.baidu.com/s/1AhZPEW03y90M2usa2L3c3w 提取码:umsr

下载完成之后,双击安装,一路Next就行,安装目录选择和Eclipse同一级。

如果还不能正常打开,可以尝试在环境变量中添加JAVA_HOME变量,变量值为jre目录下的bin文件夹,我的是在:F:\VEGA_Board\IDE\jre\bin,然后重新打开Eclipse。

主界面

配置编译链路径

Eclipse正常打开后,还需要配置编译工具和调试软件的路径。

1.配置全局编译工具路径

选择Windows->Preferences,选择MCU->Global Build Tools Path,设置全局编译工具的路径为[INSTALL_DIR]\eclipse\GNU MCU Eclipse\Build Tools\2.12-20190422-1053\bin

2.配置openocd调试软件路径

选择MCU-> Global OpenOCD Path,设置全局openocd调试软件路径[INSTALL_DIR]\eclipse\GNU MCU Eclipse\openocd\bin

3.配置RISC-V编译工具链

选择MCU-> Global RISC-V Toolchains Path,设置全局openocd调试软件路径[INSTALL_DIR]\eclipse\GNU MCU Eclipse\riscv32-unknown-elf-gcc\bin

升级板载调试器固件

为了能直接使用板载调试来直接调试RISC-V内核,需要把板子默认的CMSIS-DAP固件升级为JLink固件,并升级Jlink驱动,详情可以参考这篇帖子:织女星开发板调试器升级为Jlink固件,并把Jlink调试口和RISC-V调试口连接。

编译下载Demo工程

1.导入Demo工程

选择File->Import,或者是按快捷键Alt+F,然后再按I键,选择导入已经存在的工程,

这里我们选择RISC-V核SDK下的GPIO点灯程序,所在的位置:\rv32m1_sdk_riscv\boards\rv32m1_vega\driver_examples\gpio\led_output\ri5cy\riscveclipse

在弹出的界面,输入工程所在的目录,点击完成。

2.编译下载

示例程序很简单,就是让RGB中红色LED闪烁。

工程名称右键选择Build Project,或者是按快捷键Ctrl+B,编译整个工程。

如果没有错误,会显示

Info: Internal Builder is used for build
Info: Parallel threads used: 0 20:38:19 Build Finished. 0 errors, 0 warnings. (took 1s.876ms)

默认是编译的Debug版本,还可以选择编译Release版本。

编译无误后,点击Run->Run As->2 Local C/C++ Application

选择下载Debug还是Release版本的编程文件

下载日志。

Open On-Chip Debugger 0.10.0+dev-00433-g849f49ca (2019-01-04-07:48)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 1000 kHz
srst_only separate srst_gates_jtag srst_open_drain connect_deassert_srst
Info : mohor tap selected
Info : adv debug unit selected
Info : Option 1 is passed to adv debug unit
Info : core 0 selected
Info : add flash_bank rv32m1 rv32m1.flash0
Info : add flash_bank rv32m1 rv32m1.flash1
Warn : Failed to open device: LIBUSB_ERROR_NOT_SUPPORTED.
Info : J-Link LPCXpresso V2 compiled Sep 23 2016 12:14:15
Info : Hardware version: 1.00
Info : VTarget = 3.300 V
Info : clock speed 1000 kHz
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : adv debug unit is configured with option ADBG_USE_HISPEED
Info : Listening on port 3333 for gdb connections
Started by GNU MCU Eclipse
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : accepting 'gdb' connection on tcp/3333
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : Flash write discontinued at 0x00001424, next section at 0x000fff00
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
Info : JTAG tap: rv32m1.cpu tap/device found: 0x249511c3 (mfg: 0x0e1 (Wintec Industries), part: 0x4951, ver: 0x2)
===== RI5CY registers
(0) zero (/32): 0x00000000
(1) ra (/32): 0x00000000

3.显示效果

参考资料

历史精选


欢迎关注我的个人博客www.wangchaochao.top

或微信扫码关注我的公众号

手把手教你搭建织女星开发板RISC-V开发环境的更多相关文章

  1. 庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境

    庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境 一.介绍 说起微服务架构来,有一个环节是少不了的,那就是CI/CD持续集成的环境.当然,搭建CI/CD环境的工具很多, ...

  2. 手把手教你搭建Pytest+Allure2.X环境详细教程,生成让你一见钟情的测试报告(非常详细,非常实用)

    简介 宏哥之前在做接口自动化的时候,用的测试报告是HTMLTestRunner,虽说自定义模板后能满足基本诉求,但是仍显得不够档次,高端,大气,遂想用其他优秀的report框架替换之.一次偶然的机会, ...

  3. 手把手教你搭建SSH框架(Eclipse版)

    原文来自公众号[C you again],若需下载完整源码,请在公众号后台回复"ssh". 本期文章详细讲解了SSH(Spring+SpringMVC+Hibernate)框架的搭 ...

  4. 手把手教你搭建自己的Angular组件库 - DevUI

    摘要:DevUI 是一款面向企业中后台产品的开源前端解决方案,它倡导沉浸.灵活.至简的设计价值观,提倡设计者为真实的需求服务,为多数人的设计,拒绝哗众取宠.取悦眼球的设计.如果你正在开发 ToB 的工 ...

  5. 大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo

    上篇小弟分享了几个“即席查询与分析”的典型案例,引起了不少共鸣,好多小伙伴迫不及待地追问我们:说好的“手把手教你搭建即席查询与分析Demo”啥时候能出?说到就得做到,差啥不能差人品,本篇只分享技术干货 ...

  6. 手把手教你搭建FastDFS集群(下)

    手把手教你搭建FastDFS集群(下) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u0 ...

  7. 手把手教你搭建FastDFS集群(中)

    手把手教你搭建FastDFS集群(中) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u0 ...

  8. 手把手教你搭建FastDFS集群(上)

    手把手教你搭建FastDFS集群(上) 本文链接:https://blog.csdn.net/u012453843/article/details/68957209        FastDFS是一个 ...

  9. 手把手教你搭建 ELK 实时日志分析平台

    本篇文章主要是手把手教你搭建 ELK 实时日志分析平台,那么,ELK 到底是什么呢? ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch.Logstash 和 Kiban ...

随机推荐

  1. 输出错误long类型

    Microsoft Visual C++ 输出不了long 类型的数字怎么办? 在C/C++中,64为整型一直是一种没有确定规范的数据类型.现今主流的编译器中,对64为整型的支持也是标准不一,形态各异 ...

  2. NodeJS4-2静态资源服务器实战_实现获取文件路径

    实例2 : 实现获取文件路径,判断是文件还是文件夹,如果是文件夹就显示里面的列表文件,如果是文件就显示里面的内容 defaultConfig.js module.exports={ root:proc ...

  3. cannot resolve symbol AppCompatActivity

    记一次配置性的问题 今天复习自定义控件的时候新建一个project,生成的代码冒红,可把我给郁闷了.我知道我的配置是正确的,可是... 它出现了cannot resolve symbol AppCom ...

  4. CSS | 自适应两栏布局方法

    html代码: <div class="main"> <div class="left" style="background: #0 ...

  5. Python高级应用程序设计任务

    Python高级应用程序设计任务要求 用Python实现一个面向主题的网络爬虫程序,并完成以下内容:(注:每人一题,主题内容自选,所有设计内容与源代码需提交到博客园平台) 一.主题式网络爬虫设计方案( ...

  6. DHCP服务相关实验

    一.DHCP 相关介绍 1.dhcp服务相关 软件名: dhcp #DHCP服务软件包 dhcp-common #DHCP命令软件包(默认已安装) 服务名: dhcpd #DHCP服务名 dhcrel ...

  7. 03-EF Core笔记之查询数据

    EF Core使用Linq进行数据查询. 基本查询 微软提供了一百多个示例来演示查询,地址:https://code.msdn.microsoft.com/101-LINQ-Samples-3fb98 ...

  8. Activiti架构分析及源码详解

    目录 Activiti架构分析及源码详解 引言 一.Activiti设计解析-架构&领域模型 1.1 架构 1.2 领域模型 二.Activiti设计解析-PVM执行树 2.1 核心理念 2. ...

  9. AWVS 10.5使用指南

    前言 AWVS是一款可与IBM AppScan比肩的.功能十分强大的Web漏洞扫描器.由Acunetix开发,官方站点提供了关于各种类型漏洞的解释和如何防范,具体参考:Acunetix Web Vul ...

  10. Winform中实现批量文件复制(附代码下载)

    场景 效果 将要批量复制的文件拖拽到窗体中,然后点击下边选择目标文件夹,然后点击复制按钮. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公 ...