124478c5e9
stm32: more docs.
2023-12-18 19:11:23 +01:00
80c9d04bbd
stm32: add some docs.
2023-12-18 00:53:18 +01:00
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
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
70a91945fc
stm32: remove atomic-polyfill.
2023-10-12 02:07:26 +02:00
95262ad559
Merge pull request #1743 from xoviat/dma-2
...
stm32/dma: consolidate ringbuf
2023-08-10 15:21:31 +00:00
d49f40dd5c
embassy-stm32: Misc clippy fixes
2023-08-06 15:00:39 -05:00
e80db42061
stm32/dma: minor cleanup, optmization
2023-08-04 17:15:56 -05:00
7e269f6f17
stm32/dma: consolidate ringbuf
2023-08-03 21:12:34 -05:00
bbc8424a5b
stm32/dma: remove trace
2023-07-31 17:55:25 -05:00
ffa0c08140
stm32/dma: fix condition check
2023-07-30 20:22:14 -05:00
c38c85ef1f
stm32/dma: add traces
2023-07-30 19:39:17 -05:00
538cf2bc24
stm32/dma: fix condition check
2023-07-30 14:02:41 -05:00
6f30e92c7a
stm32/dma: don't write to full ringbuf
2023-07-30 10:57:17 -05:00
087e649bc2
stm32/dma: fix typos
2023-07-30 09:28:02 -05:00
fd9b6487e1
stm32/dma: impl. wringbuf for bdma
2023-07-30 09:25:58 -05:00
603c4cb4fa
stm32/dma: complete initial ringbuf impl.
2023-07-30 09:18:33 -05:00
8064f4bfe0
stm32/dma: add draft writable dma buf
2023-07-29 20:10:29 -05:00
6256a6c57c
fix comments
2023-07-29 19:27:16 -05:00
bae31ebce7
stm32/dma: rename ringbuf
2023-07-29 19:25:18 -05:00
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
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
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
80ce6d1fb7
update DAC triggers to incorporate v3
2023-07-22 19:25:02 +02:00
dff9bd9711
Remove trivial to remove uses of atomic-polyfill.
2023-07-12 18:30:43 +02:00
96f1525ffe
Revert changes to dma.rs
2023-06-29 09:20:25 +02:00
daedfbbd87
add dma is_running change doc
2023-06-28 15:39:36 +02:00
56dd22f0ac
feature-gate set_channel_mode, undo dma.rs changes
2023-06-27 21:23:47 +02:00
e7bc84dda8
fix issues when DAC2 present, add additional options to DMA (NOT YET WORKING with STM32H7A3ZI)
2023-06-26 09:42:25 +02:00
ea04a0277b
change dma complete transfer IR default to true
2023-06-23 12:14:26 +02:00
8d0095c618
add option to enable/disable complete transfer interrupt
2023-06-22 10:43:45 +02:00
fdb3c3d6ff
Merge remote-tracking branch 'upstream/main'
2023-06-21 11:52:53 +02:00
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
88052480b1
fix typo, minor cleanup
2023-06-19 13:50:17 +02:00
3c70f799a2
Merge pull request #1572 from whitequark/bdma-blocking_wait-stop
...
BDMA: request stop after busy loop in blocking_wait()
2023-06-19 09:55:07 +00:00
e0747e937f
remove unsafe for circular dma reg access
2023-06-19 11:15:09 +02:00
320e2cf35b
Merge branch 'main' of github.com:embassy-rs/embassy
2023-06-19 11:14:48 +02:00
bbc81146ec
BDMA: request stop after busy loop in blocking_wait().
...
Otherwise the channel cannot be used again, since CR.EN remains set
and the DMA channel registers are read-only while it is set.
2023-06-19 09:06:41 +00:00
558918651e
stm32: update stm32-metapac.
2023-06-19 03:22:12 +02:00
f8ee33abb9
add half transfer interrupt and circular dma
2023-06-18 18:51:36 +02:00
98c821ac39
Remove embassy-cortex-m crate, move stuff to embassy-hal-common.
2023-06-09 16:44:20 +02:00
bce24e8005
asdg
2023-06-08 18:07:49 +02:00
921780e6bf
Make interrupt module more standard.
...
- Move typelevel interrupts to a special-purpose mod: `embassy_xx::interrupt::typelevel`.
- Reexport the PAC interrupt enum in `embassy_xx::interrupt`.
This has a few advantages:
- The `embassy_xx::interrupt` module is now more "standard".
- It works with `cortex-m` functions for manipulating interrupts, for example.
- It works with RTIC.
- the interrupt enum allows holding value that can be "any interrupt at runtime", this can't be done with typelevel irqs.
- When "const-generics on enums" is stable, we can remove the typelevel interrupts without disruptive changes to `embassy_xx::interrupt`.
2023-06-08 18:00:48 +02:00
404aa29289
cortex-m: remove owned interrupts.
2023-06-01 03:25:19 +02:00
da0be7114f
stm32/uart: fix dma ringbuf tests
2023-05-29 15:14:43 -05:00
aba0f8fd6c
stm32/uart: refactor rx ringbuffer
...
- remove some race conditions
- allow full use of rx buffer
2023-05-29 14:49:43 -05:00
00cde67abe
stm32/dma: solve overlapping impl on DmaCtrl on stm32h7
2023-05-01 23:20:51 +02:00
96e8a7ddb9
stm32/uart: feature-gate ringbuffer out when using gpdma, not supported yet.
2023-05-01 22:43:23 +02:00
25864ae4dc
stm32/bdma: add ringbuffer support.
2023-05-01 22:42:36 +02:00
14e0090cb1
stm32/dma: remove separate process_tcif.
2023-05-01 22:42:36 +02:00