为什么下面这段代码会感觉是没有顺序执行了,导致FPGA的时序不对,数据有误!
temp = * nandWorkMode;
while(temp!=0x00660000)
{
temp = * nandWorkMode;
}
* nandStartCmd=START_READ + i;
SetEdma3Src(param_num, (Uint32)NAND_DATA_BASRADDR);
SetEdma3Dst(param_num, (Uint32)(nandReadBuf+0x2000*i));
SetEdma3ESR(regin, chan_num);
dataIPR=GetEdma3IPR(regin,tcc);
while(dataIPR==0)
{
dataIPR=GetEdma3IPR(regin,tcc);
}
SetEdma3ICR(regin,tcc);
本来按照我们的设计是应该先执行* nandStartCmd=START_READ + i,然后执行后面有关EDMA的操作;
但是为什么现在感觉是先执行了后面关于EDMA的操作,然后才执行的* nandStartCmd=START_READ + i;
这和我当前使用的编译器有关吗?