This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6747 SPI0+EDMA传输数据时,不能获取数据

Other Parts Discussed in Thread: STARTERWARE-C6DSP

我在使用C6747芯片,需要使用SPI0+EDMA获取FPGA发送来的数据,出现的问题是edmaCcRegs->IPR已经置1,即时间触发中断已经成功了,但是却不能从目标地址获取数据,请各位大侠指点迷津!单独SPI0的接收已经验证没有问题,以下是我的配置程序:

void Rcv_EDMAData(u16 *src, u16 *dst, u32 acnt, u32 bcnt)
{
    edmaCcRegs->SECR = (u32)0x1 << CHA_SPI0_Rv;
    edmaCcRegs->SECR = (u32)0x1 << CHA_SPI0_Rv;
    edmaCcRegs->ECR |= (u32)0x1 << CHA_SPI0_Rv;
    edmaCcRegs->EMCR = (u32)0x1 << CHA_SPI0_Rv;
    edmaCcRegs->IECR |= (u32)0x1 << SPI0_Rv_TCC;

    edmaCcRegs->PARAMSET[CHA_SPI0_Rv].OPT = 0x0 | (1<<2) | (1 << 8) | (SPI0_Rv_TCC << 12) | (1 << 20);
    edmaCcRegs->PARAMSET[CHA_SPI0_Rv].SRC = (u32)src;
    edmaCcRegs->PARAMSET[CHA_SPI0_Rv].A_B_CNT = (bcnt << 16) | (acnt);
    edmaCcRegs->PARAMSET[CHA_SPI0_Rv].DST = (u32)dst;
    edmaCcRegs->PARAMSET[CHA_SPI0_Rv].SRC_DST_BIDX = 0x1;
    edmaCcRegs->PARAMSET[CHA_SPI0_Rv].LINK_BCNTRLD = 0xffff;
    edmaCcRegs->PARAMSET[CHA_SPI0_Rv].SRC_DST_CIDX = (bcnt << 16);
    edmaCcRegs->PARAMSET[CHA_SPI0_Rv].CCNT = 1;

    edmaCcRegs->DRA[1].DRAE |= (u32)0x1 << SPI0_Rv_TCC;
    edmaCcRegs->IESR |= (u32)0x1 << SPI0_Rv_TCC;
    edmaCcRegs->EESR = (u32)0x1 << CHA_SPI0_Rv;
    edmaCcRegs->IESR = (u32)0x1 << CHA_SPI0_Rv;
}
程序调用

Rcv_EDMAData((u16*)SPI_SPIBUF, revbuf, 2, 5);

u16 revbuf[10];