aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/dma/bdma.rs
Commit message (Collapse)AuthorAgeFilesLines
* stm32/dma: add AnyChannel, add support for BDMA on H7.Dario Nieuwenhuis2024-02-241-740/+0
|
* hal-internal: remove impl DerefMut for PeripheralRef.Dario Nieuwenhuis2024-02-201-3/+3
| | | | | | | | | 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-13/+7
|
* stm32: add some docs.Dario Nieuwenhuis2023-12-181-7/+55
|
* 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: remove atomic-polyfill.Dario Nieuwenhuis2023-10-121-3/+15
|
* stm32/dma: minor cleanup, optmizationxoviat2023-08-041-2/+2
|
* stm32/dma: consolidate ringbufxoviat2023-08-031-54/+16
|
* stm32/dma: fix typosxoviat2023-07-301-3/+3
|
* stm32/dma: impl. wringbuf for bdmaxoviat2023-07-301-1/+153
|
* fix commentsxoviat2023-07-291-2/+2
|
* stm32/dma: rename ringbufxoviat2023-07-291-8/+8
|
* Rename embassy-hal-common to embassy-hal-internal, document it's for ↵Dario Nieuwenhuis2023-07-281-1/+1
| | | | internal use only. (#1700)
* 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.
* change dma complete transfer IR default to trueJuliDi2023-06-231-1/+1
|
* add option to enable/disable complete transfer interruptJuliDi2023-06-221-1/+6
|
* Merge remote-tracking branch 'upstream/main'JuliDi2023-06-211-0/+1
|\
| * Merge pull request #1572 from whitequark/bdma-blocking_wait-stopDario Nieuwenhuis2023-06-191-0/+1
| |\ | | | | | | | | | BDMA: request stop after busy loop in blocking_wait()
| | * BDMA: request stop after busy loop in blocking_wait().Catherine2023-06-191-0/+1
| | | | | | | | | | | | | | | Otherwise the channel cannot be used again, since CR.EN remains set and the DMA channel registers are read-only while it is set.
* | | fix typo, minor cleanupJuliDi2023-06-191-4/+3
| | |
* | | remove unsafe for circular dma reg accessJuliDi2023-06-191-1/+1
| | |
* | | Merge branch 'main' of github.com:embassy-rs/embassyJuliDi2023-06-191-32/+24
|\| |
| * | stm32: update stm32-metapac.Dario Nieuwenhuis2023-06-191-32/+24
| |/
* / add half transfer interrupt and circular dmaJuliDi2023-06-181-4/+22
|/
* 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/bdma: add ringbuffer support.Dario Nieuwenhuis2023-05-011-4/+183
|
* stm32/spi: add support for all word sizes.Dario Nieuwenhuis2023-04-181-4/+5
| | | | Co-Authored-By: anton smeenk <[email protected]>
* stm32/dma: refactor.Dario Nieuwenhuis2023-04-181-171/+232
|
* stm32/sdmmc: Fix SDIOv1 writeschemicstry2023-02-181-0/+1
|
* 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-19/+6
|
* 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-2/+25
|
* Fix BDMAchemicstry2022-03-161-4/+21
|
* stm32/dma: panic on DMA error.Dario Nieuwenhuis2022-03-091-0/+6
|
* stm32: Refactor DMA interruptsGrant Miller2022-03-081-20/+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-43/+26
|
* stm32: fix build for h7abDario Nieuwenhuis2022-02-241-0/+9
|