Azure Sphere MT3620 M4 API Reference Manual
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
dma_config Struct Reference

dma_config specifies the DMA channel parameters for data transfer, such as transfer source, transfer destination and transfer count. More...

#include <mhal_dma.h>

Data Fields

u32 addr_1
 For FULL-SIZE DMA, addr_1 is src_addr. More...
 
u32 addr_2
 For FULL-SIZE DMA, addr_2 is dst_addr. More...
 
u32 wrap_point
 Wrap point from start address. More...
 
u32 wrap_to_addr
 The address which DMA will wrap to. More...
 
u8 reload_en
 Reload transfer count flag, only for HALF-SIZE DMA.
 
u32 count
 For FULL-SIZE DMA and HALF-SIZE DMA, it specifies transfer byte count. More...
 
u8 bw_limiter
 Bandwidth limiter. More...
 
u8 alert_cmp_type
 Specifies the Compare Equation Between ALTLEN and FIFO_SIZE - FIFO_CNT.
 
u32 alert_len
 Specifies the Alert Length of Virtual FIFO DMA.
 
u32 fifo_size
 Virtual fifo size, only for VFF DMA.
 
u32 timeout_cnt
 Interrupt will assert if there is no new data into FIFO more than n T(Bus Clock)
 
dma_isr_callback isr_callback_1
 For FULL-SIZE DMA and HALF-SIZE DMA, isr_callback_1 is completion isr callback. More...
 
dma_isr_callback isr_callback_2
 For HALF-SIZE DMA, isr_callback_2 is half completion isr callback. More...
 
void * isr_cb_data_1
 isr_callback_1 data
 
void * isr_cb_data_2
 isr_callback_2 data
 

Detailed Description

dma_config specifies the DMA channel parameters for data transfer, such as transfer source, transfer destination and transfer count.


Users fill the field of dma_config according to the DMA channel type.

Field Documentation

u32 addr_1

For FULL-SIZE DMA, addr_1 is src_addr.

For HALF-SIZE DMA and VFF DMA, addr_1 is prog_addr.

u32 addr_2

For FULL-SIZE DMA, addr_2 is dst_addr.

For HALF-SIZE DMA and VFF DMA, addr_2 is fix_addr.

u32 wrap_point

Wrap point from start address.

If wrap_en in dma_ctrl is enable, DMA channel read/write pointer will jump to wrap_to_addr at wrap_point during data transfer.
Only for FULL-SIZE DMA and HALF-SIZE DMA.

u32 wrap_to_addr

The address which DMA will wrap to.

If wrap_en in dma_ctrl is enable, DMA channel read/write pointer will jump to wrap_to_addr at wrap_point during data transfer.
Only for FULL-SIZE DMA and HALF-SIZE DMA.

u32 count

For FULL-SIZE DMA and HALF-SIZE DMA, it specifies transfer byte count.

FOR VFF DMA, it specifies the threshold for FIFO data interrupt.

u8 bw_limiter

Bandwidth limiter.

The value range is from 0 to 255.

dma_isr_callback isr_callback_1

For FULL-SIZE DMA and HALF-SIZE DMA, isr_callback_1 is completion isr callback.

For VFF DMA, isr_callback_1 is FIFO data underflow or overflow interrupt callback.

dma_isr_callback isr_callback_2

For HALF-SIZE DMA, isr_callback_2 is half completion isr callback.

For VFF DMA, isr_callback_2 is FIFO DMA timeout interrupt callback.


The documentation for this struct was generated from the following file: