embedded-platform

NOTE: This is currently a sketch work-in-progress set of libraries that should be treated as a proof-of-concept.

This is defines the embedded-platform set of crates. The idea is to add device and peripheral support to complement embedded-hal-based crates. This makes it possible to plug-and-play and mix-and-match different crates that adhere to common specs. For example, if you have a nrf52840-based MCU as well as a ili9341-based device, and both adhere to the Adafruit Feather spec (pin layout, voltage levels, ...), you can connect them up and all the wiring will be done for you.

The ambition is that embedded-platform should be to embedded-hal what tokio is to mio.

Some design trade-offs that have been made:

You can think about the intended stack like this:

text ┌─────────────────────────────────────────┐ │ Peripheral Access Crate │ │ e.g. nrf52840-pac │ ├─────────────────────────────────────────┤ │ Hardware Abstraction Layer │ │ e.g. nrf52840-hal │ ├─────────────────────────────────────────┤ │ Platform Implementation │ │ e.g. nrf52840-platform │ │ ┌─────────────────────────────────────┐ │ │ │ Specific Product │ │ │ │ e.g. Particle Argon │ │ │ ├─────────────────────────────────────┤ │ │ │ Common Spec │ │ │ │ e.g. Adafruit Feather │ │ │ │ or Arduino Shield │ │ │ ├─────────────────────────────────────┤ │ │ │ Adapter │ │ │ │ e.g. "Main SPI bus" on │ │ │ │ specific Feather pins │ │ │ └─────────────────────────────────────┘ │ ├─────────────────────────────────────────┤ │ Device Driver │ │ e.g. ili9341 │ └─────────────────────────────────────────┘