aboutsummaryrefslogtreecommitdiff
path: root/embassy-usb/README.md
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-01-11 19:10:56 +0100
committerDario Nieuwenhuis <[email protected]>2024-01-11 19:10:56 +0100
commit0af44292a0862b1c115def1ed1a48e29daae241c (patch)
tree8b4afb7123039f4d85786fffce83b7a9d5d63d23 /embassy-usb/README.md
parentddacbf68aff53447bdfac7db2380a9f0aaaf0b83 (diff)
usb: add readme.
Diffstat (limited to 'embassy-usb/README.md')
-rw-r--r--embassy-usb/README.md24
1 files changed, 23 insertions, 1 deletions
diff --git a/embassy-usb/README.md b/embassy-usb/README.md
index da656e8e9..7411fcf52 100644
--- a/embassy-usb/README.md
+++ b/embassy-usb/README.md
@@ -1,6 +1,28 @@
1# embassy-usb 1# embassy-usb
2 2
3TODO crate description 3Async USB device stack for embedded devices in Rust.
4
5## Features
6
7- Native async.
8- 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.
9- Suspend/resume, remote wakeup.
10- USB composite devices.
11- Ergonomic descriptor builder.
12- Ready-to-use implementations for a few USB classes (note you can still implement any class yourself oustide the crate).
13 - Serial ports (CDC ACM)
14 - Ethernet (CDC NCM)
15 - Human Interface Devices (HID)
16 - MIDI
17
18## Adding support for new hardware
19
20To add `embassy-usb` support for new hardware (i.e. a new MCU chip), you have to write a driver that implements
21the [`embassy-usb-driver`](https://crates.io/crates/embassy-usb-driver) traits.
22
23Driver crates should depend only on `embassy-usb-driver`, not on the main `embassy-usb` crate.
24This allows existing drivers to continue working for newer `embassy-usb` major versions, without needing an update, if the driver
25trait has not had breaking changes.
4 26
5## Configuration 27## Configuration
6 28