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.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传输是否成功