大家好
我将变量timeSyncMark定义在共享内存区域,它分配到的地址是0X0C1FFFF0
程序中的定义:
#pragma DATA_SECTION (timeSyncMark, ".sync");
Uint32 timeSyncMark = 0;
link.cmd文件:
SECTIONS
{
.sync: load >> MSMCSRAM
}
问题:
我在核0中改变timeSyncMark的值之后,期望在其他核内能读到这个变化。但在其他核中,该变量的值并未改变。
是不是因为数据没有从缓存中写回共享内存?该怎么解决?
多谢
James Li2:
应该是没有维护多核的L1D的cache一致性修改这个变量的core要write back timeSyncMark,读取这个变量的core要invalid timeSyncMark