VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions
vsf_template_dma.h File Reference
#include "./vsf_template_hal_driver.h"
#include "hal/arch/vsf_arch.h"

Go to the source code of this file.

Data Structures

struct  vsf_dma_isr_t
 
struct  vsf_dma_channel_cfg_t
 dma configuration More...
 
struct  vsf_dma_channel_status_t
 
struct  vsf_dma_capability_t
 
struct  vsf_dma_op_t
 
struct  vsf_dma_t
 

Macros

#define VSF_DMA_CFG_MULTI_CLASS   ENABLED
 
#define VSF_DMA_CFG_PREFIX   vsf
 
#define VSF_DMA_CFG_FUNCTION_RENAME   ENABLED
 
#define VSF_DMA_CFG_REIMPLEMENT_TYPE_CHANNEL_MODE   DISABLED
 
#define VSF_DMA_CFG_REIMPLEMENT_TYPE_IRQ_MASK   DISABLED
 
#define VSF_DMA_CFG_REIMPLEMENT_TYPE_CHANNEL_CFG   DISABLED
 
#define VSF_DMA_CFG_REIMPLEMENT_TYPE_CFG   DISABLED
 
#define VSF_DMA_CFG_REIMPLEMENT_TYPE_CAPABILITY   DISABLED
 
#define VSF_DMA_CFG_INHERT_HAL_CAPABILITY   ENABLED
 
#define VSF_DMA_APIS(__prefix_name)
 
#define __VSF_HAL_TEMPLATE_API   VSF_HAL_TEMPLATE_API_FP
 
#define __vsf_dma_t   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_t)
 
#define vsf_dma_init(__DMA, ...)   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_init) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)
 
#define vsf_dma_fini(__DMA)   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_fini) ((__vsf_dma_t *)(__DMA))
 
#define vsf_dma_capability(__DMA)   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_capability) ((__vsf_dma_t *)(__DMA))
 
#define vsf_dma_channel_request(__DMA, ...)   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_request) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)
 
#define vsf_dma_channel_release(__DMA, ...)   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_release) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)
 
#define vsf_dma_channel_config(__DMA, ...)   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_config) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)
 
#define vsf_dma_channel_start(__DMA, ...)   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_start) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)
 
#define vsf_dma_channel_cancel(__DMA, ...)   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_cancel) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)
 
#define vsf_dma_channel_get_transferred_count(__DMA, ...)   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_get_transferred_count) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)
 
#define vsf_dma_channel_status(__DMA, ...)   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_status) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)
 

Typedefs

typedef enum vsf_dma_channel_mode_t vsf_dma_channel_mode_t
 
typedef enum vsf_dma_irq_mask_t vsf_dma_irq_mask_t
 
typedef struct vsf_dma_t vsf_dma_t
 
typedef void vsf_dma_isr_handler_t(void *target_ptr, vsf_dma_t *dma_ptr, int8_t channel, vsf_dma_irq_mask_t irq_mask)
 
typedef struct vsf_dma_isr_t vsf_dma_isr_t
 
typedef struct vsf_dma_channel_cfg_t vsf_dma_channel_cfg_t
 dma configuration
 
typedef struct vsf_dma_channel_status_t vsf_dma_channel_status_t
 
typedef struct vsf_dma_capability_t vsf_dma_capability_t
 
typedef struct vsf_dma_op_t vsf_dma_op_t
 

Enumerations

enum  vsf_dma_channel_mode_t {
  VSF_DMA_MEMORY_TO_MEMORY = (0x00 << 0) ,
  VSF_DMA_MEMORY_TO_PERIPHERAL = (0x01 << 0) ,
  VSF_DMA_PERIPHERA_TO_MEMORY = (0x02 << 0) ,
  VSF_DMA_PERIPHERA_TO_PERIPHERAL = (0x03 << 0) ,
  VSF_DMA_SRC_ADDR_INCREMENT = (0x00 << 2) ,
  VSF_DMA_SRC_ADDR_DECREMENT = (0x01 << 2) ,
  VSF_DMA_SRC_ADDR_NO_CHANGE = (0x02 << 2) ,
  VSF_DMA_DST_ADDR_INCREMENT = (0x00 << 4) ,
  VSF_DMA_DST_ADDR_DECREMENT = (0x01 << 4) ,
  VSF_DMA_DST_ADDR_NO_CHANGE = (0x02 << 4) ,
  VSF_DMA_SRC_WIDTH_BYTE_1 = (0x00 << 6) ,
  VSF_DMA_SRC_WIDTH_BYTES_2 = (0x01 << 6) ,
  VSF_DMA_SRC_WIDTH_BYTES_4 = (0x02 << 6) ,
  VSF_DMA_SRC_WIDTH_BYTES_8 = (0x03 << 6) ,
  VSF_DMA_SRC_WIDTH_BYTES_16 = (0x04 << 6) ,
  VSF_DMA_SRC_WIDTH_BYTES_32 = (0x05 << 6) ,
  VSF_DMA_DST_WIDTH_BYTE_1 = (0x00 << 10) ,
  VSF_DMA_DST_WIDTH_BYTES_2 = (0x01 << 10) ,
  VSF_DMA_DST_WIDTH_BYTES_4 = (0x02 << 10) ,
  VSF_DMA_DST_WIDTH_BYTES_8 = (0x03 << 10) ,
  VSF_DMA_DST_WIDTH_BYTES_16 = (0x04 << 10) ,
  VSF_DMA_DST_WIDTH_BYTES_32 = (0x05 << 10) ,
  VSF_DMA_SRC_BURST_LENGTH_1 = (0x00 << 14) ,
  VSF_DMA_SRC_BURST_LENGTH_2 = (0x01 << 14) ,
  VSF_DMA_SRC_BURST_LENGTH_4 = (0x02 << 14) ,
  VSF_DMA_SRC_BURST_LENGTH_8 = (0x03 << 14) ,
  VSF_DMA_SRC_BURST_LENGTH_16 = (0x04 << 14) ,
  VSF_DMA_SRC_BURST_LENGTH_32 = (0x05 << 14) ,
  VSF_DMA_SRC_BURST_LENGTH_64 = (0x05 << 14) ,
  VSF_DMA_SRC_BURST_LENGTH_128 = (0x05 << 14) ,
  VSF_DMA_DST_BURST_LENGTH_1 = (0x00 << 18) ,
  VSF_DMA_DST_BURST_LENGTH_2 = (0x01 << 18) ,
  VSF_DMA_DST_BURST_LENGTH_4 = (0x02 << 18) ,
  VSF_DMA_DST_BURST_LENGTH_8 = (0x03 << 18) ,
  VSF_DMA_DST_BURST_LENGTH_16 = (0x04 << 18) ,
  VSF_DMA_DST_BURST_LENGTH_32 = (0x05 << 18) ,
  VSF_DMA_DST_BURST_LENGTH_64 = (0x05 << 18) ,
  VSF_DMA_DST_BURST_LENGTH_128 = (0x05 << 18) ,
  VSF_DMA_PRIOPIRY_LOW = (0x00 << 22) ,
  VSF_DMA_PRIOPIRY_MIDIUM = (0x01 << 22) ,
  VSF_DMA_PRIOPIRY_HIGH = (0x02 << 22) ,
  VSF_DMA_PRIOPIRY_VERY_HIGH = (0x03 << 22)
}
 
enum  {
  VSF_DMA_DIRECTION_COUNT = 4 ,
  VSF_DMA_DIRECTION_MASK ,
  VSF_DMA_SRC_ADDR_COUNT = 3 ,
  VSF_DMA_SRC_ADDR_MASK ,
  VSF_DMA_DST_ADDR_COUNT = 3 ,
  VSF_DMA_DST_ADDR_MASK ,
  VSF_DMA_SRC_WIDTH_COUNT = 6 ,
  VSF_DMA_SRC_WIDTH_MASK ,
  VSF_DMA_DST_WIDTH_COUNT = 6 ,
  VSF_DMA_DST_WIDTH_MASK ,
  VSF_DMA_SRC_BURST_COUNT = 8 ,
  VSF_DMA_SRC_BURST_MASK ,
  VSF_DMA_DST_BURST_COUNT = 8 ,
  VSF_DMA_DST_BURST_MASK ,
  VSF_DMA_PRIOPIRY_COUNT = 4 ,
  VSF_DMA_PRIOPIRY_MASK ,
  VSF_DMA_MODE_MASK_COUNT = 8 ,
  VSF_DMA_MODE_ALL_BITS_MASK
}
 
