WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
dma.c 文件参考
#include "common_def.h"
#include "hal_dma.h"
#include "dma.h"
dma.c 的引用(Include)关系图:

宏定义

#define DMA_ADDR_ALIGN_MASK_2   1
 
#define DMA_ADDR_ALIGN_MASK_4   3
 
#define DMA_MEMORY_BURST_TRANS_LENGTH_BYTE   (HAL_DMA_BURST_TRANSACTION_LENGTH_16)
 
#define DMA_MEMORY_BURST_TRANS_LENGTH_HARF   (HAL_DMA_BURST_TRANSACTION_LENGTH_8)
 
#define DMA_MEMORY_BURST_TRANS_LENGTH_WORD   (HAL_DMA_BURST_TRANSACTION_LENGTH_4)
 
#define dma_check_addr_align(addr, align)   (((addr) & (align)) == 0x0)
 

函数

errcode_t uapi_dma_init (void)
 初始化DMA模块。
 
void uapi_dma_deinit (void)
 去初始化DMA模块。
 
errcode_t uapi_dma_open (void)
 开启DMA模块。
 
void uapi_dma_close (void)
 关闭DMA模块。
 
errcode_t uapi_dma_start_transfer (uint8_t channel)
 启动指定通道的DMA传输。
 
errcode_t uapi_dma_end_transfer (uint8_t channel)
 停止指定通道的DMA传输。
 
uint32_t uapi_dma_get_block_ts (uint8_t channel)
 获取DMA传输的数据量。
 
errcode_t uapi_dma_transfer_memory_single (const dma_ch_user_memory_config_t *user_cfg, dma_transfer_cb_t callback, uintptr_t arg)
 通过DMA通道传输类型为内存到内存的数据。
 
errcode_t uapi_dma_configure_peripheral_transfer_single (const dma_ch_user_peripheral_config_t *user_cfg, uint8_t *channel, dma_transfer_cb_t callback, uintptr_t arg)
 通过DMA通道传输类型为内存到外设或外设到内存的数据。
 
uint8_t uapi_dma_get_lli_channel (uint8_t burst_length, uint8_t handshaking)
 获取DMA链表传输通道。
 
errcode_t uapi_dma_transfer_memory_lli (uint8_t channel, const dma_ch_user_memory_config_t *user_cfg, dma_transfer_cb_t callback)
 通过DMA通道以链表模式传输类型为内存到内存的数据。
 
errcode_t uapi_dma_configure_peripheral_transfer_lli (uint8_t channel, const dma_ch_user_peripheral_config_t *user_cfg, dma_transfer_cb_t callback)
 通过DMA通道以链表模式传输类型为内存到外设或外设到内存的数据。
 
errcode_t uapi_dma_enable_lli (uint8_t channel, dma_transfer_cb_t callback, uintptr_t arg)
 启用DMA链表传输。
 

宏定义说明

◆ DMA_ADDR_ALIGN_MASK_2

#define DMA_ADDR_ALIGN_MASK_2   1

Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2022. All rights reserved.

Description: Provides dma driver source
History:
2022-10-16, Create file.

◆ DMA_ADDR_ALIGN_MASK_4

#define DMA_ADDR_ALIGN_MASK_4   3

◆ dma_check_addr_align

#define dma_check_addr_align (   addr,
  align 
)    (((addr) & (align)) == 0x0)

◆ DMA_MEMORY_BURST_TRANS_LENGTH_BYTE

#define DMA_MEMORY_BURST_TRANS_LENGTH_BYTE   (HAL_DMA_BURST_TRANSACTION_LENGTH_16)

◆ DMA_MEMORY_BURST_TRANS_LENGTH_HARF

#define DMA_MEMORY_BURST_TRANS_LENGTH_HARF   (HAL_DMA_BURST_TRANSACTION_LENGTH_8)

◆ DMA_MEMORY_BURST_TRANS_LENGTH_WORD

#define DMA_MEMORY_BURST_TRANS_LENGTH_WORD   (HAL_DMA_BURST_TRANSACTION_LENGTH_4)