`e310x` logo

`e310x`

Free

svd2rust generated interface to SiFive [Freedom E310](https://www.sifive.com/cores/e31) MCUs - [![crates.io](https://img.shields.io/crates/v/e310x.svg)](https://crates.io/crates/e310x)

FreeFree tier
Type
Open Source

About `e310x`

The e310x repository provides a set of Rust crates for developing software on SiFive Freedom E310x RISC-V microcontrollers. It includes a Peripheral Access Crate (PAC) named 'e310x' generated via svd2rust, offering low-level register access, and a Hardware Abstraction Layer (HAL) called 'e310x-hal' that simplifies embedded development. Maintained by the RISC-V team, these crates are dual-licensed under Apache-2.0 and MIT, and are compatible with riscv-rt 0.13.0 and embedded-hal 1.0.0.

Key Features

svd2rust generated Peripheral Access Crate (PAC) for E310x chips
Hardware Abstraction Layer (HAL) for the E310x family of microcontrollers
Supports SiFive Freedom E310x RISC-V microcontrollers
Developed and maintained by the RISC-V team
Dual-licensed under Apache-2.0 and MIT
Compatible with riscv-rt 0.13.0 and embedded-hal 1.0.0

Pros & Cons

Pros
  • Generated from official SVD files for accurate register definitions
  • Part of the mature rust-embedded ecosystem with community support
  • Free and open source with permissive licensing
  • Actively maintained and updated for compatibility
Cons
  • Limited to the SiFive Freedom E310x MCU family only
  • Requires familiarity with Rust and embedded development tools
  • Documentation is primarily source code and README-driven

Best For

Writing embedded Rust programs for RISC-V microcontrollersLow-level peripheral access for SiFive Freedom E310x chipsBuilding hardware abstraction layers for Rust-based embedded projects

FAQ

What is the e310x crate?
It is a Peripheral Access Crate (PAC) for SiFive Freedom E310x microcontrollers, generated using svd2rust, providing low-level register access for Rust programs.
What is e310x-hal?
It is a Hardware Abstraction Layer (HAL) for the E310x family of microcontrollers, simplifying embedded development by abstracting low-level hardware details.