enum  vsf_dma_irq_mask_t {
  VSF_DMA_IRQ_MASK_CPL = (0x1ul << 0) ,
  VSF_DMA_IRQ_MASK_HALF_CPL = (0x1ul << 1) ,
  VSF_DMA_IRQ_MASK_ERROR = (0x1ul << 2)
}
 
enum  {
  VSF_DMA_IRQ_COUNT = 3 ,
  VSF_DMA_IRQ_ALL_BITS_MASK
}
 

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_MULTI_CLASS

#define VSF_DMA_CFG_MULTI_CLASS   ENABLED

◆ VSF_DMA_CFG_PREFIX

#define VSF_DMA_CFG_PREFIX   vsf

◆ VSF_DMA_CFG_FUNCTION_RENAME

#define VSF_DMA_CFG_FUNCTION_RENAME   ENABLED

◆ VSF_DMA_CFG_REIMPLEMENT_TYPE_CHANNEL_MODE

#define VSF_DMA_CFG_REIMPLEMENT_TYPE_CHANNEL_MODE   DISABLED

◆ VSF_DMA_CFG_REIMPLEMENT_TYPE_IRQ_MASK

#define VSF_DMA_CFG_REIMPLEMENT_TYPE_IRQ_MASK   DISABLED

◆ VSF_DMA_CFG_REIMPLEMENT_TYPE_CHANNEL_CFG

#define VSF_DMA_CFG_REIMPLEMENT_TYPE_CHANNEL_CFG   DISABLED

Redefine struct vsf_dma_channel_cfg_t. For compatibility, members should not be deleted when struct vsf_dma_channel_cfg_t redefining.

◆ VSF_DMA_CFG_REIMPLEMENT_TYPE_CFG

#define VSF_DMA_CFG_REIMPLEMENT_TYPE_CFG   DISABLED

Redefine struct vsf_dma_cfg_t. The vsf_dma_isr_handler_t type also needs to be redefined For compatibility, members should not be deleted when struct vsf_dma_cfg_t redefining.

◆ VSF_DMA_CFG_REIMPLEMENT_TYPE_CAPABILITY

#define VSF_DMA_CFG_REIMPLEMENT_TYPE_CAPABILITY   DISABLED

Redefine struct vsf_dma_capability_t. For compatibility, members should not be deleted when struct vsf_dma_capability_t redefining.

◆ VSF_DMA_CFG_INHERT_HAL_CAPABILITY

#define VSF_DMA_CFG_INHERT_HAL_CAPABILITY   ENABLED

◆ VSF_DMA_APIS

#define VSF_DMA_APIS (   __prefix_name)
Value:
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, dma, init, VSF_MCONNECT(__prefix_name, _dma_t) *dma_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, void, dma, fini, VSF_MCONNECT(__prefix_name, _dma_t) *dma_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_dma_capability_t, dma, capability, VSF_MCONNECT(__prefix_name, _dma_t) *dma_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, int8_t, dma, channel_request, VSF_MCONNECT(__prefix_name, _dma_t) *dma_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, void, dma, channel_release, VSF_MCONNECT(__prefix_name, _dma_t) *dma_ptr, int8_t) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, dma, channel_config, VSF_MCONNECT(__prefix_name, _dma_t) *dma_ptr, int8_t channel, vsf_dma_channel_cfg_t * cfg_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, dma, channel_start, VSF_MCONNECT(__prefix_name, _dma_t) *dma_ptr, int8_t channel, uint32_t src_address, uint32_t dst_address, uint32_t count) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, dma, channel_cancel, VSF_MCONNECT(__prefix_name, _dma_t) *dma_ptr, int8_t channel) \
__VSF_HAL_TEMPLATE_API(__prefix_name, uint32_t, dma, channel_get_transferred_count, VSF_MCONNECT(__prefix_name, _dma_t) *dma_ptr, int8_t channel) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_dma_channel_status_t, dma, channel_status, VSF_MCONNECT(__prefix_name, _dma_t) *dma_ptr, int8_t channel)
vsf_err_t
Definition __type.h:42
struct VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_t)
Definition flash.c:53
__le16 capability
Definition ieee80211.h:134
unsigned uint32_t
Definition stdint.h:9
signed char int8_t
Definition stdint.h:4
Definition vsf_template_dma.h:281
dma configuration
Definition vsf_template_dma.h:259
Definition vsf_template_dma.h:270
#define __VSF_HAL_TEMPLATE_API
Definition vsf_template_dma.h:294

◆ __VSF_HAL_TEMPLATE_API

#define __VSF_HAL_TEMPLATE_API   VSF_HAL_TEMPLATE_API_FP

◆ __vsf_dma_t

#define __vsf_dma_t   VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_t)

◆ vsf_dma_init

#define vsf_dma_init (   __DMA,
  ... 
)    VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_init) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)

◆ vsf_dma_fini

#define vsf_dma_fini (   __DMA)    VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_fini) ((__vsf_dma_t *)(__DMA))

◆ vsf_dma_capability

#define vsf_dma_capability (   __DMA)    VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_capability) ((__vsf_dma_t *)(__DMA))

◆ vsf_dma_channel_request

#define vsf_dma_channel_request (   __DMA,
  ... 
)    VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_request) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)

◆ vsf_dma_channel_release

#define vsf_dma_channel_release (   __DMA,
  ... 
)    VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_release) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)

◆ vsf_dma_channel_config

#define vsf_dma_channel_config (   __DMA,
  ... 
)    VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_config) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)

◆ vsf_dma_channel_start

#define vsf_dma_channel_start (   __DMA,
  ... 
)    VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_start) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)

◆ vsf_dma_channel_cancel

#define vsf_dma_channel_cancel (   __DMA,
  ... 
)    VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_cancel) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)

◆ vsf_dma_channel_get_transferred_count

#define vsf_dma_channel_get_transferred_count (   __DMA,
  ... 
)    VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_get_transferred_count) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)

◆ vsf_dma_channel_status

