Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap #14

Open
2 of 7 tasks
Rahix opened this issue Aug 16, 2020 · 1 comment
Open
2 of 7 tasks

Roadmap #14

Rahix opened this issue Aug 16, 2020 · 1 comment

Comments

@Rahix
Copy link
Owner

Rahix commented Aug 16, 2020

The current version is still pretty much what I drafted up initially. The design has shown a few flaws over time, which should be addressed in a new version. Here is an overview:

  • The SPI proxy is unsound when shared across multiple tasks. This is because the CS pin is handled outside the proxy. Ref. Inherent race condition when using SPI #8
  • More existing mutexes should be supported out of the box. E.g. anything implementing lock-api. Ref. Feature to support Mutex from parking_lot as an alternative to std #9
  • If I'm not mistaken, sharing in a single execution context (!Send) can be done with even less overhead than the current NullMutex. This should be explored.
  • A macro should be added for pushing the bus-manager into a static mut, thus giving the references a &'static lifetime which makes sharing between tasks much easier. Ref. How to embed this (resolving lifetime constraints) #13
  • Try to reduce type-signature sizes with type aliases as much as possible. Because statics require full signatures, it would be great to keep their length as small as possible.
  • Support for AVR.
  • Support for RISC-V (see this fork).
@romancardenas
Copy link

romancardenas commented Sep 2, 2022

Hi! First, thank you very much for your work, this crate looks great and makes sharing an interface very easy. I wonder how the support for RISC-V is. The ESP Rust board is a RISC-V microcontroller but is able to use this crate under the xtensa feature.

Also, I saw a few of nice PRs for AVR microcontrollers and for a more uniform interface in this crate. How do you plan to add these features? May I help? I'm pretty new in the embedded Rust world, but I'd like to start contributing in useful projects.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants