This project provides support for SiFive RISC-V microcontrollers.
The project is hosted on GitHub as micro-os-plus/devices-sifive-xpack.
This page is addressed to developers who plan to include this package into their own projects.
For maintainer infos, please see the README-MAINTAINER file.
As a source xPacks, the easiest way to add it to a project is via xpm, but it can also be used as any Git project, for example as a submodule.
A recent xpm, which is a portable Node.js command line application.
For details please follow the instructions in the install page.
Note: the package will be available from npmjs.com at a later date.
For now, it can be installed from GitHub:
$ cd <project>
$ xpm init # Unless a package.json is already present
$ xpm install github:micro-os-plus/devices-sifive-xpack
When ready, this package will be available as
@xpack-sifive/devices
from the npmjs.com
registry:
$ cd <project>
$ xpm init # Unless a package.json is already present
$ xpm install @xpack-sifive/devices@latest
If, for any reason, xpm is not available, the next recommended
solution is to link it as a Git submodule below an xpacks
folder.
$ cd <project>
$ git init # Unless already a Git project
$ mkdir -p xpacks
$ git submodule add https://github.com/micro-os-plus/devices-sifive-xpack.git \
xpacks/micro-os-plus-devices-sifive
Apart from the unused master
branch, there are two active branches:
xpack
, with the latest stable versionxpack-develop
, with the current development version
All development is done in the xpack-develop
branch, and contributions via
Pull Requests should be directed to this branch.
When new releases are published, the xpack-develop
branch is merged
into xpack
.
TBD
This package supports 3 of the initial SiFive devices, FE310, E31Arty and E51Arty.
To include this package in a project, consider the following details.
src
include
The standard way to include the device files is
#include <micro-os-plus/device.h>
SIFIVE_FE310
SIFIVE_E31ARTY
SIFIVE_E51ARTY
-std=c++17
or higher for C++ sources-std=c11
for C sources
TBD
TBD
TBD
- the
os_terminate()
function is not fully implemented, it must use either the Watchdog or PMU+RTC to trigger a system reset.
TBD
The original content is released under the MIT License, with all rights reserved to Liviu Ionescu.