6.5.1. 函数列表

6.5.1.1. Function gx_dma_calc_list_count


int gx_dma_calc_list_count(uint16_t ts_block, uint32_t len)

计算需要的链表个数

参数
  • ts_block -- dma 传输块大小

  • len -- 需要dma传输数据的长度

返回

int dma链表个数

6.5.1.2. Function gx_dma_cfg_hs


void gx_dma_cfg_hs(GX_DMA_AHB_CTRL_HS_PERI hs_peri, uint8_t mode)

配置外设的握手信号

参数
  • hs_peri -- 将要配置的外设

  • mode -- 配置的模式,0:tx, 1:rx

6.5.1.3. Function gx_dma_channel_abort


int gx_dma_channel_abort(int channel)

异常停止一次dma传输

参数

channel -- dma通道

Returns 0

成功

Returns -1

失败

返回

int dma是否停止成功

6.5.1.4. Function gx_dma_channel_start


int gx_dma_channel_start(int channel)

开始一次dma传输

参数

channel -- dma通道

Returns 0

成功

Returns -1

失败

返回

int dma是否开始成功

6.5.1.5. Function gx_dma_get_dar


uint32_t gx_dma_get_dar(int channel)

获取当前目的地址地址

参数

channel -- dma通道

返回

int dma链表当前节点地址

6.5.1.6. Function gx_dma_get_sar


uint32_t gx_dma_get_sar(int channel)

获取当前源地址地址

参数

channel -- dma通道

返回

int dma链表当前节点地址

6.5.1.7. Function gx_dma_init


void gx_dma_init(void)

dma初始化

6.5.1.8. Function gx_dma_reconfig_listx_ctlh


void gx_dma_reconfig_listx_ctlh(int channel, uint32_t list_sum, uint32_t list_num, uint32_t len)

重新配置链表当前节点中的ctl寄存器高32bit

参数
  • channel -- dma通道

  • list_sum -- dma链表节点总数

  • list_num -- dma链表当前节点,e.g.: 0,1...list_sum-1

  • len -- 需要dma传输数据的长度

6.5.1.9. Function gx_dma_reconfig_previous_list_ctlh


void gx_dma_reconfig_previous_list_ctlh(int channel, uint32_t list_sum, uint32_t len)

重新配置链表当前节点前一个节点中的ctl寄存器高32bit,通过dma控制器获取当前节点

参数
  • channel -- dma通道

  • list_sum -- dma链表节点总数

  • len -- 需要dma传输数据的长度

6.5.1.10. Function gx_dma_register_block_callback


void gx_dma_register_block_callback(int channel, void *func, void *param)

注册dma 通道回调函数,每次完成block传输时,会调用回调函数

参数
  • channel -- dma空闲通道

  • func -- dma 回调函数,类型为 void func(void *param)

  • param -- dma 回调函数参数

6.5.1.11. Function gx_dma_register_complete_callback


void gx_dma_register_complete_callback(int channel, void *func, void *param)

注册dma 通道回调函数,使用gx_dma_xfer_int()接口完成传输时,会调用回调函数

参数
  • channel -- dma空闲通道

  • func -- dma 回调函数,类型为 void func(void *param)

  • param -- dma 回调函数参数

6.5.1.12. Function gx_dma_release_channel


void gx_dma_release_channel(int channel)

关闭dma

参数

channel -- dma通道

6.5.1.13. Function gx_dma_select_channel


int gx_dma_select_channel(void)

获取dma空闲通道

Returns -1

无空闲dma通道

Returns 非-1

空闲dma通道值

返回

int 空闲的dma通道

6.5.1.14. Function gx_dma_wait_complete


int gx_dma_wait_complete(int channel)

等待一次dma传输完成

参数

channel -- dma通道

Returns 0

成功

Returns -1

失败

返回

int dma传输是否成功

6.5.1.15. Function gx_dma_wait_complete_norelease


int gx_dma_wait_complete_norelease(int channel)

等待一次dma传输完成,不关闭dma

参数

channel -- dma通道

Returns 0

成功

Returns -1

失败

返回

int dma传输是否成功

6.5.1.16. Function gx_dma_wait_complete_timeout


int gx_dma_wait_complete_timeout(int channel, unsigned int timeout_ms)

超时等待一次dma传输完成

参数
  • channel -- dma通道

  • timeout_ms -- 超时毫秒

Returns 0

成功

Returns -1

失败

返回

int dma传输是否成功

6.5.1.17. Function gx_dma_xfer


int gx_dma_xfer(void *dst, void *src, int len, int channel, GX_DMA_AHB_CH_CONFIG *config)

开始一次dma传输,使用poll模式, 不阻塞等待完成

参数
  • dst -- 目的地址

  • src -- 源地址

  • len -- 传输dma位宽单元数量,例如:width=32bit, len=5, 4*5=20 bytes 将被传输

  • channel -- dma空闲通道

  • config -- dma通道配置, 详细说明请参考 GX_DMA_AHB_CH_CONFIG

Returns 0

成功

Returns -1

失败

返回

int dma启动传输是否成功

6.5.1.18. Function gx_dma_xfer_int


int gx_dma_xfer_int(void *dst, void *src, int len, int channel, GX_DMA_AHB_CH_CONFIG *config)

开始一次dma传输,使用中断模式,不阻塞等待完成,完成以后调用通道完成回调回调函数

参数
  • dst -- 目的地址

  • src -- 源地址

  • len -- 传输dma位宽单元数量,例如:width=32bit, len=5, 4*5=20 bytes 将被传输

  • channel -- dma空闲通道

  • config -- dma通道配置, 详细说明请参考 GX_DMA_AHB_CH_CONFIG

Returns 0

成功

Returns -1

失败

返回

int dma传输是否成功

6.5.1.19. Function gx_dma_xfer_int_cfg


int gx_dma_xfer_int_cfg(void *dst, void *src, int len, int channel, GX_DMA_AHB_CH_CONFIG *config)

配置使用中断模式,不阻塞等待完成,完成以后调用通道完成回调回调函数

参数
  • dst -- 目的地址

  • src -- 源地址

  • len -- 传输dma位宽单元数量,例如:width=32bit, len=5, 4*5=20 bytes 将被传输

  • channel -- dma空闲通道

  • config -- dma通道配置, 详细说明请参考 GX_DMA_AHB_CH_CONFIG

Returns 0

成功

Returns -1

失败

返回

int dma配置是否成功

6.5.1.20. Function gx_dma_xfer_poll


int gx_dma_xfer_poll(void *dst, void *src, int len, int channel, GX_DMA_AHB_CH_CONFIG *config)

开始一次dma传输,使用poll模式,并阻塞等待完成

参数
  • dst -- 目的地址

  • src -- 源地址

  • len -- 传输dma位宽单元数量,例如:width=32bit, len=5, 4*5=20 bytes 将被传输

  • channel -- dma空闲通道

  • config -- dma通道配置,详细说明请参考 GX_DMA_AHB_CH_CONFIG

Returns 0

成功

Returns -1

失败

返回

int dma传输是否成功