专栏首页电子电路开发学习手把手教你搭建织女星开发板RISC-V开发环境

手把手教你搭建织女星开发板RISC-V开发环境

前言

前一段时间分享的活动NXP恩智浦VEGA织女星开发板免费申请,不知道大家申请了吗?现在官方中文网站open-isa.cn刚上线不久,开发板很好申请,身边几个朋友都申请到了,还没申请的朋友可以申请一块体验一下RISC-V内核MCU的开发。本篇文章介绍一下,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 MCUEclipse目录结构如下:

安装JAVA运行环境JRE

如果Eclipse.exe可以正常打开,就不用安装JAVA运行环境。我的电脑在运行Eclipse.exe,不能打开,出现 AJavaRuntimeEnvironmentorJavaDevelopmentKit(dkmust be availableinorder 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->GlobalBuildToolsPath,设置全局编译工具的路径为 [INSTALL_DIR]\eclipse\GNU MCUEclipse\BuildTools\2.12-20190422-1053\bin

2.配置openocd调试软件路径

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

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

选择 MCU->GlobalRISC-VToolchainsPath,设置全局openocd调试软件路径 [INSTALL_DIR]\eclipse\GNU MCUEclipse\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闪烁。

工程名称右键选择 BuildProject,或者是按快捷键 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->RunAs->2LocalC/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.显示效果

参考资料

  • RV32M1VegaDevelopEnvironmentSetup.pdf

本文分享自微信公众号 - 电子电路开发学习(mcu149),作者:wcc149

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [经验]使用Keil MDK+Jlink-OB下载失败的解决办法

    同样的工程和调试器,换 Win 10 系统,下载调试完美运行。两者的差别就是J-Link 的驱动程序版本问题。原来系统上的驱动程序版本是V6.32i,而现在的驱...

    单片机点灯小能手
  • 【ST开发板评测】Nucleo-F411RE开箱报告

    面包板又举办开发板试用活动了,很荣幸能获得一块ST官方的Nucleo-F411RE开发板,感谢面包板社区和ST意法半导体的赞助,这是我第一次试用官方的开发板,收...

    单片机点灯小能手
  • 如何使用串口来给STM32下载程序

    第一次学习STM32的时候,不知道有调试器这个东西,所以一直是通过串口来给STM32下载程序,下载速度也还算可以,一般是几秒钟完成。后来用了调试器,可以直接在K...

    单片机点灯小能手
  • 关于面试,你是如何面对的呢?

    面试,对于职场的人来说每个人都必须经历的。那作为职场人,看到很多案例,总结的不太笼统,那么该如何面对经常问的话呢?该如何回答比较好呢?以下是通过多个事例进行汇总...

    用户6367961
  • 速读原著-TCP/IP(TCP重新分组)

    当T C P超时并重传时,它不一定要重传同样的报文段。相反, T C P允许进行重新分组而发送一个较大的报文段,这将有助于提高性能(当然,这个较大的报文段不能够...

    cwl_java
  • Java调用native本地方法实例:控制台下的中英文字符对齐问题

    小伙伴们在初学Java的时候一般都是采用Eclipse或其他IDE环境,中英文混合时的对齐问题想必都或多或少地困扰过大家。

    老九君
  • Java调用native本地方法实例:控制台下的中英文字符对齐问题

    大家在初学Java的时候一般都是采用Eclipse或其他IDE环境,中英文混合时的对齐问题想必都或多或少地困扰过大家,比如下面的代码和在Eclipse中的显示效...

    老九学堂-小师弟
  • Maven依赖本地jar包,上传第三方jar包

    前言:maven管理项目,经常用到中央仓库没有的第三方jar包,需要将本地的jar包发布到私有库供项目使用。

    王念博客
  • [Jenkins]5分钟系列之五常用插件介绍

    一、准备工作 1.1、环境准备 软件版本功能jenkins2.95提供平台1.2、推荐阅读 分分钟部署安装jenkins 二、个人常用插件介绍 2.0、说明

    追马
  • 9.5 sed(下)

    sed工具 sed '1'd test.txt sed '1,3'd test.txt sed '/oot/'d test.txt sed '1,2s/ot/t...

    运维小白

扫码关注云+社区

领取腾讯云代金券