VSF Documented
Macros | Functions
dma_common.c File Reference
#include "hal/driver/driver.h"

Macros

#define VSF_DMA_CFG_FUNCTION_RENAME   DISABLED
 

Functions

vsf_err_t vsf_dma_init (vsf_dma_t *dma_ptr)
 initialize a dma instance.
 
void vsf_dma_fini (vsf_dma_t *dma_ptr)
 finalize a dma instance.
 
vsf_dma_capability_t vsf_dma_capability (vsf_dma_t *dma_ptr)
 get the capability of dma instance.
 
int8_t vsf_dma_channel_request (vsf_dma_t *dma_ptr)
 dma request new channel
 
void vsf_dma_channel_release (vsf_dma_t *dma_ptr, int8_t channel)
 dma release channel
 
vsf_err_t vsf_dma_channel_config (vsf_dma_t *dma_ptr, int8_t channel, vsf_dma_channel_cfg_t *cfg_ptr)
 dma channel configuration
 
vsf_err_t vsf_dma_channel_start (vsf_dma_t *dma_ptr, int8_t channel, uint32_t src_address, uint32_t dst_address, uint32_t count)
 DMA starts a channel transfer.
 
vsf_err_t vsf_dma_channel_cancel (vsf_dma_t *dma_ptr, int8_t channel)
 DMA cancels the transmission of a specific channel.
 
uint32_t vsf_dma_channel_get_transferred_count (vsf_dma_t *dma_ptr, int8_t channel)
 DMA get counter of specific channel that have been transferred.
 
vsf_dma_channel_status_t vsf_dma_channel_status (vsf_dma_t *dma_ptr, int8_t channel)
 dma release channel
 

Macro Definition Documentation

◆ VSF_DMA_CFG_FUNCTION_RENAME

#define VSF_DMA_CFG_FUNCTION_RENAME   DISABLED

Function Documentation

◆ vsf_dma_init()

vsf_err_t vsf_dma_init ( vsf_dma_t dma_ptr)

initialize a dma instance.

Parameters
[in]dma_ptra pointer to structure vsf_dma_t
Returns
vsf_err_t: VSF_ERR_NONE if dma was initialized, or a negative error code
Note
It is not necessary to call vsf_dma_fini() to deinitialization. vsf_dma_init() should be called before any other DMA API except vsf_dma_capability().

◆ vsf_dma_fini()

void vsf_dma_fini ( vsf_dma_t dma_ptr)

finalize a dma instance.

Parameters
[in]dma_ptra pointer to structure vsf_dma_t
Returns
none

◆ vsf_dma_capability()

vsf_dma_capability_t vsf_dma_capability ( vsf_dma_t dma_ptr)

get the capability of dma instance.

Parameters
[in]dma_ptra pointer to structure vsf_dma_t
Returns
vsf_dma_capability_t: return all capability of current dma vsf_dma_capability_t

◆ vsf_dma_channel_request()

int8_t vsf_dma_channel_request ( vsf_dma_t dma_ptr)

dma request new channel

Parameters
[in]dma_ptra pointer to structure vsf_dma_t
Returns
int8_t: positive number or 0 if the dma request was successfully, or a negative error code

◆ vsf_dma_channel_release()

void vsf_dma_channel_release ( vsf_dma_t dma_ptr,
int8_t  channel 
)

dma release channel

Parameters
[in]dma_ptra pointer to structure vsf_dma_t
[in]channelchannel number

◆ vsf_dma_channel_config()

vsf_err_t vsf_dma_channel_config ( vsf_dma_t dma_ptr,
int8_t  channel,
vsf_dma_channel_cfg_t cfg_ptr 
)

dma channel configuration

Parameters
[in]dma_ptra pointer to structure vsf_dma_t
[in]cfg_ptra pointer to DMA channel configuration
Returns
vsf_err_t: VSF_ERR_NONE if the dma request was successfully, or a negative error code

◆ vsf_dma_channel_start()

vsf_err_t vsf_dma_channel_start ( vsf_dma_t dma_ptr,
int8_t  channel,
uint32_t  src_address,
uint32_t  dst_address,
uint32_t  count 
)

DMA starts a channel transfer.

Parameters
[in]dma_ptra pointer to structure vsf_dma_t
[in]channelchannel number
[in]src_addresssource address
[in]dst_addressdestination address
[in]countcounter of data to be transferred (in byte)
Returns
vsf_err_t: VSF_ERR_NONE if the dma start request was successfully, or a negative error code

◆ vsf_dma_channel_cancel()

vsf_err_t vsf_dma_channel_cancel ( vsf_dma_t dma_ptr,
int8_t  channel 
)

DMA cancels the transmission of a specific channel.

Parameters
[in]dma_ptra pointer to structure vsf_dma_t
[in]channelchannel number
Returns
vsf_err_t: VSF_ERR_NONE if the dma cancel request was successfully, or a negative error code

◆ vsf_dma_channel_get_transferred_count()

uint32_t vsf_dma_channel_get_transferred_count ( vsf_dma_t dma_ptr,
int8_t  channel 
)

DMA get counter of specific channel that have been transferred.

Parameters
[in]dma_ptra pointer to structure vsf_dma_t
[in]channelchannel number
Returns
uint32_t: transferred counter
Note
: If called after VSF_DMA_IRQ_MASK_CPL interrupt trigger, it should return 0.
: It is usually called after call vsf_dma_channel_cancel() to get the counter that has been transferred.

◆ vsf_dma_channel_status()

vsf_dma_channel_status_t vsf_dma_channel_status ( vsf_dma_t dma_ptr,
int8_t  channel 
)

dma release channel

Parameters
[in]dma_ptra pointer to structure vsf_dma_t
[in]channelchannel number
Returns
vsf_dma_channel_status_t: dma channel status