📄 dma.h
字号:
/********************************************************************/
/* */
/* GDMA Header for KS32C50100 */
/*------------------------------------------------------------------*/
/* Copyright (C) 1997 Samsung Electronics. */
/*------------------------------------------------------------------*/
/* */
/* Description : 1997-12-26 first edited */
/********************************************************************/
#ifndef _GDMA_H_
#define _GDMA_H_
/* GDMA Control Register */
#define GDMA_RUN 0x0001
#define GDMA_BUSY 0x0002
#define GDMA_MODE 0x000C
#define GDMA_MEM2MEM 0x0000
#define GDMA_EXTDREQ 0x0004
#define GDMA_U0MODE 0x0008
#define GDMA_U1MODE 0x000C
#define GDMA_DST_DEC 0x0010
#define GDMA_SRC_DEC 0x0020
#define GDMA_DST_FIX 0x0040
#define GDMA_SRC_FIX 0x0080
#define GDMA_INT_ENABLE 0x0100
#define GDMA_RESET 0x0200 //Changed to Four-data burst enable bit
#define GDMA_MEM2UART 0x0400 //Other case UART to MEM
#define GDMA_BLOCK 0x0800 //Other case Single mode
#define GDMA_TX_WIDTH 0x3000
#define GDMA_TX_BYTE 0x0000
#define GDMA_TX_HALFWORD 0x1000
#define GDMA_TX_WORD 0x2000
#define GDMA_NO_USE 0x3000
#define GDMA_CONTINUOUS 0x4000
#define GDMA_DEMAND 0x8000
#define GDMA_WIDTH_BTYE 0
#define GDMA_WIDTH_HWORD (1<<12)
#define GDMA_WIDTH_WORD (2<<12)
#define GDMA1 '1'
#define GDMA0 '0'
/* Transfer Width */
#define TxBYTE 0
#define TxHWORD 1
#define TxWORD 2
/* GDMA Registers */
typedef struct {
U32 CON; //control register
U32 SRC; //source address register
U32 DST; //destination address register
U32 CNT; //counter register
int DIALOG; //flag to control dialog or direct function test
} GDMA_REG;
extern void GdmaStartUserPgm(void);
extern void GdmaTest(void);
/*
* GDMA0/GDMA1 Test Top Module
*/
extern void GDMAStartUpDialog(void);
/*
* GDMA Register setup dialog
*/
extern unsigned GetGdmaChannel(void);
/*
* Get GDMA channel
*/
extern void SetUpmem2mem(void);
/*
* Setup GDMA register to memory to memory transfer
*/
extern void GDMARegRead(unsigned /*channel*/);
/*
* Read GDMA registers
*/
extern void GDMARegWrite(unsigned /*channel*/);
/*
* Write GDMA registers
*/
extern void GDMARegPrint(unsigned /*channel*/);
/*
* GDMA register display to CONSOLE
*/
extern void GdmaTxWidth(int /*selector*/);
/*
*Transfer width will be changed to 8,16,32bit
*/
extern void GdmaMem2MemTest(void);
int GdmaMem2MemTestSub(unsigned /*GDMA Channel*/);
/*
* GDMA Memory to Memory test Module
*/
extern void GdmaMem2Mem(unsigned /*channel*/);
/*
* GDMA memory to memory test submodule
*/
extern void GdmaUart0Mem(void);
extern void Uart2MemoryTest(unsigned /*channel*/);
extern void Uart2MemRun(unsigned /*uart ch*/, unsigned /*gdma ch*/);
extern void GdmaUart1Mem(void);
extern void Memory2UartTest(unsigned /*channel*/);
extern void Mem2UartRun(unsigned /*uart ch*/,unsigned /*gdma ch*/);
extern void SetupUart4Gdma(unsigned /*uart ch*/,unsigned /*gdma ch*/);
extern void SetGdmaRxReqMode(unsigned /*uart ch*/,unsigned /*gdma ch*/);
extern void SetGdmaTxReqMode(unsigned /*uart ch*/,unsigned /*gdma ch*/);
extern void GdmaMemInit(void * /*src*/,int /*tsize*/);
extern void DataDownLoad(void);
/*
* UART to Memory data transfer through GDMA continually.
*/
extern unsigned GdmaDownLoad(void);
/*
* GDMA UART versa MEMORY test module
*/
extern void ExtGdmaReqTest(void);
extern void ExtDreqRun(unsigned /*gdmachannel*/);
/*
* GDMA external request test
*/
extern void GDMAConfigView(void);
/*
* GDMA Configuration viewer
*/
extern void GdmaReset(unsigned /*channel*/);
/*
* Initialize GDMA control register
*/
extern void GdmaRunEnable(unsigned /*channel*/);
/*
* GDMA Run enable /disable control
*/
extern void GdmaIntEnable(unsigned /*gdma_channel*/);
extern void GdmaIntDisable(unsigned /*gdma_channel*/);
/*
* GDMA Run enable /disable control
*/
extern void GDMA0isr(void);
extern void GDMA1isr(void);
/*
* GDMA0, GDMA1 Interrupt Service Routines
*/
extern void GdmaRegTest(void);
/*
* GDMA Register read,write test
*/
extern void DisplayGdma(unsigned /*channel*/);
extern void dcopy(U32 dmadst, U32 dmasrc,int Size, int Width) ;
extern int DmaAutoTest(U32 src,U32 dst,int tsize,int lsize) ;
#endif /* _GDMA_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -