CI130X SDK API手册  2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
结构体 | 宏定义 | 类型定义 | 枚举 | 函数
ci130x_dma.h 文件参考

dma驱动 更多...

#include "ci130x_system.h"
#include "ci130x_dtrflash.h"

浏览源代码.

结构体

struct  LLI_Control
 DMA的链表传输配置结构体 更多...
 
struct  dma_config_t
 FLASH的DMA传输配置结构体 更多...
 

宏定义

#define GDMA_SDRAM_ADDR   (0x70000000UL)
 
#define GDMA_SDRAM_SIZE   (16*1024*1024)
 
#define GDMA_CSRAM_ADDR   (0x1FFF8000UL)
 
#define GDMA_CSRAM_SIZE   (32*1024)
 
#define GDMA_SRAM0_ADDR   (0x1FFE8000UL)
 
#define GDMA_SRAM0_SIZE   (64*1024)
 
#define GDMA_SRAM1_ADDR   (0x20000000UL)
 
#define GDMA_SRAM1_SIZE   (64*1024)
 
#define GDMA_PCMRAM_ADDR   (0x20020000UL)
 
#define GDMA_PCMRAM_SIZE   (16*1024)
 
#define GDMA_FFTRAM_ADDR   (0x200FF800UL)
 
#define GDMA_FFTRAM_SIZE   (2*1024)
 

类型定义

typedef void(* dma_callback_func_ptr_t) (void)
 dma完成回调函数指针 更多...
 

枚举

enum  DMACChannelx {
  DMACChannel0 = 0,
  DMACChannel1 = 1,
  DMACChannelALL = 9
}
 DMA 通道选择 更多...
 
enum  DMAC_AHBMasterx {
  DMAC_AHBMaster1 = 0,
  DMAC_AHBMaster2 = 1
}
 DMA master选择 更多...
 
enum  ENDIANMODE {
  LittleENDIANMODE = 0,
  BigENDIANMODE = 1
}
 DMA 数据大小端选择 更多...
 
enum  INCREMENTx {
  INCREMENT = 1,
  NOINCREMENT = 0
}
 DMA 地址递增选择 更多...
 
enum  TRANSFERWIDTHx {
  TRANSFERWIDTH_8b = 0,
  TRANSFERWIDTH_16b = 1,
  TRANSFERWIDTH_32b = 2
}
 DMA 数据宽度选择 更多...
 
enum  BURSTSIZEx {
  BURSTSIZE1 = 0,
  BURSTSIZE4 = 1,
  BURSTSIZE8 = 2,
  BURSTSIZE16 = 3,
  BURSTSIZE32 = 4,
  BURSTSIZE64 = 5,
  BURSTSIZE128 = 6,
  BURSTSIZE256 = 7
}
 DMA 突发传输大小选择 更多...
 
enum  DMAC_ACCESS_MODE {
  DMAC_ACCESS_USERMODE = 0,
  DMAC_ACCESS_PRIVILEGEDMODE = 1
}
 DMA的访问模式选择 更多...
 
enum  BUFFERABLEx {
  BUFFERABLE = 1,
  NONBUFFERABLE = 0
}
 DMA的缓冲配置选择 更多...
 
enum  CACHEABLEx {
  CACHEABLE = 1,
  NONCACHEABLE = 0
}
 DMA的cache缓冲配置选择 更多...
 
enum  CHANNELINTMASKx {
  CHANNELINTMASK_ITC = 15,
  CHANNELINTMASK_IE = 14
}
 DMA的中断选择 更多...
 
enum  DMAC_FLOWCTRL {
  M2M_DMA = 0,
  M2P_DMA = 1,
  P2M_DMA = 2,
  M2P_P = 5,
  P2M_P = 6
}
 DMA的传输方向选择 更多...
 
enum  DMAC_Peripherals {
  DMAC_Peripherals_SPI0 = 0,
  DMAC_Peripherals_UART0_RX = 4,
  DMAC_Peripherals_UART0_TX = 5,
  DMAC_Peripherals_UART1_RX = 6,
  DMAC_Peripherals_UART1_TX = 7,
  DMAC_Peripherals_UART2_RX = 8,
  DMAC_Peripherals_UART2_TX = 9
}
 DMA的外设选择 更多...
 

函数

void clear_dma_translate_flag (DMACChannelx dmachannel)
 清除dma中断标志 更多...
 
int wait_dma_translate_flag (DMACChannelx dmachannel, uint32_t timeout)
 等待dma中断标志 更多...
 
void dma_without_os_int (void)
 使用全局变量设置中断触发状态,并清除中断 更多...
 
void dma_irq_handler (void)
 DMA中断处理函数 更多...
 
int DMAC_IntStatus (DMACChannelx dmachannel)
 DMA通道屏蔽后的中断状态(只要有通道传输完成中断或者通道传输错误中断的一个) 更多...
 
int DMAC_IntTCStatus (DMACChannelx dmachannel)
 DMA通道传输完成中断状态 更多...
 
void DMAC_IntTCClear (DMACChannelx dmachannel)
 清除DMA通道传输完成中断状态 更多...
 
int DMAC_IntErrorStatus (DMACChannelx dmachannel)
 DMA通道传输错误中断状态 更多...
 
void DMAC_IntErrorClear (DMACChannelx dmachannel)
 清除DMA通道传输错误中断状态 更多...
 
int DMAC_RawIntTCStatus (DMACChannelx dmachannel)
 DMA通道原始的(屏蔽前)中断状态(只要有通道传输完成中断或者通道传输错误中断的一个) 更多...
 
int DMAC_RawErrorIntStatus (DMACChannelx dmachannel)
 DMA通道传输错误原始(屏蔽前)中断状态 更多...
 
int DMAC_ChannelEnableStatus (DMACChannelx dmachannel)
 DMA通道使能状态 更多...
 
void DMAC_SoftwareBurstReq (DMACChannelx dmachannel)
 DMA通道软件突发传输请求 更多...
 
void DMAC_SoftwareSingleReq (DMACChannelx dmachannel)
 DMA通道软件单次传输请求 更多...
 
void DMAC_SoftwareLastBurstReq (DMACChannelx dmachannel)
 DMA通道软件最后一次突发传输请求 更多...
 
void DMAC_SoftwareLastSingleReq (DMACChannelx dmachannel)
 DMA通道软件最后一次单次传输请求 更多...
 
void DMAC_Config (DMAC_AHBMasterx dmamaster, ENDIANMODE endianmode)
 DMA控制器AHB MASTER 字节端序的配置 更多...
 
void DMAC_EN (FunctionalState cmd)
 DMA控制器使能 更多...
 
void DMAC_ChannelSoureAddr (DMACChannelx dmachannel, unsigned int addr)
 DMA通道源地址配置 更多...
 
void DMAC_ChannelDestAddr (DMACChannelx dmachannel, unsigned int addr)
 DMA通道目标地址配置 更多...
 
void DMAC_ChannelLLI (DMACChannelx dmachannel, unsigned int dmalli, DMAC_AHBMasterx dmamaster)
 DMA通道 LLI 配置 更多...
 
void DMAC_ChannelSourceConfig (DMACChannelx dmachannel, INCREMENTx inc, DMAC_AHBMasterx dmamaster, TRANSFERWIDTHx transferwidth, BURSTSIZEx brustsize)
 DMA通道源的相关配置 更多...
 
void DMAC_ChannelDestConfig (DMACChannelx dmachannel, INCREMENTx inc, DMAC_AHBMasterx dmamaster, TRANSFERWIDTHx transferwidth, BURSTSIZEx brustsize)
 DMA通道目标的相关配置 更多...
 
void DMAC_ChannelTCInt (DMACChannelx dmachannel, FunctionalState cmd)
 DMA通道传输完成中断使能配置 更多...
 
void DMAC_ChannelProtectionConfig (DMACChannelx dmachannel, DMAC_ACCESS_MODE access_mode, BUFFERABLEx bufferable, CACHEABLEx cacheable)
 DMA通道保护位的设置 更多...
 
void DMAC_ChannelTransferSize (DMACChannelx dmachannel, unsigned short size)
 DMA通道传输大小配置 更多...
 
unsigned int DMAC_ChannelCurrentTransferSize (DMACChannelx dmachannel)
 当前DMA通道,还剩余多少数据尚未传输,以字节为单位 更多...
 
void DMAC_ChannelDisable (DMACChannelx dmachannel)
 DMA通道传输禁止 更多...
 
void DMAC_ChannelEnable (DMACChannelx dmachannel)
 DMA通道传输使能 更多...
 
void DMAC_ChannelInterruptMask (DMACChannelx dmachannel, CHANNELINTMASKx channelintmask, FunctionalState cmd)
 DMA通道中断屏蔽配置 更多...
 
void DMAC_ChannelPowerDown (DMACChannelx dmachannel, FunctionalState cmd)
 DMA通道传输Power控制 更多...
 
void DMAC_ChannelHalt (DMACChannelx dmachannel, FunctionalState cmd)
 DMA通道传输(中停)Halt 更多...
 
void DMAC_ChannelConfig (DMACChannelx dmachannel, char destperiph, char srcperiph, DMAC_FLOWCTRL flowctrl)
 DMA通道其他相关配置 更多...
 
void DMAC_ChannelLock (DMACChannelx dmachannel, FunctionalState cmd)
 DMA通道传输锁 更多...
 
void DMAC_M2MConfig (DMACChannelx dmachannel, unsigned int srcaddr, unsigned int destaddr, unsigned int bytesize, DMAC_AHBMasterx master)
 DMA通道传输 内存到内存 更多...
 
void DMAC_M2P_P2M_advance_config (DMACChannelx dmachannel, DMAC_Peripherals periph, DMAC_FLOWCTRL flowctrl, unsigned int srcaddr, unsigned int destaddr, unsigned int bytesize, TRANSFERWIDTHx datawidth, BURSTSIZEx burstsize, DMAC_AHBMasterx master)
 DMA通道传输 内存到外设,外设到内存 更多...
 
void DMAC_M2P_P2MConfig (DMACChannelx dmachannel, DMAC_Peripherals periph, DMAC_FLOWCTRL flowctrl, unsigned int srcaddr, unsigned int destaddr, unsigned int bytesize)
 DMA通道传输 内存到外设,外设到内存 更多...
 
void spic_dma_config (DMACChannelx channel, dma_config_t *config)
 配置FLASH的DMA传输 更多...
 
unsigned int DMAC_LLIContrlreturn (LLI_Control *lli_ctrl)
 DMA 链表配置结构体初始化 更多...
 
void DMAC_ChannelLLIControl (DMACChannelx dmachannel, unsigned int val)
 DMA配置控制寄存器 更多...
 

详细描述

dma驱动

版本
1.0
日期
2018-05-29

宏定义说明

◆ GDMA_CSRAM_ADDR

#define GDMA_CSRAM_ADDR   (0x1FFF8000UL)

◆ GDMA_CSRAM_SIZE

#define GDMA_CSRAM_SIZE   (32*1024)

◆ GDMA_FFTRAM_ADDR

#define GDMA_FFTRAM_ADDR   (0x200FF800UL)

◆ GDMA_FFTRAM_SIZE

#define GDMA_FFTRAM_SIZE   (2*1024)

◆ GDMA_PCMRAM_ADDR

#define GDMA_PCMRAM_ADDR   (0x20020000UL)

◆ GDMA_PCMRAM_SIZE

#define GDMA_PCMRAM_SIZE   (16*1024)

◆ GDMA_SDRAM_ADDR

#define GDMA_SDRAM_ADDR   (0x70000000UL)

◆ GDMA_SDRAM_SIZE

#define GDMA_SDRAM_SIZE   (16*1024*1024)

◆ GDMA_SRAM0_ADDR

#define GDMA_SRAM0_ADDR   (0x1FFE8000UL)

◆ GDMA_SRAM0_SIZE

#define GDMA_SRAM0_SIZE   (64*1024)

◆ GDMA_SRAM1_ADDR

#define GDMA_SRAM1_ADDR   (0x20000000UL)

◆ GDMA_SRAM1_SIZE

#define GDMA_SRAM1_SIZE   (64*1024)