shared-bus icon indicating copy to clipboard operation
shared-bus copied to clipboard

Roadmap

Open Rahix opened this issue 3 years ago • 1 comments

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

Rahix avatar Aug 16 '20 11:08 Rahix

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.

romancardenas avatar Sep 02 '22 09:09 romancardenas