1 unstable release

0.2.0 Sep 27, 2024

#419 in Embedded development

36 downloads per month
Used in 3 crates

MIT/Apache

730KB
13K SLoC


Logo

rp-hal

High-level Rust drivers for the Raspberry Silicon RP2350 Microcontroller
Explore the API docs »

View Demos · Report a Bug · Chat on Matrix

Table of Contents

  1. Introduction
  2. Getting Started
  3. Roadmap
  4. Contributing
  5. License
  6. Contact
  7. Acknowledgements

Introduction

This is the rp235x-hal package - a library crate of high-level Rust drivers for the Raspberry Silicon RP2350 microcontroller, along with a collection of non-board specific example programs for you to study. You should use this crate in your application if you want to write code for the RP2350 microcontroller. The HAL in the name standards for Hardware Abstraction Layer, and comes from the fact that many of the drivers included implement the generic hardware-abstraction interfaces defined in the Rust Embedded Working Group's embedded-hal crate.

We also provide a series of Board Support Package (BSP) crates, which take this HAL crate and pre-configure the pins according to a specific PCB design. If you are using one of the supported boards, you should use one of those crates in preference, and return here to see documentation about specific peripherals on the RP2350 and how to use them. See the boards folder in https://github.com/rp-rs/rp-hal-boards/ for more details.

Some of the source code herein refers to the "RP2350 Datasheet". This can be found at https://rptl.io/rp2350-datasheet.

Getting Started

To include this crate in your project, amend your Cargo.toml file to include

rp235x-hal = "*"

To obtain a copy of the source code (e.g. if you want to propose a bug-fix or new feature, or simply to study the code), run:

$ git clone https://github.com/rp-rs/rp-hal.git

For details on how to program an RP2350 microcontroller, see the top-level rp-hal README.

Roadmap

NOTE This HAL is under active development. As such, it is likely to remain volatile until a 1.0.0 release.

See the open issues for a list of proposed features (and known issues).

Implemented traits

This crate aims to implement all traits from embedded-hal, both version 0.2 and 1.0. They can be used at the same time, so you can upgrade drivers incrementally.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

The contents of this repository are dual-licensed under the MIT OR Apache 2.0 License. That means you can choose either the MIT license or the Apache 2.0 license when you re-use this code. See LICENSE-MIT or LICENSE-APACHE for more information on each specific license. Our Apache 2.0 notices can be found in NOTICE.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Contact

Acknowledgements

Dependencies

~18MB
~280K SLoC