omap-L138 打算用 shared memory 作为 ARM 和 DSP 的共享内存,解决 Cache 问题用什么函数?

omap-L138 打算用 shared memory 作为 ARM 和 DSP 的共享内存,解决 Cache 问题用什么函数?

此问题尚无答案
All Replies
  • 秀才50分

    两种方案:1、每次操作通信用共享内存时刷 cache;2、设置shared memory 的某段范围为 cache disable

    查了好久,没有查到相应的函数,麻烦给个例子,谢谢!

  • 秀才915分

    可以通过cache_inv(),cache_wb(),cache_wbinv()函数来控制,可以参考下述链接:

    http://processors.wiki.ti.com/index.php/Cache_Management

  • 状元53636分

     

     

    blankman

    两种方案:1、每次操作通信用共享内存时刷 cache;2、设置shared memory 的某段范围为 cache disable

    查了好久,没有查到相应的函数,麻烦给个例子

    #1. Cache同步操作函数:

    a. DSP/BIOS里提供了API。

    b. Starterware(http://www.ti.com/tool/starterware-dsparm)提供了API:C6748_StarterWare_1_20_03_03\system_config\c674x\cache.c

    #2. 通过设置MARn寄存器可控制某段地址不被Cache,每个MAR寄存控制16MByte空间,寄存器地址参考文档108页:http://www.ti.com/litv/pdf/sprufk5a

        4.4.4 Memory Attribute Registers (MARn)

    http://processors.wiki.ti.com/index.php/Main_Page

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal

  • 秀才50分

    ARM 端,在 StarterWave 里面找到了 cp15.c, 把这个文件加入自己的工程里,然后按照 \OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\cache_mmu\uartEdma_Cache.c 中的方法配置 DDR 的物理地址就可以了吧?

    在 Linux 下面,不是无操作系统的情况

  • 状元53636分

    #1. 在Linux下有自己的参数配置。可以直接将之设为不可Cache

    #2. DSP端控制MAR,或者做同步操作。

    http://processors.wiki.ti.com/index.php/Main_Page

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal

  • 秀才50分

    #1 指的是 menuconfig 中配置的吗?

    #2 指的是 CP15.c ?

  • 秀才91分

    你好哪里可以找到OMPL138_StarterWare_1的这样的开发包,或者您能不能发给我一份,最近也在研究这个片子,邮箱xiaozhe_li@126.com

  • 状元53636分

    官网产品网页提供的下载链接:

    http://www.ti.com/tool/starterware-dsparm

    TI的wiki上也有下载链接及使用说明等:

    http://processors.wiki.ti.com/index.php/StarterWare

     

     

    http://processors.wiki.ti.com/index.php/Main_Page

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal