aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/dma/dma.rs
Commit message (Collapse)AuthorAgeFilesLines
* stm32/dma: add AnyChannel, add support for BDMA on H7.Dario Nieuwenhuis2024-02-241-1012/+0
|
* hal-internal: remove impl DerefMut for PeripheralRef.Dario Nieuwenhuis2024-02-201-4/+4
| | | | | | | | | 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.
* Add write_immediate() function to STM32 DMA ringbuffer API to pre-fill the ↵Tyler Gilbert2024-01-031-0/+7
| | | | buffer before starting the DMA
* note on circular mode DMAeZio Pan2023-12-211-0/+4
|
* match up with metapac changeeZio Pan2023-12-191-16/+11
|
* stm32: add some docs.Dario Nieuwenhuis2023-12-181-6/+73
|
* stm32: avoid creating many tiny critical sections in init.Dario Nieuwenhuis2023-10-121-2/+2
| | | | Saves 292 bytes on stm32f0 bilnky with max optimizations (from 3132 to 2840).
* stm32/dma: minor cleanup, optmizationxoviat2023-08-041-4/+4
|
* stm32/dma: consolidate ringbufxoviat2023-08-031-52/+14
|
* stm32/dma: impl. wringbuf for bdmaxoviat2023-07-301-2/+2
|
* stm32/dma: complete initial ringbuf impl.xoviat2023-07-301-1/+170
|
* stm32/dma: rename ringbufxoviat2023-07-291-6/+6
|
* Rename embassy-hal-common to embassy-hal-internal, document it's for ↵Dario Nieuwenhuis2023-07-281-1/+1
| | | | internal use only. (#1700)
* Merge pull request #1681 from alexferro/feature/stm32-dma-read-exactxoviat2023-07-281-3/+41
|\ | | | | | | Add a STM32/DMARingBuffer::read_exact helper
| * Add a STM32/DMARingBuffer::read_exact helperAlex Ferro2023-07-221-3/+41
| | | | | | | | | | | | | | | | | | | | 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.
* | update DAC triggers to incorporate v3JuliDi2023-07-221-2/+17
|/
* Remove trivial to remove uses of atomic-polyfill.Dario Nieuwenhuis2023-07-121-2/+1
|
* stm32: update stm32-metapac.Dario Nieuwenhuis2023-06-191-48/+36
|
* Remove embassy-cortex-m crate, move stuff to embassy-hal-common.Dario Nieuwenhuis2023-06-091-1/+1
|
* Make interrupt module more standard.Dario Nieuwenhuis2023-06-081-3/+3
| | | | | | | | | | | | - 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`.
* cortex-m: remove owned interrupts.Dario Nieuwenhuis2023-06-011-4/+3
|
* stm32/uart: refactor rx ringbufferxoviat2023-05-291-28/+12
| | | | | - remove some race conditions - allow full use of rx buffer
* stm32/dma: solve overlapping impl on DmaCtrl on stm32h7Dario Nieuwenhuis2023-05-011-6/+8
|
* stm32/dma: remove separate process_tcif.Dario Nieuwenhuis2023-05-011-37/+9
|
* Support overflow detection for more than one ring-periodRasmus Melchior Jacobsen2023-05-011-33/+78
|
* Ring-buffered uart rx with one-period overrun detectionRasmus Melchior Jacobsen2023-05-011-4/+170
|
* stm32/spi: add support for all word sizes.Dario Nieuwenhuis2023-04-181-5/+6
| | | | Co-Authored-By: anton smeenk <[email protected]>
* stm32/dma: add double buffered mode for DMA, update DCMI.Dario Nieuwenhuis2023-04-181-1/+158
|
* stm32/dma: refactor.Dario Nieuwenhuis2023-04-181-283/+285
|
* Merge #1227bors[bot]2023-02-231-6/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | 1227: stm32/dma: fix spurious transfer complete interrupts r=Dirbaio a=pattop DMA interrupts must be acknowledged by writing to the DMA_{L,H}IFCR register. Writing to the CR register is unnecessary as the channel (EN bit) is disabled by hardware on completion of the transfer. Co-authored-by: Patrick Oppenlander <[email protected]>
| * stm32/dma: fix spurious transfer complete interruptsPatrick Oppenlander2023-02-231-6/+2
| | | | | | | | | | | | | | | | DMA interrupts must be acknowledged by writing to the DMA_{L,H}IFCR register. Writing to the CR register is unnecessary as the channel (EN bit) is disabled by hardware on completion of the transfer.
* | stm32/sdmmc: Fix SDIOv1 writeschemicstry2023-02-181-1/+22
|/
* Let repeated clock byte be singular pointer and not array pointerRasmus Melchior Jacobsen2022-12-231-1/+1
|
* Let start_write_repeated accept pointer instead of sliceRasmus Melchior Jacobsen2022-12-231-2/+2
|
* fix(stm32): Fix write buffer lifetime for repeated writesRasmus Melchior Jacobsen2022-12-231-3/+2
|
* stm32: Add basic support for DMA priority settingsMatous Hybl2022-11-281-2/+5
|
* split `embassy-util` into `embassy-futures`, `embassy-sync`.Dario Nieuwenhuis2022-08-221-1/+1
|
* Split embassy crate into embassy-executor, embassy-util.Dario Nieuwenhuis2022-07-291-1/+1
|
* Run rustfmt.Dario Nieuwenhuis2022-06-121-11/+5
|
* Add embassy-cortex-m crate.Dario Nieuwenhuis2022-06-121-1/+1
| | | | | | - Move Interrupt and InterruptExecutor from `embassy` to `embassy-cortex-m`. - Move Unborrow from `embassy` to `embassy-hal-common` (nothing in `embassy` requires it anymore) - Move PeripheralMutex from `embassy-hal-common` to `embassy-cortex-m`.
* Implement giant (chunked) DMA transfers for DCMI.Matous Hybl2022-04-251-9/+155
|
* Add more options to DMAchemicstry2022-03-161-4/+32
|
* stm32/dma: panic on DMA error.Dario Nieuwenhuis2022-03-091-0/+6
|
* stm32: Refactor DMA interruptsGrant Miller2022-03-081-16/+20
| | | | | | | | Previously, every dma interrupt handler called the same `on_irq` function which had to check the state of every dma channel. Now, each dma interrupt handler only calls an `on_irq` method for its corresponding channel or channels.
* stm32: exclude spammy files from docs by prefixing with `_`.Dario Nieuwenhuis2022-03-041-2/+2
| | | | | | | These files end up containing chip-specific info, so they deduplicate really badly when building docs for all 1200 chips. The doc generator removes files starting with `_`.
* stm32: move macrotables to embassy-stm32 build.rsDario Nieuwenhuis2022-02-261-28/+14
|
* stm32: replace `peripheral_rcc!` macrotable with build.rsDario Nieuwenhuis2022-02-091-6/+1
|
* stm32/dma: fix interrupt codegen for new stm32-dataDario Nieuwenhuis2022-02-051-10/+1
|
* stm32/dma: make lowlevel api take ptrs instead of slices.Dario Nieuwenhuis2022-01-191-6/+8
|
* stm32/dma: simplify impls a bit.Dario Nieuwenhuis2021-12-081-29/+27
|