Direct Memory Access Function Documentation

 

Sys_DMA_ChannelConfig

void Sys_DMA_ChannelConfig(DMA_Type * dma, uint32_t cfg, uint32_t transferLength, uint32_t counterInt, uint32_t srcAddr, uint32_t destAddr)

 

Configure the DMA channels for a data transfer.

 

Location: dma.h:62

 

Parameters

Direction Name Description

in

dma

Pointer to the DMA instance

in

cfg

Configuration of the DMA transfer behavior; use DMA_[LITTLE | BIG]_ENDIAN, [DEST | SRC]_TRANS_LENGTH_SEL, DMA_PRIORITY_[0 | 1 | 2 | 3], DMA_SRC_* DMA_DEST_* WORD_SIZE_*, DMA_SRC_ADDR_*, DMA_DEST_ADDR_*, DMA_SRC_ADDR_LSB_TOGGLE_[DISABLE | ENABLE], DMA_CNT_INT_[DISABLE | ENABLE], DMA_COMPLETE_INT_[DISABLE | ENABLE]

in

transferLength

Configuration of the DMA transfer length

in

counterInt

Configuration of when the counter interrupt will occur during the transfer

in

srcAddr

Base source address for the DMA transfer

in

destAddr

Base destination address for the DMA transfer

 

 

Example Code for Sys_DMA_ChannelConfig

    // Configure the DMA1 channels for data transfer using a transfer length of 4

    // and interrupting at the beginning of the transfer

    uint32_t srcAddr = (uint32_t)0x2001ffc8;

    uint32_t destAddr = (uint32_t)0x2001ffb8;

    Sys_DMA_ChannelConfig(DMA1, DMA_BIG_ENDIAN | DEST_TRANS_LENGTH_SEL |

                          DMA_PRIORITY_1 | DMA_CNT_INT_ENABLE, 4, 0,

                          srcAddr, destAddr);

 

Sys_DMA_Mode_Enable

void Sys_DMA_Mode_Enable(DMA_Type * dma, uint32_t mode)

 

Configure the DMA channels for a data transfer.

 

Location: dma.h:107

 

Parameters

Direction Name Description

in

dma

Pointer to the DMA instance

in

mode

Enable mode of operation of the DMA Channel; use DMA_[DISABLE | ENABLE | DMA_ENABLE_WRAP | DMA_ENABLE_WRAP_RESTART | DMA_TRIGGER DMA_TRIGGER_WRAP | DMA_TRIGGER_WRAP_RESTART]

 

 

Example Code for Sys_DMA_Mode_Enable

    // Enable DMA1

    Sys_DMA_Mode_Enable(DMA1, DMA_ENABLE);

 

Sys_DMA_Get_Status

uint32_t Sys_DMA_Get_Status(DMA_Type * dma)

 

Get the status register of the DMA instance.

 

Location: dma.h:120

 

Parameters

Direction Name Description

in

dma

Pointer to the DMA instance

 


Return


The DMA_STATUS of the DMA instance.

 

 

Example Code for Sys_DMA_Get_Status

    // Get the current status of DMA channel 1

    result = Sys_DMA_Get_Status(DMA1);

 

Sys_DMA_Clear_Status

void Sys_DMA_Clear_Status(DMA_Type * dma, uint32_t ctrl)

 

Writes to the CNT_INT_CLEAR, COMPLETE_INT_CLEAR, or SRC_BUFFER_FILL_LVL_WR.

 

Location: dma.h:133

 

Parameters

Direction Name Description

in

dma

Pointer to the DMA instance

in

ctrl

Data to be written to the DMA_SATUS register

 

 

Example Code for Sys_DMA_Clear_Status

    // Clear the status register of DMA channel 1

    result = Sys_DMA_Clear_Status(DMA1, DMA_COMPLETE_INT_CLEAR | DMA_CNT_INT_CLEAR);

 

Sys_DMA_Set_Ctrl

void Sys_DMA_Set_Ctrl(DMA_Type * dma, uint32_t ctrl)

 

Sets the DMA_CTRL of the DMA instance.

 

Location: dma.h:145

 

Parameters

Direction Name Description

in

dma

Pointer to the DMA instance

in

ctrl

Data to be written to the DMA_CTRL register

 

 

Example Code for Sys_DMA_Set_Ctrl

    // Enables DMA channel 1 which will disable the DMA when the transfer is completed.

    result = Sys_DMA_Set_Ctrl(DMA1, DMA_ENABLE);