Skip to content

zephyr: uart: Implement async wrapper #35

Description

@kurtjd

Depends on #34

What

Implement and upstream a safe, idiomatic async Rust wrapper over the raw Rust bindings to the async uart interrupt-driven API AND the async uart DMA-driven API.

Additionally, implement the embedded-io-async trait as this is a common interface in the Rust community.

Why

The uart-service needs proper uart async support to not block the entire executor when waiting for data over UART. Fortunately Zephyr provides two non-blocking APIs which should be relatively easy to wrap async around. Both interrupt-driven and DMA-driven interfaces should be supported to maximize hardware availability (since some drivers may only implement one or the other).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    • Status
      Committed

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions