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.

MSMC部分数据出错的问题



core0写200个数据到MSMC,core1读取,前16个是正确的,后面都不对。

DDR3_DATA1放在MSMC中。

 if(coreNum == 0)
 {
  #ifdef L2_CACHE
   CACHE_invL2 ((void *) &DDR3_DATA1, 4, CACHE_WAIT);
  #else
   CACHE_invL1d ((void *) &DDR3_DATA1, 4, CACHE_WAIT);
  #endif

  for(i=0;i<200;i++)
  {
   DDR3_DATA1[i] = i+45;
  }

  #ifdef L2_CACHE
   /* writeback L2 */
   CACHE_wbL2 ((void *) &DDR3_DATA1, 4, CACHE_WAIT);
  #else
   /* Writeback L1D */
   CACHE_wbL1d ((void *) &DDR3_DATA1, 4, CACHE_WAIT);
  #endif
 }
 else
 {
  for(ppp=0;ppp<3000;ppp++)
   asm(" NOP 9");

  #ifdef L2_CACHE
   CACHE_invL2 ((void *) &DDR3_DATA1, 4, CACHE_WAIT);
  #else
   CACHE_invL1d ((void *) &DDR3_DATA1, 4, CACHE_WAIT);
  #endif

  for(i=0;i<200;i++)
  {
   Data_core1[i] = DDR3_DATA1[i];
  }
 }