21 Commits

Author SHA1 Message Date
Dario Nieuwenhuis
eda51673f5
Merge pull request #3704 from CNLHC/pwm_support_gp32
feat: Add 32-bit timer support for waveform function
2025-01-21 22:57:47 +00:00
Liu Hancheng
4ad3b66e45 refactor: update write DMA transfer function to use separate memory word type 2025-01-05 10:25:10 +08:00
Liu Hancheng
ff526e1604 refactor: update DMA transfer functions to use separate memory and peripheral sizes 2025-01-04 20:16:34 +08:00
elagil
eba8089601 chore: fix build 2025-01-03 18:18:00 +01:00
elagil
ee9ca44703 refactor: naming of wait functions 2024-11-17 23:56:45 +01:00
elagil
7ae2816341 feat: SAI/ringbuffer add function to wait for any write error 2024-11-17 23:10:11 +01:00
elagil
d592875ca6 fix(SAI): disallow start without initial write 2024-11-16 15:02:32 +01:00
Alexandros Liarokapis
28d03537e9 stm32: Automatically clear on WritableRingBuffer start 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
f0d2ebdc7e stm32: fix ringbugger overrun errors due to bad dma wrap-around behavior 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
9c7b296432 overrun at invalid diffs, rename clear to reset, simplify dma_sync method 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
2b10caafd4 stm32: initial support for alternative ringbuffer implementation 2024-10-15 12:29:12 +03:00
Peter Krull
2a9cdaabaa stm32: Moved comment to match request_stop 2024-09-19 18:25:08 +02:00
Peter Krull
907d55ea82 stm32: Added request_pause to DMA, and use it for RingBufferedUartRx 2024-09-19 18:14:09 +02:00
Badr Bouslikhin
0e477a4df5
fix(stm32): enable dma half transfer interrupt for buffereduart 2024-09-06 18:55:33 +02:00
Alexandros Liarokapis
2b7e76efe9 Fix dma nvic issues on dual core lines
This commit addresses #3256 by disabling dma NVIC interrupt enablement at startup.
Instead, per-channel NVIC interrupt enablement is now done with the rest of the dma channel configuration.
This ensures that each core will only handle the interrupts of the DMA channels that it uses.
2024-08-17 16:54:41 +03:00
Alexandros Liarokapis
00ff1409cd Enables half transfer ir when constructing a ReadableDmaRingBuffer
The half transfer irq needs to be enabled in order for the hardware to
notify the waker when the transfer is at half. This is needed to ensure
no overuns occur when using `ReadableDmaRingBuffer`'s `read_exact`.
Otherwise we are only notified when the DMA has completed its cycle and
is on its way to start overwriting the data. The docs in the dma_bdma
buf module also seem to imply that the half transfer irq must be enabled for
proper operation. The only consumers of the `ReadableDmaRingBuffer` api
are the sai module and the `RingBufferedUartRx`. The former enables the
irq manually when constructing the transfer options while the
latter does not. This may also be the cause for #1441.
2024-06-23 11:43:50 +03:00
Dario Nieuwenhuis
7ad76f5f60 Use raw slices .len() method instead of unsafe hacks.
Stabilized in 1.79.
2024-06-13 20:41:08 +02:00
Tyler Gilbert
cb01d03835 Add async stop() function to stm32 bdma_dma 2024-03-31 16:31:47 -05: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
Dario Nieuwenhuis
e67dfcb04f stm32/dma: add AnyChannel, add support for BDMA on H7. 2024-02-24 02:41:41 +01:00