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
- Host: GitHub
- URL: https://github.com/rustsbi/bouffalo-hal
- Owner: rustsbi
- License: mit
- Created: 2024-05-29T09:54:42.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T09:10:47.000Z (over 1 year ago)
- Last Synced: 2024-10-29T10:59:46.676Z (over 1 year ago)
- Language: Rust
- Size: 436 KB
- Stars: 7
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
Awesome Lists containing this project
README
# Bouffalo HAL
**Rust Hardware Abstraction Layer for Bouffalo chips**
[](https://opensource.org/licenses/MIT)
[](https://opensource.org/license/mulanpsl-2-0)
[](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
PWM 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))