我们先假定读者已经按照上一篇文章”在Ubuntu 18.04 LTS构建RISC-V开发环境“完成了基本软件环境的搭建。这一部分将讲解如何在实际的开发板上进行RISC-V的软件开发。本篇大致分为以下几个部分:
硬件环境的搭建。基于IDE的软件开发环境。基于命令行的软件开发环境。
1.硬件环境的搭建
本次使用的是RISC-V官方推荐的E2/E3/E5官方平台:Artix-35T的开发板
该平台为FPGA平台,在使用前需要将相关“硬件”写入,这需要连接直接连接USB;我们首先从官网下载E31体验核,只所以选择E31是因为相对FE300,E31更接近于真实的RISC-V硬件,下载地址:
https://dev.sifive.com/dashboard/deliverables/sifive_e31_fpga_eval_kit_bitstream/releases/v3p0/
下载完成后我们使用Vivado将程序写入开发板的Flash中,此时,重新Reset开发板,应该可以看到RGB的LED开始闪烁
由于开发板的USB端口主要是连接终端的UART接口和用于程序烧录的JTAG接口,而程序调试是使用E31内部的Debug电路,因此在程序被正常下载后我们需要连接用于调试的JTAG,具体连接方式见官方手册。这里放两张连好的线缆照片做参考:
说明:本例是采用E31核,而非FE300,因此在下载时需要特别注意。关于如何编译FE300核心在之后讲解。另外,如果使用虚拟机务必确认两个USB设备已经连入,而非只是连入主机。有两种方式:
通过虚拟机:
在Linux中通过命令lsusb确认,如果正常连入,应该可以看到如下两行:
2. 基于IDE的软件开发
RISC-V的最简单的软件开发是通过SiFive提供的Freedoom Studio。在上一篇文章中我们已经下载了Freedoom Studio的软件。该软件已经包含了Eclipse的IDE环境、ToolChain和用于Debug的OpenOCD等基本工具。在使用之前,我们需要为OpenOCD下载一些补丁:sudo apt-get install libusb-0.1-4
之后直接运行Freedoom Studio即可,大致如下:
3. 基于命令行的软件开发:
基于命令行的软件开发我们使用SiFive的ToolChain:freedom-e-sdk。我们假设用户已经下载完
1. 首先我们针对自己的RISC-V构建相关ToolChain。在这个例子里我们假定RISC-V使用SiFive FE300,以区别IDE环境
make tools BOARD=freedom-e300-arty
BOARD为您使用的平台,当前最新版本可以使用:
u coreplexip-e21-arty:
u coreplexip-e31-arty
u coreplexip-e51-arty
u freedom-e300-arty
u freedom-e300-hifive1
2. 程序编译:
make software PROGRAM=demo_gpio BOARD=freedom-e300-art
3. 使用GDB进行程序调试
make run_gdb PROGRAM=demo_gpio BOARD=freedom-e300-arty
说明:当前Freedom Studio即相关测试范例默认情况下并不支持freedom-e310-arty,因此,如果在FE300上进行软件开发则需使用命令行方式,当然,理论上通过修改设置可以使freedom Studio开发其他的SiFive平台。而命令行方式目前支持几乎所有SiFive的RISC-V实现