📄 iodma_api.h
字号:
/******************************************************************************
* Filename : Iodma_api.h *
* Start date : *
* By : *
* Contact : *
* Description : low level api headers.(for only high level api) *
* *
******************************************************************************
*/
#ifndef _IODMA_API_H_
#define _IODMA_API_H_
#ifdef __cplusplus
extern "C" {
#endif
/*********************************************
* Data types
*********************************************/
typedef enum {
DMA_Ch0=0,
DMA_Ch1,
DMA_Ch2,
DMA_Ch3
}DMA_Channel_t;
typedef enum {
DMA_SUB_CDDA,
DMA_SUB_CH2,
DMA_SUB_SPDIF=0x21,
DMA_SUB_IISIN=0x22,
/* DMA_SUB_DTS=0x27, */
DMA_SUB_CH51=0x27,
DMA_SUB_CH71=0x29
}DMA_AudioMode_t;
typedef enum {
DSIZE_8=0,
DSIZE_16=1,
DSIZE_32=2
}DMA_DataSize_t;
typedef enum {
BLEN_1=0,
BLEN_2,
BLEN_3,
BLEN_4,
BLEN_5
}DMA_BurstLength_t;
typedef enum {
DMA0_IISTX=0,
DMA0_MSTX=1,
DMA0_SPIRX=2,
DMA0_UART0RX=3,
DMA1_SPDIFTX=4,
DMA1_NANDTX=5,
DMA1_SPITX=6,
DMA1_UART0TX=7,
DMA2_IISRX=8,
DMA2_UART1TX=9,
DMA2_SPIRX=10,
DMA2_UART0RX=11,
DMA3_UART0TX=12,
DMA3_SPITX=13,
DMA3_MSTX=14,
DMA3_UART1RX=15,
DMA0_MSRX=0x11,
DMA1_NANDRX=0x15,
DMA3_MSRX=0x1E
}DMA_DevSel_t;
typedef enum {
DMA_SAMPLE_HOLD=0x2,
DMA_SAMPLE_SKIP,
DMA_COMMAND_START,
DMA_COMMAND_STOP,
DMACLR_HALF_FLAG,
DMACLR_PENDING_FLAG
}DMA_Command_t;
typedef enum {
DMA0_DONE=0,
DMA0_HDONE,
DMA0_BUSY,
DMA1_DONE=4,
DMA1_HDONE,
DMA1_BUSY,
DMA2_DONE=8,
DMA2_HDONE,
DMA2_BUSY,
DMA3_DONE=12,
DMA3_HDONE,
DMA3_BUSY
}DMA_Status_t;
typedef enum {
DMA_FEU_ADC_8,
DMA_FEU_ADC_16,
DMA_AUDIO_ADC_14
}DMA_ADC_SEL_t;
/*********************************************
* Define
*********************************************/
#define IODMA0_Command(x) rDMACOM0 = (x)
#define IODMA1_Command(x) rDMACOM1 = (x)
#define IODMA2_Command(x) rDMACOM2 = (x)
#define IODMA3_Command(x) rDMACOM3 = (x)
#define DMA_Disable_Int(n) rDMA_IRQ_MASK &= (~((unsigned long)1<<(n)))
#define DMA_Enable_Int(n) rDMA_IRQ_MASK |= ((unsigned long)1<<(n))
#define DMA_M2I 29
#define DMA_MULCH 28
#define DMA_SCHCNT 24
#define DMA_DSIZE 22
#define DMA_BLEN 19
#define DMA_RELOAD 18
#define DMA_INT_EN 16
/*********************************************
* Functions Define
*********************************************/
VOID IODMA_Reset(DMA_Channel_t channel);
VOID IODMA_Command(DMA_Channel_t channel, DMA_Command_t command);
VOID IODMAHandler_Initial(VOID);
VOID IODMA_ChangeAddr(DMA_Channel_t channel, UINT base_address);
#if 0//delete by cklee
VOID IODMA_Initialize(VOID);
VOID IODMA_SetFunction(DMA_DevSel_t device_sel, VOID (*handler)());
VOID IODMA_SetNormal(DMA_DevSel_t device_sel, UINT base_address, UINT trans_byte_size);
VOID IODMA_SetAudio(DMA_AudioMode_t ch_mode, UINT base_address, UINT sample_num,
DMA_DataSize_t data_size, DMA_BurstLength_t burst_length);
VOID IODMA_RegisterView(VOID);
#endif
#ifdef __cplusplus
}
#endif
#endif /* _IODMA_API_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -