Alexandros Liarokapis
f9324201b1
add proper rxonly support for spi_v3 and force tx dma stream requirement on others
2024-05-27 17:49:47 +03:00
Dario Nieuwenhuis
1ed2a0504a
stm32/dma: add support for same channel with different req in different DMAs/DMAMUXes.
2024-04-29 23:56:15 +02:00
Dario Nieuwenhuis
6f44d7a9df
stm32: update metapac. Adds U5 LPDMA, fixes ADC_COMMONs.
2024-04-29 20:52:27 +02:00
Dario Nieuwenhuis
02da66aec8
stm32/dma: add ChannelAndRequest helper.
2024-04-15 21:52:40 +02:00
Tyler Gilbert
cb01d03835
Add async stop() function to stm32 bdma_dma
2024-03-31 16:31:47 -05:00
Dario Nieuwenhuis
2bca875b5f
stm32: use private_bounds for sealed traits.
2024-03-23 01:38:51 +01:00
Dario Nieuwenhuis
eca9aac194
Fix warnings in recent nightly.
2024-03-20 16:39:09 +01:00
Caleb Garrett
50a7ada0bb
Fixed DMA CI build issues.
2024-03-10 17:28:53 -04:00
Caleb Garrett
e92094986d
Add DMA request priority as transfer option.
2024-03-10 16:53:37 -04:00
Timo Kröger
bbc06458a3
stm32: Implement Channel trait for AnyChannel
2024-03-07 15:05:28 +01:00
Dario Nieuwenhuis
e67dfcb04f
stm32/dma: add AnyChannel, add support for BDMA on H7.
2024-02-24 02:41:41 +01:00
Dario Nieuwenhuis
e8474426d8
hal-internal: remove impl DerefMut for PeripheralRef.
...
if you have `PeripheralRef<'a, AnyPIn>` for pin A, and `AnyPin` (owned) for pin B, you can `mem::swap` them.
so, getting access forever to pin A, just by "sacrificing" pin B
this defeats the point of PeripheralRef, which is if you got a `PeripheralRef<'a, T>` then you're only allowed to use the peripheral for `'a`.
Also some drivers rely on the fact only one instance of a singleton exists for soundness, so this is a soundness fix for those.
2024-02-20 01:02:15 +01:00
eZio Pan
d6636ca116
minor fix
2024-02-09 23:57:09 +01:00
Tyler Gilbert
994b77e684
Add write_immediate() function to STM32 DMA ringbuffer API to pre-fill the buffer before starting the DMA
2024-01-03 11:06:03 -06:00
eZio Pan
745d618ab7
note on circular mode DMA
2023-12-21 17:03:10 +08:00
Dario Nieuwenhuis
c8c8b89104
stm32: doc everything else.
2023-12-19 18:03:20 +01:00
eZio Pan
254d587385
match up with metapac change
2023-12-19 17:12:34 +08:00
Dario Nieuwenhuis
124478c5e9
stm32: more docs.
2023-12-18 19:11:23 +01:00
Dario Nieuwenhuis
80c9d04bbd
stm32: add some docs.
2023-12-18 00:53:18 +01:00
Torin Cooper-Bennun
8eff749823
stm32/gpdma: fix drop() to use RM's method for aborting transfer
...
see e.g. STM32H503 RM section 15.4.4...
1. Write 1 into GPDMA_CxCR.SUSP
2. Poll GPDMA_CxSR.SUSPF until it is 1
3. Write 1 into GPDMA_CxCR.RESET (occurs upon next init, in new_inner())
2023-11-13 16:41:09 +00:00
Dario Nieuwenhuis
97ca0e77bf
stm32: avoid creating many tiny critical sections in init.
...
Saves 292 bytes on stm32f0 bilnky with max optimizations (from 3132 to 2840).
2023-10-12 16:20:34 +02:00
Dario Nieuwenhuis
70a91945fc
stm32: remove atomic-polyfill.
2023-10-12 02:07:26 +02:00
Dario Nieuwenhuis
95262ad559
Merge pull request #1743 from xoviat/dma-2
...
stm32/dma: consolidate ringbuf
2023-08-10 15:21:31 +00:00
Grant Miller
d49f40dd5c
embassy-stm32: Misc clippy fixes
2023-08-06 15:00:39 -05:00
xoviat
e80db42061
stm32/dma: minor cleanup, optmization
2023-08-04 17:15:56 -05:00
xoviat
7e269f6f17
stm32/dma: consolidate ringbuf
2023-08-03 21:12:34 -05:00
xoviat
bbc8424a5b
stm32/dma: remove trace
2023-07-31 17:55:25 -05:00
xoviat
ffa0c08140
stm32/dma: fix condition check
2023-07-30 20:22:14 -05:00
xoviat
c38c85ef1f
stm32/dma: add traces
2023-07-30 19:39:17 -05:00
xoviat
538cf2bc24
stm32/dma: fix condition check
2023-07-30 14:02:41 -05:00
xoviat
6f30e92c7a
stm32/dma: don't write to full ringbuf
2023-07-30 10:57:17 -05:00
xoviat
087e649bc2
stm32/dma: fix typos
2023-07-30 09:28:02 -05:00
xoviat
fd9b6487e1
stm32/dma: impl. wringbuf for bdma
2023-07-30 09:25:58 -05:00
xoviat
603c4cb4fa
stm32/dma: complete initial ringbuf impl.
2023-07-30 09:18:33 -05:00
xoviat
8064f4bfe0
stm32/dma: add draft writable dma buf
2023-07-29 20:10:29 -05:00
xoviat
6256a6c57c
fix comments
2023-07-29 19:27:16 -05:00
xoviat
bae31ebce7
stm32/dma: rename ringbuf
2023-07-29 19:25:18 -05:00
Dario Nieuwenhuis
036e6ae30c
Rename embassy-hal-common to embassy-hal-internal, document it's for internal use only. ( #1700 )
2023-07-28 13:23:22 +02:00
xoviat
44c8db2911
Merge pull request #1681 from alexferro/feature/stm32-dma-read-exact
...
Add a STM32/DMARingBuffer::read_exact helper
2023-07-28 01:16:48 +00:00
Alex Ferro
4883fdd154
Add a STM32/DMARingBuffer::read_exact helper
...
This provides a helper function with an async implementation, that
will only return (or error) when it was able to read that many bytes,
sleeping until ready.
Additionally, corrected the documentation for Ringbuffer functions to use
"elements" instead of "bytes" as the types were already generic over the
word/element size.
2023-07-22 17:17:01 -06:00
JuliDi
80ce6d1fb7
update DAC triggers to incorporate v3
2023-07-22 19:25:02 +02:00
Dario Nieuwenhuis
dff9bd9711
Remove trivial to remove uses of atomic-polyfill.
2023-07-12 18:30:43 +02:00
Julian
96f1525ffe
Revert changes to dma.rs
2023-06-29 09:20:25 +02:00
JuliDi
daedfbbd87
add dma is_running change doc
2023-06-28 15:39:36 +02:00
JuliDi
56dd22f0ac
feature-gate set_channel_mode, undo dma.rs changes
2023-06-27 21:23:47 +02:00
JuliDi
e7bc84dda8
fix issues when DAC2 present, add additional options to DMA (NOT YET WORKING with STM32H7A3ZI)
2023-06-26 09:42:25 +02:00
JuliDi
ea04a0277b
change dma complete transfer IR default to true
2023-06-23 12:14:26 +02:00
JuliDi
8d0095c618
add option to enable/disable complete transfer interrupt
2023-06-22 10:43:45 +02:00
JuliDi
fdb3c3d6ff
Merge remote-tracking branch 'upstream/main'
2023-06-21 11:52:53 +02:00
Dario Nieuwenhuis
428a4ba3f9
stm32/gpdma: clear all interrupts after reset.
...
Reset doesn't clear them, this causes subsequent transfers to instantly
complete because the TC flag was set from before.
2023-06-19 23:03:31 +02:00