TI员工,您好!
我现在使用6678开发板开发程序时,遇到如下情况:
1、核1——核7之间均有一个成功标志位(定义在MSMC中)flag1——flag6,核0统一收到该标志位之后,才能将数据传输至上位机,但是在核0中观察6个标志位始终不同步,而且其中几个标志位感觉不受控制,自己在不断更改自己的值,这是怎么回事呢?
谢谢
littleWhite:
1,标志位在msmc上,core0~7直接读写的是各自的cache,没有对cache一致性进行维护
2,对标志位进行cache维护了,但是这几个flag变量被放在一个L1D cache_line内(64byte),core维护的时候将另一个core的flag覆盖了
fei cheng3:
回复 littleWhite:
您好!我的6个flag均进行lecache维护了,而且这几个flag变量被放在六个不同的L1D cache_line内(64byte),但是标志位始终不同步
Allen35065:
回复 fei cheng3:
关闭prefetch buffer试试,prefetch buffer通过MAR寄存器关闭,参考C66x corepac手册