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.

[参考译文] TMS570LC4357:RAM 和闪存的 MPU 设置有问题

Guru**** 2524500 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/887867/tms570lc4357-problem-with-mpu-settings-for-ram-and-flash

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

您好!

我使用 mibspi + DMA 在两个基于 uCOS-3的 LC4357内核之间进行通信。

针对 TMS570LC4357HDK 的 UCOS3示例项目的 MPU 配置显示了熔断:

闪存:normal_OINC_nonshared

SRAM  : normal_OINC_nonshared

为了提高 CPU 计算能力 、我将闪存和 SRAM 的 MPU 设置更改为:

测试代码执行时间从3.4ms 大幅提高到0.6ms。 但我有一些问题:

当 SRAM 配置为非共享时(与 TMS570LC43x/RM57x 器件(SPNA238)中的 MPU 和缓存设置冲突)、为什么 DMA 仍可以访问 SRAM?

为什么将 RAM 配置为 NOLLMAL_OIWTNOWA_NONSHARED 比 NOLLMAL_OIWTNOWA_SHARED 更高效?

3.为什么会产生幻象中断, 并且 ESM 模块 出现 ACP D-Cache 错误?

4.如何配置 MPU 调制 ?

此致、

Jinus

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

    您好、Jinus、

    1. “共享”或“非共享”类型不影响 CPU 和 DMA 之间的并发访问。 此设置用于管理访问共享存储器区域的多个 CPU。 为了防止基于地址的虚假写入到内存区域、DMA 有其自己的 MPU。

    2.您能分享您的测量结果吗? 非共享和共享之间的区别有多大? 谢谢

    3. 当中断源无法确定时、会发生幻象中断。 请 参阅由 TI MCU 应用工程师之一编写的应用手册:   

    您可以使用 HALCoGen 配置 MPU。 有关使用 MPU 的信息、请参阅 ARM TRM :http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0460c/I1002400.html

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

    您好 QJ、

    非常感谢。

    1. “共享”或“非共享”类型不影响 CPU 和 DMA 之间的并发访问。 此设置用于管理访问共享  存储器区域的多个 CPU。 为了防止基于地址的虚假写入到内存区域、DMA 有其自己的 MPU。

    谢谢、我明白了。

    2.您能分享您的测量结果吗? 非共享和共享之间的区别有多大? 谢谢

    Shared:1.9ms

    非共享:0.6ms

    3. 当中断源无法确定时、会发生幻象中断。 请 参阅由 TI MCU 应用之一编写的应用手册

    我认为情景2提到 SPNA063是对我的幻象中断问题的正确解释。

    最后,问题得到了解决。 将值分配给 REQMASKCLR3后、需要读回代码。

    (SPNA219中描述的示例项目)

    以及用于 RAM 和闪存 μ:的 MPU 配置

    闪存: normal_OIWTNOWA_nonshared

    SRAM : normal_OIWTNOWA_nonshared

    为什么需要回读?

    4.当 CPU 和 DMA 都工作时,上述 SRAM 配置是否存在高速缓存一致性问题。  

    谢谢、此致、

    Jinus

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

    OIWT 表示外部/内部直写。 您可以忽略 OI、因为此器件没有两级高速缓存。 直写很重要。 有写通和写回。 直写指写入时、如果您写入的数据处于缓存中、则缓存会更新、但原始存储器(如 L2SRAM)中的值也会同时更新。 这可能会减慢某个位的速度、但如果您使用 DMA、则会有所帮助、因为 DMA 无法从缓存读取数据。

    回写速度更快、因为只有在需要从缓存中逐出一行时、才会将写操作转到主存储器。 因此、这是一种很好的堆栈类型、全局变量等  

    Wa 是一种策略、它意味着如果由于先前的访问而在缓存中没有地址、则第一次写入本身将导致该行被缓存。 对于具有 RW 属性的 L2SRAM 区域(涵盖0x0800 0000至0x0803 FFFF)、这些选项更重要

    Cortex-R5 ACP 存储器一致性方案仅在连接到 ACP 从端口的外部主设备和在 Cortex-R5组中具有数据高速缓存的 CPU 之间提供一致性,用于在 CPU 的 MPU 中配置为内部可高速缓存写入的存储器区域。  它不为配置为可高速缓存回写的存储器区域提供一致性。 DMA 根本不使用缓存。