Dario Nieuwenhuis
a5aea995a8
WIP embassy-net v2
2022-05-25 19:56:22 +02:00
Dario Nieuwenhuis
e3b8e35498
Make embassy-net nightly-only.
...
It's useless without async traits, so juggling the `nightly` feature
around is not worth the pain.
2022-05-19 06:15:01 +02:00
Dario Nieuwenhuis
47ceee47d5
Update embedded-io to 0.3
2022-05-19 00:36:18 +02:00
Henrik Alsér
0be9184efc
Merge branch 'embassy-rs:master' into qdec
2022-05-12 15:24:46 +02:00
bors[bot]
30d4d0e9d7
Merge #763 #766
...
763: Misc USB improvements r=Dirbaio a=Dirbaio
The "simplify control in/out handlng" commit gives a -2kb code size improvement.
766: Make usb_serial examples work on windows r=Dirbaio a=timokroeger
Windows shows `error 10` when using CDC ACM on non composite devices.
Workaround is to use IADS:
https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/kconfig/CONFIG_CDC_ACM_IAD.html#help
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net >
Co-authored-by: Timo Kröger <timo.kroeger@hitachienergy.com >
2022-05-12 13:04:29 +00:00
Timo Kröger
2a7afe4262
Make usb_serial examples work on windows
...
Windows shows `error 10` when using CDC ACM on non composite devices.
Workaround is to use IADS:
https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/kconfig/CONFIG_CDC_ACM_IAD.html#help
2022-05-12 08:05:13 +02:00
Dario Nieuwenhuis
2e104170de
usb: remove address arg from endpoint allocation.
2022-05-09 02:07:48 +02:00
Henrik Alsér
1ca5475010
Merge branch 'embassy-rs:master' into qdec
2022-05-07 09:47:29 +02:00
Dario Nieuwenhuis
931a137f8c
Replace embassy::io with embedded_io.
2022-05-07 01:45:54 +02:00
Henrik Alsér
108a981360
Change example pins
2022-05-07 01:15:01 +02:00
Henrik Alsér
840bb2952e
Add qdec module
2022-05-07 00:46:36 +02:00
Dario Nieuwenhuis
a5f5c3a844
net: add functions to get current Eth and IP config
2022-05-02 16:19:34 +02:00
Dario Nieuwenhuis
9e897cbea9
executor: Add Spawner::for_current_executor
.
2022-04-26 19:08:18 +02:00
Dario Nieuwenhuis
2b0e8a330b
examples/nrf: add self_spawn example.
...
This serves as a compile-test of possible typecheck loops due to
TAIT shenanigans.
2022-04-25 22:19:40 +02:00
Dario Nieuwenhuis
b27feb0619
executor: fix unsoundness in InterruptExecutor::start.
...
The initial closure is not actually called in the interrupt, so this is
illegally sending non-Send futures to the interrupt.
Remove the closure, and return a SendSpawner instead.
2022-04-25 22:09:04 +02:00
Dario Nieuwenhuis
d409026b95
examples/nrf: add product strings to all usb examples.
2022-04-24 22:46:45 +02:00
Dario Nieuwenhuis
d57fd87ba7
Add embassy-usb-ncm. Implements USBB CDC NCM (Ethernet over USB)
2022-04-24 22:44:52 +02:00
Ulf Lilleengen
e966125d62
Add embedded-storage trait impls for QSPI
...
* Adds implementations of embedded-storage and embedded-storage-async
for QSPI
* Add blocking implementations of QSPI
* Use blocking implementation in new() and embedded-storage impls
* Use async implementation in embedded-storage-async impls
* Add FLASH_SIZE const generic parameter
* Own IRQ in Qspi to disable it on drop
2022-04-19 19:06:36 +02:00
Dario Nieuwenhuis
1bf7b4d6c3
usb: rename UsbDeviceBuilder -> Builder.
2022-04-16 04:14:20 +02:00
Dario Nieuwenhuis
f35bde684a
usb-hid: add Config struct, to avoid too many params.
2022-04-16 02:07:03 +02:00
Dario Nieuwenhuis
c0de54a341
usb-hid: Simplify API.
...
- Renamed structs to HidReaderWriter, HidReader, HidWriter.
- Removed unused const generics on `State`.
- Simplified generics on `HidReaderWriter`.
The class type previously was `HidClass<D, Driver<'d, USBD>, ReportReader<'d, Driver<'d, USBD>, OUT_N>, IN_N>`
It's now `HidClass<D, Driver<'d, USBD>, IN_N, OUT_N>`. Note that the driver type `Driver<'d, USBD>` is no longer repeated.
- Constructors are now: `HidWriter::new()` for IN-only, `HidReaderWriter::new()` for IN+OUT. No complicated bounds.
- HidReaderWriter has all the methods from HidReader, HidWriter.
2022-04-16 01:59:40 +02:00
alexmoon
b0725c14d3
Split UsbDevice::run into run and run_until_suspend
2022-04-13 16:04:31 -04:00
alexmoon
ff7c6b350e
Remove channel and make run future cancelable
2022-04-13 14:55:02 -04:00
alexmoon
7fde3abd5d
Remote wakeup bug fixes
2022-04-13 14:55:02 -04:00
alexmoon
f5656e3544
Add DeviceStateHandler, DeviceCommand channel, and remote wakeup support
2022-04-13 14:55:02 -04:00
alexmoon
e867364d42
Unify ReadError and WriteError into EndpointError
2022-04-09 01:48:17 +02:00
bors[bot]
37da84129d
Merge #657
...
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 >
2022-04-07 23:03:39 +00:00
alexmoon
6abbfa9a92
Async-ify Driver::enable and UsbDeviceBuilder::build
2022-04-07 10:51:26 -04:00
bors[bot]
fee0aef076
Merge #696
...
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 >
2022-04-06 10:20:43 +00:00
alexmoon
a1754ac8a8
embassy-usb-hid bug fixes
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
b2e517bb28
usb/serial: add multitask example.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
3dbb7c9e15
usb/hid: add keyboard example.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
6d514a0b31
usb/hid: update for endpoint state changes.
2022-04-06 05:38:11 +02:00
alexmoon
2ce435dc34
Add basic device state handling for endpoints.
2022-04-06 05:38:11 +02:00
alexmoon
99f95a33c3
Simplify hid output report handling
2022-04-06 05:38:11 +02:00
alexmoon
c309531874
Remove output() and split() methods from HidClass when there is no out endpoint, and route set_report requests for output reports to RequestHandler::set_report in that case.
2022-04-06 05:38:11 +02:00
alexmoon
a51de5a39a
Remove the feature report reader
2022-04-06 05:38:11 +02:00
alexmoon
5ee7a85b33
Async USB HID class
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
1672fdc666
usb-serial: make inner guts private.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
cdb7bae51a
examples/nrf: don't build usb stuff in stable.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
d1e4b3d7d5
usb: add -usb-serial crate, fix warnings and stable build.
2022-04-06 05:38:11 +02:00
alexmoon
13370c28db
Add a control_buf to UsbDevice
2022-04-06 05:38:11 +02:00
alexmoon
c53bb7394a
Switch to ControlHandler owned bufs for control_in()
2022-04-06 05:38:11 +02:00
alexmoon
a22639ad92
Remove UnsafeCell from cdc_acm::Control
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
e99a3a1da4
usb: simplify buffer handling for Control IN transfers.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
bfce731982
usb: nicer names for control structs.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
2b547f311e
usb: move all control-related stuff to mod control
.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
15cc97d794
usb: associate ControlHandlers with interfaces, automatically route requests.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
a2f5763a67
usb: add add_class
to builder, so that FooBarClass::new(&mut builder)
can set up everything.
2022-04-06 05:38:11 +02:00
alexmoon
52c622b1cd
Use trait objects instead of generics for UsbDevice::classes
2022-04-06 05:38:11 +02:00