13 个版本
0.3.2 | 2024 年 3 月 6 日 |
---|---|
0.3.1 | 2023 年 11 月 15 日 |
0.2.9 | 2022 年 8 月 2 日 |
0.2.8 | 2021 年 3 月 13 日 |
0.1.0 | 2018 年 12 月 24 日 |
#11 在 硬件支持
31,071 每月下载量
用于 218 个包 (108 个直接)
150KB
2.5K SLoC
usb-device
Rust 中嵌入式设备的 USB 栈。
UsbDevice 对象表示一个复合 USB 设备,对于应用程序实现者来说是最重要的对象。UsbDevice 结合了多个 UsbClasses(可以是自定义的,也可以是其他包提供的预存在的)和一个 UsbBus 设备驱动程序来实现 USB 设备。
UsbClass 特性可以用来实现 USB 类,如 HID 设备或串行端口。如果所需的函数功能没有由标准类覆盖,实现也可以使用自定义类。
UsbBus 特性旨在由特定设备包实现,为每个设备的 USB 外设提供驱动程序。
硬件驱动程序包
-
atsam4 - atsam4e & atsam4s 微控制器(UDP)的设备驱动程序实现。示例可以在 这里 找到。虽然本包不明确支持,但 atsam3s 和 atsam55g 也可以使用类似的代码库进行支持。
-
atsamd - samd21 & samd51 微控制器的设备驱动程序实现。Adafruit itsybitsy_m4 板的示例可以在 这里 找到。
-
imxrt-usbd - NXP i.MX RT 微控制器的设备驱动程序实现。Teensy 4 等i.MX RT 板的示例与驱动程序一起维护。
-
stm32-usbd - 多个 STM32 微控制器系列的设备驱动程序实现。每个实现 USB 外设的 HAL 包中都可以找到示例。
-
rp2040-hal - Raspberry Pi RP2040 微控制器的设备驱动程序实现。示例可以在各种板子存储库中找到 这里。
类存储库
- usbd-hid - HID 类
- usbd-human-device-interface - HID 类
- usbd-serial - CDC-ACM 串行端口类
- usbd-storage - (实验性) 大容量存储端口类
- usbd-dfu - 设备固件升级类
- usbd-picotool-reset - picotool-reset 类
其他
Rust 中 USB 的其他实现
- Embassy 项目有一个异步 USB 栈,embassy-usb。
依赖项
~1.5MB
~29K SLoC