⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 new_edmainit.c

📁 使用DSP的DM642中EDMA初始化
💻 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 + -