TI中文支持网
TI专业的中文技术问题搜集分享网站

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];
  }
 }

King Wang1:

应该是cache操作的问题,LZ查查看你的全局变量是不是按照cache line的size对齐的。

 

赞(0)
未经允许不得转载:TI中文支持网 » MSMC部分数据出错的问题
分享到: 更多 (0)