Skip to content

Rust bindings to Zephyr USB stack(s) #122

@d3zd3z

Description

@d3zd3z

Zephyr's USB subsystem is actually several different subsystems.

  • host: Not yet analyzed
  • usb_c: Not yet analyzed
  • device: This is a deprecated subsystem, and new work should be done with device_next.
  • device_next: This is the new generation of device modeling. Instead of a fixed configuration,
    where the various classes manipulate the descriptors themselves, the new generation requires the
    user to provide the descriptors directly. This is generally done with a large number of C macros,
    which would not be usable from Rust. However, there are a series of Rust crates around Rust
    support for usb devices, such as usbd-hid, usbd-serial, etc, as well as usb-device that
    likely could provide equivalent functionality. The work would then involved wrapping the
    device_next apis as well as the apis for the various subsystems.

The USB interface APIs work primarily around callbacks, which would work well with async in Rust.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions