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.