712: Add types for channel dynamic dispatch r=lulf a=lulf
* Add internal DynamicChannel trait implemented by Channel that allows
polling for internal state in a lock safe manner and does not require
knowing the channel size.
* Existing usage of Sender and Receiver is preserved and does not use
dynamic dispatch.
* Add DynamicSender and DynamicReceiver types that references the
channel using the DynamicChannel trait and does not require the const
generic channel size parameter.
Having the ability not know the channel size is very convenient when you don't want to change all of your channel using code when tuning the size. With this change, existing usage can be kept, and those willing to pay the price for dynamic dispatch may do so.
Co-authored-by: Ulf Lilleengen <lulf@redhat.com>
* Add internal DynamicChannel trait implemented by Channel that allows
polling for internal state in a lock safe manner and does not require
knowing the channel size.
* Existing usage of Sender and Receiver is preserved and does not use
dynamic dispatch.
* Add DynamicSender and DynamicReceiver types that references the
channel using the DynamicChannel trait and does not require the const
generic channel size parameter.
708: Unify ReadError and WriteError into EndpointError r=Dirbaio a=Dirbaio
Originally #698, got overwritten in a rebase I think.
Co-authored-by: alexmoon <alex.r.moon@gmail.com>
707: Add saadc::VddhDiv5Input r=Dirbaio a=alexmoon
Adds support for the VDDHDIV5 ADC input on newer nrf chips.
Co-authored-by: alexmoon <alex.r.moon@gmail.com>
657: Async usb stack r=Dirbaio a=Dirbaio
TODO
- [x] Make it work on nRF
- [x] Add a way for classes to handle their own EP0 control requests - thanks `@alexmoon!`
- [x] Handle CONTROL OUT requests with data.
- [ ] Impl AsyncRead/AsyncWrite for CDC ACM -- will do later, it's not trivial
- [x] Cleanup unwraps/asserts/panics
- [x] Cleanup logs (make everything trace/debug, not info)
- [ ] Port synopsys-usb-otg
- [ ] Port stm32-usbd
- [ ] Add more classes? HID, MSD?
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
Co-authored-by: alexmoon <alex.r.moon@gmail.com>
700: Add back support for cloning sender/receiver r=Dirbaio a=lulf
The automatic derive clone does not work because RawMutex is not Clone.
Co-authored-by: Ulf Lilleengen <lulf@redhat.com>
679: Reexport unborrow macro in HALs r=Dirbaio a=matoushybl
Removes the need to depend on embassy-hal-common in the case of developing custom peripheral drivers.
Co-authored-by: Matous Hybl <hyblmatous@gmail.com>
696: Add async Mutex. r=Dirbaio a=Dirbaio
What it says on the tin :)
It allows sharing data between tasks when you want to `.await` stuff while holding it locked.
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>