Giter VIP home page Giter VIP logo

riscv-phone-sw's Introduction

RISCV-V Phone Software

This repository houses source code and associated files used for building examples and runnable firmware for the RISC-V Phone project, designed by Group 16 in Oregon State University's 2018-2019 Electrical & Computer Engineering Senior Design course. The phone's hardware design is located here. Below are some instructions to help you get started with building and running the code.

Steps to compile the firmware in this project:

  1. Install rustc nightly via rustup (recommended method, and nightly is required to build) and set it as the default toolchain. (
    • rustup toolchain install nightly
    • rustup default nightly
  2. Install the riscv32imac-unknown-none-elf target via rustup
    • rustup target add riscv32imac-unknown-none-elf
  3. Install the RISC-V GNU Embedded Toolchain and OpenOCD. SiFive provides system binaries here with install instructions here, although the most pertinent steps are as follows:
    • Download the appropriate .tar.gz for your platform (both the GNU Toolchain and OpenOCD)
    • Unpack each to its own desired location/folder
    • Create the RISCV_OPENOCD_PATH and RISCV_PATH environment variables in your shell of choice, adding both bin folders to your PATH. For now you will also need CC_riscv32imac_unknown_none_elf (to satisfy the cargo setup). Below is an example of the necessary environment variables:
export RISCV_OPENOCD_PATH=/my/desired/location/openocd
export RISCV_PATH=/my/desired/location/riscv64-unknown-elf-gcc-<date>-<version>
export PATH=$PATH:$RISCV_PATH/bin:$RISCV_OPENOCD_PATH/bin
export CC_riscv32imac_unknown_none_elf=riscv64-unknown-elf-gcc
  1. Running make or cargo build should build the entire firmware; running make upload will flash a connected HiFive1 or phone board with the compiled binary. Note that to compile and run examples, you must do cargo build --examples and make upload EXAMPLE=<examplename> instead. To compile and run release versions, do cargo build --examples --release and make upload EXAMPLE=<examplename> RELEASE=true

** Note: ** Much of the inital work in this repository is exploratory, and code in the examples/ directory may not function properly.

Current Issues:

riscv-phone-sw's People

Contributors

codysseus avatar irandms avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

tct123

riscv-phone-sw's Issues

Change name of project to satisfy RISC-V trademark guidelines

We should consider changing the name of the project to best reflect its current state as "RISC-V Phone", and also to adhere to the trademark guidelines here.

To play devil's advocate against the trademark guidelines: the Rust ecosystem generally has riscv in place of risc-v, so changing it may look strange in the greater ecosystem. However we could still use RISC-V in things like README.md, in favor of RISCV.

No license

The project doesn't have a license; we need to add one.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.