#define vsf_dma_channel_status (   __DMA,
  ... 
)    VSF_MCONNECT(VSF_DMA_CFG_PREFIX, _dma_channel_status) ((__vsf_dma_t *)(__DMA), ##__VA_ARGS__)

Typedef Documentation

◆ vsf_dma_channel_mode_t

◆ vsf_dma_irq_mask_t

◆ vsf_dma_t

typedef struct vsf_dma_t vsf_dma_t

◆ vsf_dma_isr_handler_t

typedef void vsf_dma_isr_handler_t(void *target_ptr, vsf_dma_t *dma_ptr, int8_t channel, vsf_dma_irq_mask_t irq_mask)

◆ vsf_dma_isr_t

typedef struct vsf_dma_isr_t vsf_dma_isr_t

◆ vsf_dma_channel_cfg_t

dma configuration

◆ vsf_dma_channel_status_t

◆ vsf_dma_capability_t

◆ vsf_dma_op_t

typedef struct vsf_dma_op_t vsf_dma_op_t

Enumeration Type Documentation

◆ vsf_dma_channel_mode_t

Enumerator
VSF_DMA_MEMORY_TO_MEMORY 
VSF_DMA_MEMORY_TO_PERIPHERAL 
VSF_DMA_PERIPHERA_TO_MEMORY 
VSF_DMA_PERIPHERA_TO_PERIPHERAL 
VSF_DMA_SRC_ADDR_INCREMENT 
VSF_DMA_SRC_ADDR_DECREMENT 
VSF_DMA_SRC_ADDR_NO_CHANGE 
VSF_DMA_DST_ADDR_INCREMENT 
VSF_DMA_DST_ADDR_DECREMENT 
VSF_DMA_DST_ADDR_NO_CHANGE 
VSF_DMA_SRC_WIDTH_BYTE_1 
VSF_DMA_SRC_WIDTH_BYTES_2 
VSF_DMA_SRC_WIDTH_BYTES_4 
VSF_DMA_SRC_WIDTH_BYTES_8 
VSF_DMA_SRC_WIDTH_BYTES_16 
VSF_DMA_SRC_WIDTH_BYTES_32 
VSF_DMA_DST_WIDTH_BYTE_1 
VSF_DMA_DST_WIDTH_BYTES_2 
VSF_DMA_DST_WIDTH_BYTES_4 
VSF_DMA_DST_WIDTH_BYTES_8 
VSF_DMA_DST_WIDTH_BYTES_16 
VSF_DMA_DST_WIDTH_BYTES_32 
VSF_DMA_SRC_BURST_LENGTH_1 
VSF_DMA_SRC_BURST_LENGTH_2 
VSF_DMA_SRC_BURST_LENGTH_4 
VSF_DMA_SRC_BURST_LENGTH_8 
VSF_DMA_SRC_BURST_LENGTH_16 
VSF_DMA_SRC_BURST_LENGTH_32 
VSF_DMA_SRC_BURST_LENGTH_64 
VSF_DMA_SRC_BURST_LENGTH_128 
VSF_DMA_DST_BURST_LENGTH_1 
VSF_DMA_DST_BURST_LENGTH_2 
VSF_DMA_DST_BURST_LENGTH_4 
VSF_DMA_DST_BURST_LENGTH_8 
VSF_DMA_DST_BURST_LENGTH_16 
VSF_DMA_DST_BURST_LENGTH_32 
VSF_DMA_DST_BURST_LENGTH_64 
VSF_DMA_DST_BURST_LENGTH_128 
VSF_DMA_PRIOPIRY_LOW 
VSF_DMA_PRIOPIRY_MIDIUM 
VSF_DMA_PRIOPIRY_HIGH 
VSF_DMA_PRIOPIRY_VERY_HIGH 

◆ anonymous enum

anonymous enum
Enumerator
VSF_DMA_DIRECTION_COUNT 
VSF_DMA_DIRECTION_MASK 
VSF_DMA_SRC_ADDR_COUNT 
VSF_DMA_SRC_ADDR_MASK 
VSF_DMA_DST_ADDR_COUNT 
VSF_DMA_DST_ADDR_MASK 
VSF_DMA_SRC_WIDTH_COUNT 
VSF_DMA_SRC_WIDTH_MASK 
VSF_DMA_DST_WIDTH_COUNT 
VSF_DMA_DST_WIDTH_MASK 
VSF_DMA_SRC_BURST_COUNT 
VSF_DMA_SRC_BURST_MASK 
VSF_DMA_DST_BURST_COUNT 
VSF_DMA_DST_BURST_MASK 
VSF_DMA_PRIOPIRY_COUNT 
VSF_DMA_PRIOPIRY_MASK 
VSF_DMA_MODE_MASK_COUNT 
VSF_DMA_MODE_ALL_BITS_MASK 

◆ vsf_dma_irq_mask_t

Enumerator
VSF_DMA_IRQ_MASK_CPL 
VSF_DMA_IRQ_MASK_HALF_CPL 
VSF_DMA_IRQ_MASK_ERROR 

◆ anonymous enum

anonymous enum
Enumerator
VSF_DMA_IRQ_COUNT 
VSF_DMA_IRQ_ALL_BITS_MASK 

Function Documentation

◆ vsf_dma_init()

vsf_err_t vsf_dma_init ( vsf_dma_t dma_ptr)
extern

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)
extern

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)
extern

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)
extern

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 
)
extern

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 
)
extern

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 
)
extern

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 
)
extern

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 
)
extern

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 
)
extern

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