📄 new_edmainit.c
字号:
/*
* ========new_EdmaInit.c ========
initialize the EDMA_read_MCASP , EDMA_write_MCASP and open the EDMA_channle
note:
the produced function:AIC23_setParams(AIC23_Params paramsp)
*/
#include <csl_edma.h>
#include <csl_irq.h>
#include <csl_mcasp.h>
#include <tistdtypes.h>
EDMA_Handle hEdmaMcaspWrite; //McASP Write
EDMA_Handle hEdmaMcaspRead; //McASP Read
extern MCASP_Handle hMcasp;
//extern int y[1000]; // main.c
extern unsigned short xmtDataBuf[4];
extern unsigned short rcvDataBuf[4];
void hEdmaMcaspReadInit()
{
//disable Global Interrupt
// IRQ_globalDisable();//CSR
hEdmaMcaspRead = EDMA_open(EDMA_CHA_REVT0, EDMA_OPEN_RESET);//选择 EDMA 通道13
// Configure EDMA Channel Read
EDMA_configArgs
(
hEdmaMcaspRead,
EDMA_OPT_RMK
(
EDMA_OPT_PRI_HIGH,
EDMA_OPT_ESIZE_32BIT,
EDMA_OPT_2DS_NO,
EDMA_OPT_SUM_NONE,
EDMA_OPT_2DD_NO,
EDMA_OPT_DUM_INC,
EDMA_OPT_TCINT_YES, // YES, NO
EDMA_OPT_TCC_OF(EDMA_CHA_REVT0),
EDMA_OPT_TCCM_OF(0),
EDMA_OPT_ATCINT_NO,
EDMA_OPT_ATCC_DEFAULT,
EDMA_OPT_PDTS_DISABLE,
EDMA_OPT_PDTD_DISABLE,
EDMA_OPT_LINK_YES,
EDMA_OPT_FS_YES
),
EDMA_SRC_SRC_OF(MCASP_getRbufAddr(hMcasp)),//MCASP_getRbufAddr(MCASP_Handle hMcasp);
EDMA_CNT_RMK(EDMA_CNT_FRMCNT_DEFAULT, EDMA_CNT_ELECNT_DEFAULT),// 0,1,DEFAULT
EDMA_DST_DST_OF((unsigned int)rcvDataBuf),//should change
EDMA_IDX_RMK(EDMA_IDX_FRMIDX_OF(0), EDMA_IDX_ELEIDX_OF(0)),
EDMA_RLD_RMK(EDMA_RLD_ELERLD_OF(0), EDMA_RLD_LINK_OF(0))
);
// Enable Global Interrupt
//IRQ_globalEnable(); // CSR
return;
}
void hEdmaMcaspWriteInit()
{
// Disable Global Interrupt
//IRQ_globalDisable();
hEdmaMcaspWrite = EDMA_open(EDMA_CHA_XEVT0, EDMA_OPEN_RESET);//channel 12
EDMA_configArgs
(
hEdmaMcaspWrite,
EDMA_OPT_RMK
(
EDMA_OPT_PRI_HIGH,
EDMA_OPT_ESIZE_32BIT,
EDMA_OPT_2DS_NO,
EDMA_OPT_SUM_INC,
EDMA_OPT_2DD_NO,
EDMA_OPT_DUM_NONE,
EDMA_OPT_TCINT_NO,
EDMA_OPT_TCC_OF(EDMA_CHA_XEVT0),//it is defined in the params of MCASP,maybe not defined here again
EDMA_OPT_TCCM_OF(0),
EDMA_OPT_ATCINT_NO,
EDMA_OPT_ATCC_DEFAULT,
EDMA_OPT_PDTS_DISABLE,
EDMA_OPT_PDTD_DISABLE,
EDMA_OPT_LINK_YES,
EDMA_OPT_FS_YES
),
EDMA_SRC_SRC_OF((unsigned int)xmtDataBuf),
// EDMA_CNT_RMK(EDMA_CNT_FRMCNT_OF(DEFAULT), EDMA_CNT_ELECNT_OF(DEFAULT)),
EDMA_CNT_RMK(EDMA_CNT_FRMCNT_DEFAULT, EDMA_CNT_ELECNT_DEFAULT),// 0,1,DEFAULT
EDMA_DST_DST_OF(MCASP_getXbufAddr(hMcasp)),//IDECL Uint32 MCASP_getXbufAddr(MCASP_Handle hMcasp);
EDMA_IDX_RMK(EDMA_IDX_FRMIDX_OF(0), EDMA_IDX_ELEIDX_OF(0)),
EDMA_RLD_RMK(EDMA_RLD_ELERLD_OF(0), EDMA_RLD_LINK_OF(0))
);
// Enable Global Interrupt
//IRQ_globalEnable(); // CSR
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -