Skip to content

SPI DMA + Futures #66

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 47 commits into
base: master
Choose a base branch
from
Draft

SPI DMA + Futures #66

wants to merge 47 commits into from

Conversation

astapleton
Copy link
Member

No description provided.

astapleton and others added 6 commits July 31, 2025 09:29
This adds support for one-shot DMA transfers for all supported transfer
types with linear addressing. It does not yet support linked list buffer
loading, or support 2D addressing.

Memory-to-memory transfers were quite thoroughly tested by the provided
example, memory-to-peripheral and peripheral-to-memory transfers were
tested with the SPI peripheral (working on a test branch).
Peripheral-to-peripheral transfers are assumed to work given their
similarity to memory-to-peripheral/peripheral-to-memory transfers,
but will be properly tested at a later stage.

The driver includes helper structs for peripheral transfers in the
gpdma::periph module which handle the common operations for setting up
one-directional and full-duplex transfers using one, or two channels,
respectively.
- Use stack allocated buffers for dma example,
- fix wait_for_transfer_complete/wait_for_half_transfer_complete
- remove clock sync delays
 - Add defmt derives
 - improve consistency in return values for DataTransformBuilder
 - Removed side effects from check_transfer_event and added a separate function to clear events
 - Add drop implementation to abort a transfer
 - Modified wait_for_transfer_complete and wait_for_half_transform_complete to:
   - explicitly clear event flags
   - consume, but forget self, so the drop implementation is not called.
 - misc documentation improvements
@astapleton astapleton mentioned this pull request Aug 2, 2025
@astapleton astapleton changed the base branch from master to as/gpdma-async August 2, 2025 15:53
@astapleton astapleton force-pushed the as/gpdma-async branch 6 times, most recently from fe59cf0 to 48acbcd Compare August 7, 2025 21:27
Base automatically changed from as/gpdma-async to master August 11, 2025 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants