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.

C6416进EDMA中断的问题



我使用的C6416芯片的开发板,搭建的FPGA+DSP的系统,现在需要DSP发送数据回FPGA。中间是使用一个EDMA通信。

void main()
{
	/*等待FPGA配置完后DSP复位*/
    DelayMSecond(0,1500);//1000
	
   InitDSP();
//初始化DSP
	
    while(1)
    {
      /* 发图测试 */ 0;
      if(transImgEnable == 0) { 
        transImgEnable = 1;  
        StartEdma(CHANNEL_OF_TRANS_TO_FIFO);
      else {
            ;
            }
}

StartEdma函数是给ESR寄存器写入事件,正常情况下应该是给ESR写入事件后会产生一个中断,然后开始EDMA传输。现在的问题是transImgEnable 这个参数是传输完成后赋值为0,然后程序可以继续进if的判断,继续发数据。但实际上StartEdma后根本进不了中断,如果前面去掉transImgEnable 这个参数判断,就直接一致在while循环里面一直StartEdma的话,这样是可以进中断的。这个问题太奇怪了,有人能帮我解答吗?