| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| |
|
|
| |
I want to use the name Handler for the new interrupt binding macro.
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1260: time/ticker: make sure the future for .next() is Unpin. r=Dirbaio a=Dirbaio
It was Unpin before #1248
bors r+
Co-authored-by: Dario Nieuwenhuis <[email protected]>
|
| |/ |
|
| | |
|
| |\
| |
| | |
nrf/qspi: nrf53 support, u32 addrs, remove const generic, add raw read/write.
|
| | |
| |
| |
| |
| | |
Useful for the nRF7002, which presents as a "fake" QSPI flash, and
the "capacity" concept doesn't really apply to it.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |\ \
| |/
|/| |
nrf/buffered_uarte: make it work without rts/cts, and lock-free.
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
> 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.
|
| | | |
|
| | | |
|
| |\ \
| |/
|/| |
embassy_usb: Add split() for cdc_acm
|
| |/ |
|
| |\
| |
| | |
Swap debug! for trace! in rp gpio
|
| |/
|
|
|
|
| |
When using gpio pin changes for things like peripheral interrupts these
debug! calls flood defmt, making it difficult to find what you're
actually looking for.
|
| |\
| |
| | |
docs: add esp-hal
|
| |/ |
|
| |\
| |
| | |
hal-common/atomic_ring_buffer: add push_bufs() push_slices()
|
| |/
|
|
|
| |
This allows a writer to access all of the free space in the buffer, even
when it's wrapping around.
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1255: common: allow atomic ringbuf to fill up to N instead of just N-1. r=Dirbaio a=Dirbaio
Extracted out of #1208. Since I don't think that'll end up using the ringbuf in the end, I've separated it.
This allows the ringbuf to be filled up to `N` instead of just `N-1`, using some fun tricks on the indices.
The advantage is better performance: Before, the first write would fill N-1 bytes, The second would write just the 1 byte left before wrapping, then N-2. Then 2, then N-3, and so on. This would result in more smaller chunks, so worse perf. This problem is gone now.
bors r+
Co-authored-by: Dario Nieuwenhuis <[email protected]>
|
| |/
|
|
|
|
| |
This allows the ringbuf to be filled up to `N` instead of just `N-1`, using some fun tricks on the indices.
The advantage is better performance: Before, the first write would fill N-1 bytes, The second would write just the 1 byte left before wrapping, then N-2. Then 2, then N-3, and so on. This would result in more smaller chunks, so worse perf. This problem is gone now.
|
| |\
| |
| | |
cortex-m/executor: don't use the owned interrupts system.
|
| | |
| |
| |
| | |
Preparation for #1224.
|
| |\ \
| | |
| | | |
FIx `PacketQueue::init()`
|
| |/ / |
|
| |\ \
| | |
| | | |
stm32/spi: fix occasional data corruption
|
| | | |
| | |
| | |
| | | |
Need to clear the rx fifo before enabling rx dma.
|
| |\ \ \
| |_|/
|/| | |
Example fixes.
|
| |/ / |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
1245: fix: rp - disable Pull-down/up resistors for ADC read r=Dirbaio a=elpiel
Co-authored-by: Lachezar Lechev <[email protected]>
|
| | | |
| | |
| | |
| | | |
Signed-off-by: Lachezar Lechev <[email protected]>
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
1247: `PacketQueue::init()` r=davidedellagiustina a=davidedellagiustina
`PacketQueue` is pretty big, so I added a method to initialize it without requiring an allocation on the stack (which could in fact overflow). Before this PR, the only solution would be to declare a `PacketQueue` instance as a `static mut`, while now one could for example have a `Box<MaybeUninit<PacketQueue<...>>>` and then use `init()` on it.
Ideally, the same work would need to be done for all those structures that own big arrays which could overflow the stack.
Co-authored-by: Davide Della Giustina <[email protected]>
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | |/ / |
|
| |\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | | |
1248: embassy-time: add async tick() method to Ticker r=Dirbaio a=kbleeke
Small QOL change so you don't have to add a direct dependency on futures-util to use the Ticker
Co-authored-by: kbleeke <[email protected]>
|
| |/ / |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
1243: RP-PICO UART adding set_baudrate r=Dirbaio a=andres-hurtado-lopez
The following PR attepts to bring fuctionality to allow change od UART baudrate changes during runtime.
Changes where created under `@Dirbaio` supervision and discussed on issue:
[https://github.com/embassy-rs/embassy/issues/1241#issuecomment-1445500175]( https://github.com/embassy-rs/embassy/issues/1241#issuecomment-1445500175)
Co-authored-by: Andres Hurtado Lopez <[email protected]>
|
| | | | |
|
| | | |
| | |
| | |
| | | |
a Self (requires adding lifetime specifier)
|
| | | | |
|