embassy/examples
Dario Nieuwenhuis ccc224c81f nrf/buffered_uarte: remove PeripheralMutex, make it work without rts/cts.
> dirbaio: so I was checking how zephyr does UARTE RX on nRF
> dirbaio: because currently we have the ugly "restart DMA on line idle to flush it" hack
> dirbaio: because according to the docs "For each byte received over the RXD line, an RXDRDY event will be generated. This event is likely to occur before the corresponding data has been transferred to Data RAM."
> dirbaio: so as I understood it, the only way to guarantee the data is actually transferred to RAM is to stop+restart DMA
> dirbaio: well, guess what?
> dirbaio: they just count RXDRDY's, and process that amount of data without restarting DMA
> dirbaio: with a timer configured as counter https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/serial/uart_nrfx_uarte.c#L650-L692
> dirbaio: 🤔🤷⁉️
> dirbaio: someone saying you can do the "hook up rxdrdy to a counter" trick, someone else saying it's wrong 🤪 https://devzone.nordicsemi.com/f/nordic-q-a/28420/uarte-in-circular-mode

So we're going to do just that!

- BufferedUarte is lock-free now. No PeripheralMutex.
- The "restart DMA on line idle to flush it" hack is GONE. This means
  - It'll work correctly without RTS/CTS now.
  - It'll have better throughput when using RTS/CTS.
2023-03-04 15:12:49 +01:00
..
boot Support codesigning in the firmware updater 2023-01-12 13:30:58 +11:00
nrf5340 Example fixes. 2023-03-01 01:32:42 +01:00
nrf52840 nrf/buffered_uarte: remove PeripheralMutex, make it work without rts/cts. 2023-03-04 15:12:49 +01:00
nrf-rtos-trace all Cargo.toml: Add license to all crate Cargo.toml files 2022-10-07 12:41:56 +02:00
rp Fix a typo in "PioPeripheral" 2023-02-15 14:10:07 +01:00
std examples/std: fix net running out of sockets. 2023-02-26 21:50:12 +01:00
stm32c0 stm32: add stm32c0 examples. 2023-01-17 21:28:16 +01:00
stm32f0 cortex-m/executor: don't use the owned interrupts system. 2023-02-28 23:07:20 +01:00
stm32f1 usb: unify ControlHandler+DeviceStateHandler, route all control requests to all handlers. 2023-02-08 00:17:08 +01:00
stm32f2 Bump defmt-rtt to 0.4 2022-11-29 21:15:24 +01:00
stm32f3 cortex-m/executor: don't use the owned interrupts system. 2023-02-28 23:07:20 +01:00
stm32f4 Merge pull request #1244 from embassy-rs/interruptexecutor 2023-03-01 22:38:27 +01:00
stm32f7 stm32/sdmmc: Implement proper clock configuration 2023-02-23 16:57:21 +02:00
stm32g0 Bump defmt-rtt to 0.4 2022-11-29 21:15:24 +01:00
stm32g4 Bump defmt-rtt to 0.4 2022-11-29 21:15:24 +01:00
stm32h7 fix h7 examples 2023-02-10 23:35:44 +01:00
stm32l0 Bump defmt-rtt to 0.4 2022-11-29 21:15:24 +01:00
stm32l1 Bump defmt-rtt to 0.4 2022-11-29 21:15:24 +01:00
stm32l4 Example fixes. 2023-03-01 01:32:42 +01:00
stm32l5 Example fixes. 2023-03-01 01:32:42 +01:00
stm32u5 usb: unify ControlHandler+DeviceStateHandler, route all control requests to all handlers. 2023-02-08 00:17:08 +01:00
stm32wb examples/stm32wb: do not reserve words at start of RAM. 2023-02-20 01:01:01 +01:00
stm32wl Add random example 2022-12-04 09:38:57 +01:00
wasm all Cargo.toml: Add license to all crate Cargo.toml files 2022-10-07 12:41:56 +02:00