694: Add select, select3, select4. r=Dirbaio a=Dirbaio
The difference with those from the `futures` crate is they don't return the other partially-run futures, so they can work with `!Unpin` futures which makes them much easier to use.
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
715: stm32/dac: Check proper channel r=Dirbaio a=michalsrb
Small fix. Otherwise it panics when trying to use channel 1 if channel 2 does not exist.
Co-authored-by: Michal Srb <michalsrb@gmail.com>
699: Add ADC support for H7 r=Dirbaio a=matoushybl
Seems to work on H743, ADC1 works fine, but ADC3 has different ADC_COMMON block which stm32-data does't yet support, so measuring VREFINT or TEMP doesn't work. I'd like to discuss how adding support for the different ADC_COMMON could be done.
Co-authored-by: Matous Hybl <hyblmatous@gmail.com>
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>