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.

关于C6678 cache一致性的问题



最近在弄6678多核之间数据交互的问题,现在关于cache一致性的问题研究好久了,也就是在写数据之后刷cache,然后在读数据之前invalid cache 。但是到了具体的编程写代码的时候,就完全不懂了。

在使用cache时,直接在原来的代码的基础上添加cache这一块的操作就可以了吗?使用时应该在代码中加载什么头文件?在刷cache时还有 invalid  cache 时应该使用什么函数? 有关cache方面的函数声明以及介绍从哪儿可以查找?

这块刚接触,谢谢各位帮忙!!

  • 请参考c66x cache user guide,有详解cache及相关API的使用,multicore program guide说明多核编程cache的维护,及STK中例程,如STK中的multicore navigator例程在使用描述符时,将描述符放在DDR时就需要去进行cache一致性维护,可以参考其代码的使用。

    相关cache API在pdk csl中都有。

    cache user guide:http://www.ti.com/lit/ug/sprugy8/sprugy8.pdf

    multicore program guide:http://www.ti.com/lit/an/sprab27b/sprab27b.pdf

    STK:http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/47664.aspx

  • Andy 你好,

    我在使用 CACHE_wbInvL1d()函数时,参数使用 CACHE_WAIT .但是为什么提示 CACHE_WAIT 没有定义这个错误呢?

  • 补充一个问题,我查看论坛帖子里面提到了设置L2或者L1D的高速缓存状态时,可以通过

        CACHE_setL1DSize(CACHE_L1_32KCACHE);

        CACHE_setL2Size(CACHE_0KCACHE);

    类似于这样的操作。

    但是我按照这个操作进行的时候是有错误的。请问一下这个操作具体应该怎么使用或者应该放在工程的哪儿个部分且还需要别的什么操作?

    谢谢!