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.

[参考译文] CCS/CCStudio-keystone:ARM和DSP从同一MSMC位置读取不同的值

Guru**** 2563960 points
Other Parts Discussed in Thread: 66AK2H06

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/593225/ccs-ccstudio-keystone-arm-and-dsp-read-different-value-from-the-same-msmc-location

部件号:CCStudio-keystone
主题中讨论的其他部件:66AK2H06

工具/软件:Code Composer Studio

您好,

我们使用MSMC内存作为ARM和DSP通信之间的双端口存储器。 DSP不断将数据写入MSMC中的一个位置(例如,位置0xc0.014万)。 从CCS内存浏览器中,我可以看到值keep change in location 0xc0.014万。 但在ARM端,我使用devmem2读取0xc0.014万 位置,该值不会更改。 我停止了DSP,数值仍然没有变化。 但是如果我手动更改0xc0.014万上的值,那么我可以从臂侧读取collect值。

问题是什么会影响从臂侧读取的MSMC内存? 为什么DSP和ARM可以从同一存储器位置读取不同的数据?

谢谢

Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mike:
    请提供您正在使用的设备和完整CCS版本。

    谢谢你
    KI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CCS版本是6.1 .3.0.0034万 ,器件是66AK2H06,仿真器是XDS560V2
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    The question is What can affect the MSMC memory read from the arm side?(从手臂侧读取MSMC内存会受到什么影响?) 为什么DSP和ARM可以从同一存储器位置读取不同的数据?[/QUOT] MSMC存储器是否被ARM和/或DSP视为可缓存?

    在存储器中,Keystone II器件上只有ARM支持硬件高速缓存侦听,并且DSP需要软件处理高速缓存一致性。

    使用CCS内存浏览器时,选择“CPU Memory View”(CPU内存视图)显示CPU高速缓存所看到的值,“Physical Memory View”(物理内存视图)显示物理RAM中的值。 如果"CPU Memory View"(CPU内存视图)和"Physical Memory View"(物理内存视图)具有不同的值,可能会导致缓存一致性问题(或MMU正在执行转换)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    DSP和ARM都不会将MSMC视为可缓存内存。 我们将其用作双端口存储器,以便在DSP和ARM之间传输数据。
    我已经尝试了你的建议。从CPU内存视图,我可以看到数据变化,从物理内存视图,我看不到数据变化。 正如您所指出的,这是缓存一致性问题。
    如何避免此缓存一致性问题? 是否将我的数据地址更改为MSMC的其他位置? 添加DSP和ARM的MSMC配置代码?

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

    Mike Chen10 说:
    How can I evoid this cache cohcency issue?

    请看一下来自ti-processor-SDK-RTos-k2hK-EVM-Inv-ListMP模块的Inter‐Processor Communications (IPC) HeamMemMP和ListMP模块02.00  。02.11 Cache_inv()函数用于管理高速缓存的一致性。

    我不知道您正在运行什么软件,例如裸机,RTOS或Linux,但您可能可以使用现有的IPC机制。

    我还没有尝试在Keystone II设备上执行IPC,您可以通过在 Keystone多核论坛(C66,66A,AM5,TCI)上向设备专家咨询获得更好的答案