Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
HSTX support for the RP2350! Resolves #17111
This implementation is similar to
rp2.DMAin that the control registers values are created withpackfunctions. The FIFO registers are accessed with special functions. It also supports the buffer protocol (write only) so DMA transfers are relatively simple.Note that this implementation is entirely application agnostic, unlike other HSTX implementations (which often just implement DVI, and end up hogging specific resources for it).
Testing
I've created 2 demos here. The first is a simple blink, the second is a DVI implementation.
Both tested to work with the following:
Though it should work with any RP2350 board and appropriate hardware to run the DVI example.
Trade-offs and Alternatives
On my machine, this adds 1852 bytes (+0.59%) to the
RPI_PICO2build. IMO this is worth the extra functionality for the reasons outlined in #17111.