Skip to content

[RFC] Add an async runtimeย #167

@icewind1991

Description

@icewind1991

When trying to make some tests for a uart module, I found myself wishing for a way to interact with the module asynchronously so I could more easily model concurrent read+write operations.

I ended up writing one to distract myself from being sick over the last week: https://codeberg.org/icewind/marlin_async

Ideally this is something that would be integrated into marlin itself, both to remove the number of components users need to install and because the api can probably be nicer that way.

I'm opening this ticket to start a discussion around the idea before investing more effort into the implementation.

Some notes about the implementation

  • This is the first time writing an async runtime, the ratio of trial-and-error to knowing-what-im-doing means the code is probably far from optimal
  • The resulting API is a bit awkward, in large part due to the amount of wrapper layers, hopefully moving this upstream can reduce that somewhat
  • This is my first time writing any HDL other than a blinky

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions