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