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.