Git Product home page Git Product logo

riscv-tools's Introduction

riscv-tools Build Status

This repository houses a set of RISC-V simulators and other tools, including the following projects:

  • Spike, the ISA simulator
  • riscv-tests, a battery of ISA-level tests
  • riscv-opcodes, the enumeration of all RISC-V opcodes executable by the simulator
  • riscv-pk, which contains bbl, a boot loader for Linux and similar OS kernels, and pk, a proxy kernel that services system calls for a target-machine application by forwarding them to the host machine

Several RISC-V tools that were previously maintained through this repository have since been upstreamed to their parent projects and are no longer included here. Your favorite software distribution should already have packages for these upstream tools, but if it doesn't then here are a handful of my favorites:

  • Your favorite software distribution may already have packages that include a RISC-V cross compiler, which is probably the fastest way to get started. As of writing this README (March, 2019) I can trivially find packages for ALT Linux, Arch Linux, Debian, Fedora, FreeBSD, Mageia, OpenMandriva, openSUSE, and Ubuntu. pkgs.org appears to be a good place to find an up to date list, just search for "riscv".
  • crosstool-ng can build RISC-V cross compilers of various flavors.
  • The RISC-V Port of OpenEmbedded builds a cross compiler, Linux kernel, and enough of userspace to do many interesting things.
  • buildroot is a lighter weight cross compiled Linux distribution.

This repository uses crosstool-ng to configure a riscv64-unknown-elf toolchain.

Quickstart

$ git submodule update --init --recursive
$ export RISCV=/path/to/install/riscv/toolchain
$ ./build.sh

Ubuntu packages needed:

$ sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev libusb-1.0-0-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev device-tree-compiler pkg-config libexpat-dev

Fedora packages needed:

$ sudo dnf install autoconf automake @development-tools curl dtc libmpc-devel mpfr-devel gmp-devel libusb-devel gawk gcc-c++ bison flex texinfo gperf libtool patchutils bc zlib-devel expat-devel

Note: This requires a compiler with C++11 support (e.g. GCC >= 4.8). To use a compiler different than the default, use:

$ CC=gcc-5 CXX=g++-5 ./build.sh

Note for OS X: We recommend using Homebrew to install the dependencies (libusb dtc gawk gnu-sed gmp mpfr libmpc isl wget automake md5sha1sum) or even to install the tools directly. This repo will build with Apple's command-line developer tools (clang) in addition to gcc.

riscv-tools's People

Contributors

aswaterman avatar yunsup avatar palmer-dabbelt avatar mwachs5 avatar timsifive avatar sbeamer avatar sagark avatar zhemao avatar colinschmidt avatar richardxia avatar ccelio avatar qmn avatar sdtwigg avatar p12ngh-zz avatar srivatsa611y avatar seldridge avatar rimasaviz avatar a0u avatar p12ngh avatar hcook avatar wr-ssl avatar terpstra avatar joshua5201 avatar tommythorn avatar irandms avatar nonerkao avatar mbrickn avatar schoeberl avatar martinmaas avatar maaku avatar

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.