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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions