shared-bus
shared-bus copied to clipboard
Roadmap
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:
- [x] The SPI proxy is unsound when shared across multiple tasks. This is because the CS pin is handled outside the proxy. Ref. #8
- [ ] More existing mutexes should be supported out of the box. E.g. anything implementing
lock-api
. Ref. #9 - [ ] If I'm not mistaken, sharing in a single execution context (
!Send
) can be done with even less overhead than the currentNullMutex
. This should be explored. - [x] 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. #13 - [ ] Try to reduce type-signature sizes with type aliases as much as possible. Because
static
s 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).
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.