Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A Hardware Abstraction Layer (HAL) for embedded systems

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
NotificationsYou must be signed in to change notification settings

rust-embedded/embedded-hal

A Hardware Abstraction Layer (HAL) for embedded systems

This project is developed and maintained by theHAL team.

Important

📣embedded-hal v1.0 is now released! Check out theannouncement blog post, theAPI documentation and themigration guide.

Scope

embedded-hal serves as a foundation for building an ecosystem of platform-agnostic drivers.(driver meaning library crates that let a target platform interface an external device like a digitalsensor or a wireless transceiver).

The advantage of this system is that by writing the driver as a generic library on topofembedded-hal driver authors can support any number of targetplatforms (e.g. Cortex-M microcontrollers, AVR microcontrollers, embedded Linux, etc.).

The advantage for application developers is that by adoptingembedded-hal they can unlock allthese drivers for their platform.

For functionality that goes beyond what is provided byembedded-hal, users are encouragedto use the target platform directly. Abstractions of common functionality can be proposed to beincluded intoembedded-hal as describedin this guide, though.

See more about the design goals inthis documentation section.

Crates

The mainembedded-hal project is not tied to a specific execution model like blocking or non-blocking.

Cratecrates.ioDocs
embedded-halcrates.ioDocumentationCore traits, blocking version
embedded-hal-asynccrates.ioDocumentationCore traits, async version
embedded-hal-nbcrates.ioDocumentationCore traits, polling version using thenb crate
embedded-hal-buscrates.ioDocumentationUtilities for sharing SPI and I2C buses
embedded-cancrates.ioDocumentationController Area Network (CAN) traits
embedded-iocrates.ioDocumentationI/O traits (read, write, seek, etc.), blocking and nonblocking version.
embedded-io-asynccrates.ioDocumentationI/O traits, async version
embedded-io-adapterscrates.ioDocumentationAdapters between theembedded-io andembedded-io-async traits and other IO traits (std,tokio,futures...)

Documents

Implementations and drivers

For a non-exhaustive list ofembedded-hal implementations and driver crates check theawesome-embedded-rust list.

You may be able to find even more HAL implementation crates and driver crates by searching for theembedded-hal-impl,embedded-hal-driver andembedded-hal keywordson crates.io.

Minimum Supported Rust Version (MSRV)

This crate is guaranteed to compile on stable Rust 1.81 and up. Itmightcompile with older versions but that may change in any new patch release.

Seehere for details on how the MSRV may be upgraded.

License

Licensed under either of

at your option.

Contribution

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

Code of Conduct

Contribution to this repository is organized under the terms of theRust Code ofConduct, the maintainers of this repository, theHAL team, promiseto intervene to uphold that code of conduct.

About

A Hardware Abstraction Layer (HAL) for embedded systems

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp