Replies: 3 comments 4 replies
-
Were you not able to use the easy wrappers? Or were you just trying out the move API?
The safety was a secondary goal. The main goal was to be able to store the transfer object in a static variable, to allow interrupts to progress the transfer. After #1976 lands I can add a |
Beta Was this translation helpful? Give feedback.
-
Trying out the move API, because I do actually want the perf
I'm wondering if this is ever really necessary, wouldn't it be better to just signal from the interrupt via an atomic variable or signal if async that the transfer is done? The transfer can then 'stay local' but with the new added benefit that we can prepare the next transfer thanks to your recent changes to use a |
Beta Was this translation helpful? Give feedback.
-
I'm satisfied that the common path is easy to achieve, and improvements to manual, advanced path are on the way. Closing. |
Beta Was this translation helpful? Give feedback.
-
I know we literally just merged it, but I've just spent the afternoon porting (or I guess I should say, failing to port) my basic firmware for my keyboard. It's incredibly difficult to use, and requires wrapping transfers and the Spi device itself in
Option
across the entire API surface (unless I'm missing something) and swapping between.I like everything else about the PR, except for the move changes, and I think we should revert to allowing non-static buffers etc which we decided on in #1245. I believe it should still be possible to allow for queuing etc without the moves, and the only thing we 'miss out' on is
mem::forget
safety, which we already document not to do within the hal.I'm happy to work on this, but I wanted to discuss before I do, just in case I'm missing something obvious.
cc: @Dominaezzz @bjoernQ
Beta Was this translation helpful? Give feedback.
All reactions