LDMA extended descriptor.

The extended descriptor adds additional fields for the extended features available on the MMLDMA peripheral: destination interleaving and bufferable. The same three different LDMA descriptors supported by the LDMA LDMA controller are available. Each consists of seven WORDs (instead of four in non-extended descriptors) which map directly onto HW control registers for a given DMA channel. The three descriptor types are XFER, SYNC and WRI. But the extended fields are true only for XFER. The extended fields are the following:

      +-          +- CTRL
      | Original  |  SRC
      | Structure |  DST

Extended | +- LINK Structure | XCTRL | DUALDST +- ILSRC

Refer to the reference manual for further information.

Public Attributes#

uint32_t

Set to 0 to select XFER descriptor type.

uint32_t

Extend data structure.

uint32_t

LDMA transfer trigger during LINKLOAD.

uint32_t

Transfer count minus one.

uint32_t

Enable byte swapping transfers.

uint32_t

Number of unit transfers per arbitration cycle.

uint32_t

Generate interrupt when done.

uint32_t

Block or cycle transfer selector.

uint32_t

Enable looped transfers.

uint32_t

Ignore single requests.

uint32_t

Source address increment unit size.

uint32_t

LDMA transfer unit size.

uint32_t

Destination address increment unit size.

uint32_t

Source addressing mode.

uint32_t

Destination addressing mode.

uint32_t

LDMA source address.

uint32_t

LDMA destination address.

uint32_t

Select absolute or relative link address.

uint32_t

Enable LINKLOAD when transfer is done.

int32_t

Address of next (linked) descriptor.

uint32_t

Reserved.

uint32_t

Destination interleave.

uint32_t

Interleave mode.

uint32_t

Allow AHB buffering.

uint32_t

Reserved.

uint32_t

Reserved.

uint32_t

LDMA rules table base address in memory.

Public Attribute Documentation#

struct_type#

uint32_t sl_hal_ldma_descriptor_extend_t::struct_type

Set to 0 to select XFER descriptor type.


extend#

uint32_t sl_hal_ldma_descriptor_extend_t::extend

Extend data structure.


struct_req#

uint32_t sl_hal_ldma_descriptor_extend_t::struct_req

LDMA transfer trigger during LINKLOAD.


xfer_count#

uint32_t sl_hal_ldma_descriptor_extend_t::xfer_count

Transfer count minus one.


byte_swap#

uint32_t sl_hal_ldma_descriptor_extend_t::byte_swap

Enable byte swapping transfers.


block_size#

uint32_t sl_hal_ldma_descriptor_extend_t::block_size

Number of unit transfers per arbitration cycle.


done_ifs#

uint32_t sl_hal_ldma_descriptor_extend_t::done_ifs

Generate interrupt when done.


req_mode#

uint32_t sl_hal_ldma_descriptor_extend_t::req_mode

Block or cycle transfer selector.


dec_loop_count#

uint32_t sl_hal_ldma_descriptor_extend_t::dec_loop_count

Enable looped transfers.


ignore_single_req#

uint32_t sl_hal_ldma_descriptor_extend_t::ignore_single_req

Ignore single requests.


src_inc#

uint32_t sl_hal_ldma_descriptor_extend_t::src_inc

Source address increment unit size.


size#

uint32_t sl_hal_ldma_descriptor_extend_t::size

LDMA transfer unit size.


dst_inc#

uint32_t sl_hal_ldma_descriptor_extend_t::dst_inc

Destination address increment unit size.


src_addr_mode#

uint32_t sl_hal_ldma_descriptor_extend_t::src_addr_mode

Source addressing mode.


dst_addr_mode#

uint32_t sl_hal_ldma_descriptor_extend_t::dst_addr_mode

Destination addressing mode.


src_addr#

uint32_t sl_hal_ldma_descriptor_extend_t::src_addr

LDMA source address.


dst_addr#

uint32_t sl_hal_ldma_descriptor_extend_t::dst_addr

LDMA destination address.


link_mode#

uint32_t sl_hal_ldma_descriptor_extend_t::link_mode

Select absolute or relative link address.


link#

uint32_t sl_hal_ldma_descriptor_extend_t::link

Enable LINKLOAD when transfer is done.


link_addr#

int32_t sl_hal_ldma_descriptor_extend_t::link_addr

Address of next (linked) descriptor.


reserved1#

uint32_t sl_hal_ldma_descriptor_extend_t::reserved1

Reserved.


dst_il_en#

uint32_t sl_hal_ldma_descriptor_extend_t::dst_il_en

Destination interleave.


il_mode#

uint32_t sl_hal_ldma_descriptor_extend_t::il_mode

Interleave mode.


bufferable#

uint32_t sl_hal_ldma_descriptor_extend_t::bufferable

Allow AHB buffering.


reserved2#

uint32_t sl_hal_ldma_descriptor_extend_t::reserved2

Reserved.


reserved3#

uint32_t sl_hal_ldma_descriptor_extend_t::reserved3

Reserved.


il_src_addr#

uint32_t sl_hal_ldma_descriptor_extend_t::il_src_addr

LDMA rules table base address in memory.