usb: add readme.

This commit is contained in:
Dario Nieuwenhuis 2024-01-11 19:10:56 +01:00
parent ddacbf68af
commit 0af44292a0

View File

@ -1,6 +1,28 @@
# embassy-usb
TODO crate description
Async USB device stack for embedded devices in Rust.
## Features
- Native async.
- Fully lock-free: endpoints are separate objects that can be used independently without needing a central mutex. If the driver supports it, they can even be used from different priority levels.
- Suspend/resume, remote wakeup.
- USB composite devices.
- Ergonomic descriptor builder.
- Ready-to-use implementations for a few USB classes (note you can still implement any class yourself oustide the crate).
- Serial ports (CDC ACM)
- Ethernet (CDC NCM)
- Human Interface Devices (HID)
- MIDI
## Adding support for new hardware
To add `embassy-usb` support for new hardware (i.e. a new MCU chip), you have to write a driver that implements
the [`embassy-usb-driver`](https://crates.io/crates/embassy-usb-driver) traits.
Driver crates should depend only on `embassy-usb-driver`, not on the main `embassy-usb` crate.
This allows existing drivers to continue working for newer `embassy-usb` major versions, without needing an update, if the driver
trait has not had breaking changes.
## Configuration