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.

[参考译文] RTOS/OMAPL137-HT:有关 SYSBIOS 缓存常量的问题

Guru**** 2555630 points
Other Parts Discussed in Thread: SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/610175/rtos-omapl137-ht-questions-about-sysbios-cache-constants

器件型号:OMAPL137-HT
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

您好!

我尝试找出一个奇怪的高速缓存行为。

#define Cache_Type_L1P ti_SysBIOS_family_c64p_Cache_Type_L1P
#define Cache_Type_L1D ti_SysBIOS_family_c64p_Cache_Type_L1D
#define Cache_Type_L1 ti_SysBIOS_family_c64p_Cache_Type_L1
#define Cache_Type_L2P ti_SysBIOS_family_c64p_Cache_Type_L2P
#define Cache_Type_L2D ti_SysBIOS_family_c64p_Cache_Type_L2D
#define Cache_Type_L2 ti_SysBIOS_family_c64p_Cache_Type_L2
#define Cache_Type_ALLP ti_SysBIOS_family_c64p_Cache_Type_ALLP
#define Cache_Type_ALLD ti_SysBIOS_family_c64p_Cache_Type_ALLD

如果我执行如下呼叫:

cache_wb (packetto [0]、MAX_DATA*MAX_frames、cache_Type_ALLD、1);

这将回写 L2数据和 L1数据中的所有数据缓存,还是只写我从设置指针中选择的字节数?

Jaime

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更多信息、因为我认为在我的情况下不需要处理缓存一致性。 我已阻止 ARM 和 DSP 之间128K 中的一些存储器。 到目前为止、我的问题与处理器无关、因为我首先在 DSP 上进行测试。 此存储器区域位于0x80000000中。 我有一个填充此缓冲区的任务、还有一个计算写入数据 CRC 的任务。 填充此缓冲区的任务不是 DMA。

    我想我可以将该缓冲器移至内部 L2 RAM 进行测试。 我已启用32k 的 L2高速缓存。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已将此内容转发给 TI RTOS 专家。 他们的反馈应发布在此处。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我从 SYSBIOS 文档中了解到、该 API 仅在指定的起始地址和字节计数内写回存储器范围。 操作的地址范围会被量化到每个高速缓存中的整个高速缓存行。 范围内的所有行在'type'缓存中保持有效、范围内的数据将被写回源存储器。

    除了 TI RTOS/SYSBIOS 缓存 API、您还可以将 CSL 缓存 API 器件设置为执行类似的缓存操作。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、以下常量之间的区别是什么。 我发现了我的问题、不是高速缓存问题、但我仍然不确定这些常量的差异。 我不确定的原因是、在结束时、我仍然必须将指针传递到存储器的起始位置、因此为什么我必须将 L2D 或 ALLD 转码。

    #define Cache_Type_L1P ti_SysBIOS_family_c64p_Cache_Type_L1P
    #define Cache_Type_L1D ti_SysBIOS_family_c64p_Cache_Type_L1D
    #define Cache_Type_L1 ti_SysBIOS_family_c64p_Cache_Type_L1
    #define Cache_Type_L2P ti_SysBIOS_family_c64p_Cache_Type_L2P
    #define Cache_Type_L2D ti_SysBIOS_family_c64p_Cache_Type_L2D
    #define Cache_Type_L2 ti_SysBIOS_family_c64p_Cache_Type_L2
    #define Cache_Type_ALLP ti_SysBIOS_family_c64p_Cache_Type_ALLP
    #define Cache_Type_ALLD ti_SysBIOS_family_c64p_Cache_Type_ALLD