DDR数据改变问题请教

2019-03-26 15:41发布

请问高手, 下面是代码,当FPGA用SRIO发送51MB的线性数到DSP的DDR。

通过内存窗口改变0x8ffffffc的值,控制  DSP去检测DDR数据。看是否为线性数据。我在内存窗口里面确实是收到了51MB的线性数。
但是调用verifyDat函数,在 “if(sum==nlength)”处加断点,然后发现DDR收到的51M数据发生改变,在51MB靠后的部分,全都是0,而前面部分数据,

要没有改变的,请问高手这是什么原因?
我的检测代码,并没有对DDR进行赋值操作,为什么DDR中的数据会发生改变??

void verifyDat();
int sum = 0;
main()
{
        CACHE_setL1PSize(CACHE_L1_32KCACHE);
        CACHE_setL1DSize(CACHE_L1_32KCACHE);
        CACHE_setL2Size(CACHE_256KCACHE);
      //...
          KeyStone_SRIO_Init(&srio_cfg);
    //.....

       *(volatile uint*)0x8ffffffc=0;
      while(1)
     {
                   asm(" NOP 20 ");
                if((*(volatile uint*)0x8ffffffc))
                 {
                        sum = 0;
                      verifyDat();
                 }
       }
}

void verifyDat()
{
              uint * pSRc = (uint*)0x90000000;//DDR接收数据地址
             int i = 0;
             InvalidCache((void *)pSRc, 51*1024*1024);
             int nlength = 51*1024*1024/4;
            for(i=0; i<nlength; i++)
           {
                 if(pSRc[i]!=i)
                         break;
               else
                         sum++;
           }
         if (sum==nlength)
                            printf(" succes ");
        else
                              printf(" error ");
         for(i=0; i<nlength; i++)
        {
                pSRc[i] = 0;
       }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
kemasz
1楼-- · 2019-03-26 21:33
< 过来看看~~~~~~~~~~~~~~

一周热门 更多>