LDMA_Descriptor_t Union Reference
DMA descriptor.
#include <em_ldma.h>
Data Fields | |
struct { | |
uint32_t structType: 2 | |
Set to 0 to select XFER descriptor type. | |
uint32_t reserved0: 1 | |
Reserved | |
uint32_t structReq: 1 | |
DMA transfer trigger during LINKLOAD. | |
uint32_t xferCnt: 11 | |
Transfer count minus one. | |
uint32_t byteSwap: 1 | |
Enable byte swapping transfers. | |
uint32_t blockSize: 4 | |
Number of unit transfers per arbitration cycle. | |
uint32_t doneIfs: 1 | |
Generate interrupt when done. | |
uint32_t reqMode: 1 | |
Block or cycle transfer selector. | |
uint32_t decLoopCnt: 1 | |
Enable looped transfers. | |
uint32_t ignoreSrec: 1 | |
Ignore single requests. | |
uint32_t srcInc: 2 | |
Source address increment unit size. | |
uint32_t size: 2 | |
DMA transfer unit size. | |
uint32_t dstInc: 2 | |
Destination address increment unit size. | |
uint32_t srcAddrMode: 1 | |
Source addressing mode. | |
uint32_t dstAddrMode: 1 | |
Destination addressing mode. | |
uint32_t srcAddr | |
DMA source address. | |
uint32_t dstAddr | |
DMA destination address. | |
uint32_t linkMode: 1 | |
Select absolute or relative link address. | |
uint32_t link: 1 | |
Enable LINKLOAD when transfer is done. | |
int32_t linkAddr: 30 | |
Address of next (linked) descriptor. | |
} | xfer |
TRANSFER DMA descriptor, this is the only descriptor type which can be used to start a DMA transfer. | |
struct { | |
uint32_t structType: 2 | |
Set to 1 to select SYNC descriptor type. | |
uint32_t reserved0: 1 | |
Reserved. | |
uint32_t structReq: 1 | |
DMA transfer trigger during LINKLOAD. | |
uint32_t xferCnt: 11 | |
Transfer count minus one. | |
uint32_t byteSwap: 1 | |
Enable byte swapping transfers. | |
uint32_t blockSize: 4 | |
Number of unit transfers per arbitration cycle. | |
uint32_t doneIfs: 1 | |
Generate interrupt when done. | |
uint32_t reqMode: 1 | |
Block or cycle transfer selector. | |
uint32_t decLoopCnt: 1 | |
Enable looped transfers. | |
uint32_t ignoreSrec: 1 | |
Ignore single requests. | |
uint32_t srcInc: 2 | |
Source address increment unit size. | |
uint32_t size: 2 | |
DMA transfer unit size. | |
uint32_t dstInc: 2 | |
Destination address increment unit size. | |
uint32_t srcAddrMode: 1 | |
Source addressing mode. | |
uint32_t dstAddrMode: 1 | |
Destination addressing mode. | |
uint32_t syncSet: 8 | |
Set bits in LDMA_CTRL.SYNCTRIG register. | |
uint32_t syncClr: 8 | |
Clear bits in LDMA_CTRL.SYNCTRIG register. | |
uint32_t reserved3: 16 | |
Reserved. | |
uint32_t matchVal: 8 | |
Sync trigger match value. | |
uint32_t matchEn: 8 | |
Sync trigger match enable. | |
uint32_t reserved4: 16 | |
Reserved. | |
uint32_t linkMode: 1 | |
Select absolute or relative link address. | |
uint32_t link: 1 | |
Enable LINKLOAD when transfer is done. | |
int32_t linkAddr: 30 | |
Address of next (linked) descriptor. | |
} | sync |
SYNCHRONIZE DMA descriptor, used for intra channel transfer synchronization. | |
struct { | |
uint32_t structType: 2 | |
Set to 2 to select WRITE descriptor type. | |
uint32_t reserved0: 1 | |
Reserved. | |
uint32_t structReq: 1 | |
DMA transfer trigger during LINKLOAD. | |
uint32_t xferCnt: 11 | |
Transfer count minus one. | |
uint32_t byteSwap: 1 | |
Enable byte swapping transfers. | |
uint32_t blockSize: 4 | |
Number of unit transfers per arbitration cycle. | |
uint32_t doneIfs: 1 | |
Generate interrupt when done. | |
uint32_t reqMode: 1 | |
Block or cycle transfer selector. | |
uint32_t decLoopCnt: 1 | |
Enable looped transfers. | |
uint32_t ignoreSrec: 1 | |
Ignore single requests. | |
uint32_t srcInc: 2 | |
Source address increment unit size. | |
uint32_t size: 2 | |
DMA transfer unit size. | |
uint32_t dstInc: 2 | |
Destination address increment unit size. | |
uint32_t srcAddrMode: 1 | |
Source addressing mode. | |
uint32_t dstAddrMode: 1 | |
Destination addressing mode. | |
uint32_t immVal | |
Data to be written at dstAddr. | |
uint32_t dstAddr | |
DMA write destination address. | |
uint32_t linkMode: 1 | |
Select absolute or relative link address. | |
uint32_t link: 1 | |
Enable LINKLOAD when transfer is done. | |
int32_t linkAddr: 30 | |
Address of next (linked) descriptor. | |
} | wri |
WRITE DMA descriptor, used for write immediate operations. | |
DMA descriptor.
The LDMA DMA controller supports three different DMA descriptors. Each consists of four WORDs which map directly onto HW control registers for a given DMA channel. The three descriptor types are XFER, SYNC and WRI. Refer to the reference manual for further information.
Field Documentation
◆ structType
uint32_t LDMA_Descriptor_t::structType |
Set to 0 to select XFER descriptor type.
Set to 2 to select WRITE descriptor type.
Set to 1 to select SYNC descriptor type.
◆ reserved0
uint32_t LDMA_Descriptor_t::reserved0 |
Reserved
Reserved.
◆ structReq
uint32_t LDMA_Descriptor_t::structReq |
DMA transfer trigger during LINKLOAD.
◆ xferCnt
uint32_t LDMA_Descriptor_t::xferCnt |
Transfer count minus one.
◆ byteSwap
uint32_t LDMA_Descriptor_t::byteSwap |
Enable byte swapping transfers.
◆ blockSize
uint32_t LDMA_Descriptor_t::blockSize |
Number of unit transfers per arbitration cycle.
◆ doneIfs
uint32_t LDMA_Descriptor_t::doneIfs |
Generate interrupt when done.
◆ reqMode
uint32_t LDMA_Descriptor_t::reqMode |
Block or cycle transfer selector.
◆ decLoopCnt
uint32_t LDMA_Descriptor_t::decLoopCnt |
Enable looped transfers.
◆ ignoreSrec
uint32_t LDMA_Descriptor_t::ignoreSrec |
Ignore single requests.
◆ srcInc
uint32_t LDMA_Descriptor_t::srcInc |
Source address increment unit size.
◆ size
uint32_t LDMA_Descriptor_t::size |
DMA transfer unit size.
◆ dstInc
uint32_t LDMA_Descriptor_t::dstInc |
Destination address increment unit size.
◆ srcAddrMode
uint32_t LDMA_Descriptor_t::srcAddrMode |
Source addressing mode.
◆ dstAddrMode
uint32_t LDMA_Descriptor_t::dstAddrMode |
Destination addressing mode.
◆ srcAddr
uint32_t LDMA_Descriptor_t::srcAddr |
DMA source address.
◆ dstAddr
uint32_t LDMA_Descriptor_t::dstAddr |
DMA destination address.
DMA write destination address.
◆ linkMode
uint32_t LDMA_Descriptor_t::linkMode |
Select absolute or relative link address.
◆ link
uint32_t LDMA_Descriptor_t::link |
Enable LINKLOAD when transfer is done.
◆ linkAddr
int32_t LDMA_Descriptor_t::linkAddr |
Address of next (linked) descriptor.
◆ xfer
struct { ... } LDMA_Descriptor_t::xfer |
TRANSFER DMA descriptor, this is the only descriptor type which can be used to start a DMA transfer.
◆ syncSet
uint32_t LDMA_Descriptor_t::syncSet |
Set bits in LDMA_CTRL.SYNCTRIG register.
◆ syncClr
uint32_t LDMA_Descriptor_t::syncClr |
Clear bits in LDMA_CTRL.SYNCTRIG register.
◆ reserved3
uint32_t LDMA_Descriptor_t::reserved3 |
Reserved.
◆ matchVal
uint32_t LDMA_Descriptor_t::matchVal |
Sync trigger match value.
◆ matchEn
uint32_t LDMA_Descriptor_t::matchEn |
Sync trigger match enable.
◆ reserved4
uint32_t LDMA_Descriptor_t::reserved4 |
Reserved.
◆ sync
struct { ... } LDMA_Descriptor_t::sync |
SYNCHRONIZE DMA descriptor, used for intra channel transfer synchronization.
◆ immVal
uint32_t LDMA_Descriptor_t::immVal |
Data to be written at dstAddr.
◆ wri
struct { ... } LDMA_Descriptor_t::wri |
WRITE DMA descriptor, used for write immediate operations.