An open API service indexing awesome lists of open source software.

https://github.com/rustsbi/bouffalo-hal

Embedded Rust peripheral driver for Bouffalo IoT chips
https://github.com/rustsbi/bouffalo-hal

Last synced: over 1 year ago
JSON representation

Embedded Rust peripheral driver for Bouffalo IoT chips

Awesome Lists containing this project

README

          

# Bouffalo HAL

**Rust Hardware Abstraction Layer for Bouffalo chips**

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![License: Mulan PSL v2](https://img.shields.io/badge/License-Mulan%20PSL%20v2-blue.svg)](https://opensource.org/license/mulanpsl-2-0)
[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/rustsbi/bouffalo-hal/Cargo.yml)](https://github.com/rustsbi/bouffalo-hal/actions)

## Overview

This repository contains three main components that provide comprehensive support for Bouffalo chips development in Rust:

- **bouffalo-hal**: Hardware Abstraction Layer for Bouffalo IoT chips, providing safe and efficient interfaces to various peripherals. This component abstracts hardware-specific details and offers a consistent API for interacting with the chip's features.

- **bouffalo-rt**: Runtime support for Bouffalo chips, including the `#[entry]` macro and other essential runtime functionalities. This component handles the low-level initialization required before the main application code runs.

- **blri**: A utility for firmware image verification, patching, and flashing assistance. It helps with the firmware burning process for Bouffalo chips.

Together, these components form a complete ecosystem for embedded development on Bouffalo hardware.

## Features

- Rust-native implementation with memory safety guarantees
- Safe and efficient hardware abstractions
- Support for various peripherals: GPIO, UART, SPI, I2C, PWM, and more
- Rich examples demonstrating peripheral usage
- Seamless integration with the embedded Rust ecosystem

## Examples



UART CLI Demo


UART CLI Demo


PWM Demo


PWM Demo


SPI Demo


SPI Demo

You can find all example code in the `examples/` directory.

## Contributing

Contributions are welcome!

For bugs or suggestions, please [submit an issue](https://github.com/rustsbi/bouffalo-hal/issues/new).

To contribute code, please follow our [contribution guidelines](https://github.com/rustsbi/slides/blob/main/2025/reports/Contributing%20to%20RustSBI.md).

## License

This project is licensed under either of

- MIT license ([LICENSE-MIT](LICENSE-MIT) or [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT))
- Mulan PSL v2 ([LICENSE-MULAN](LICENSE-MULAN) or [https://opensource.org/licenses/MulanPSL-2.0](https://opensource.org/licenses/MulanPSL-2.0))