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

6678 UCLinux Cache一致性问题

您好!

       我在6678上使用ucLinux,在主核上执行一段程序对两个数组b,c进行加法运算,结果放到数组a中。

其中这三个数组均是在主核的地址空间中,有缓存。但是主核只是对数组b和c进行了初始化(初始化后马上进行了L2缓存的writeback),

执行a[i] = b[i] + c[i];是在1核上进行的。等1核的运算结束后再在主核输出a数组的内容(之前一步对a的L2缓存置为无效)。

    现在结果是这样的,有时候printf显示输出的结果是错的,但是通过ccs内存视图看到的是正确的结果?我想请问我的程序是哪里出问题了,

怎么解决这个问题?谢谢!

King Wang1:

1核上执行加法之后,是否需要将a的内容刷回到内存,这样主核(应该是0核)才能读到正确的内容。 不知道我理解是否正确?

long long:

回复 King Wang1:

主核确实是0核,1核是直接将计算结果写到a所在的内存地址,从ccs内存视图来看确实写进去了,但是主核读到的a的内存却不一定正确。

赞(0)
未经允许不得转载:TI中文支持网 » 6678 UCLinux Cache一致性问题
分享到: 更多 (0)