我使用的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的话,这样是可以进中断的。这个问题太奇怪了,有人能帮我解答吗?