Expand description
§Abstractions to setup and use the DMA controller
§Initializing
The DMAC should be initialized using the
DmaController::init
method. It will consume the
DMAC object generated by the PAC. By default, all four priority levels
will be enabled, but can be selectively enabled/disabled through the
DmaController::enable_levels
ansd DmaController::disable_levels
methods.
§Splitting Channels
Using the DmaController::split
method will return
a struct containing handles to individual channels.
§Releasing the DMAC
Using the free
method will
deinitialize the DMAC and return the underlying PAC object.
Structs§
- Channels
- Struct generating individual handles to each DMA channel
- DmaController
- Initialized DMA Controller
- Future
Channels - Struct generating individual handles to each DMA channel for
async
operation - Priority
Level Mask - Mask representing which priority levels should be enabled/disabled
- Round
Robin Mask - Mask representing which priority levels should be configured as round-robin
Enums§
- Burst
Length - Burst Length
- Ch0
- Type alias for a channel number
- Ch1
- Type alias for a channel number
- Ch2
- Type alias for a channel number
- Ch3
- Type alias for a channel number
- Ch4
- Type alias for a channel number
- Ch5
- Type alias for a channel number
- Ch6
- Type alias for a channel number
- Ch7
- Type alias for a channel number
- Ch8
- Type alias for a channel number
- Ch9
- Type alias for a channel number
- Ch10
- Type alias for a channel number
- Ch11
- Type alias for a channel number
- Ch12
- Type alias for a channel number
- Ch13
- Type alias for a channel number
- Ch14
- Type alias for a channel number
- Ch15
- Type alias for a channel number
- Fifo
Threshold - FIFO Threshold
- Priority
Level - Channel Priority Level
- Trigger
Action - Trigger Action
- Trigger
Source - Trigger Source
Traits§
- ChId
- Trait representing a DMA channel ID