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:高速缓存存储器模式和 MPU

Guru**** 2595805 points
Other Parts Discussed in Thread: TMS570LC4357, TMS570LS3137

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/739162/tms570lc4357-cache-memory-modes-and-mpu

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

====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

这个问题从"TMS570LC4357:与 TMS570LS3137相比、执行时间非常长"中分离出来。

链接: e2e.ti.com/.../730319

====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

Gobind、

这些问题不再与原始帖子和标题有关。 请为与原始帖子无关的问题/主题启动新主题。

请参阅以下我的评论:

我没有启用 MPU、这意味着存储器属性是默认的属性、整个闪存和 RAM 处于回写、写分配(WBWA)模式。 (此假设是否正确?) 一组指令的执行时间为734ns。 当我启用 MPU 并且我认为我配置了它直写(WT)模式时。 同一组指令的执行时间为610ns。 是否为预期行为? 如果是、为什么 WT 模式比 WBWA 模式更快?

>>请分享您配置 MPU 的代码以及您正在执行的指令。 如何测量执行时间?

2.在 CCS 表达式窗口中、当代码在启用缓存的情况下运行时、表达式窗口中的值都为零。 一旦暂停执行、就会看到实际值。 启用缓存后、是否有方法并行查看表达式窗口中的这些值? 当缓存被禁用时、值是正确的。

>>调试器内存窗口使用处理器刷新内容。 这要求处理器停止执行代码、切换到调试状态(有关调试状态的详细信息、请参阅 ARM 架构参考手册)、并从显示的存储器位置执行读取操作。 TMS570 MCU 上有一种在不使用或停止处理器的情况下显示存储器位置的方法。 这要求您映射调试器存储器窗口、以由 DAP (调试访问端口)代替处理器刷新。

3.另一个问题是、启用缓存存储器时、是否无法从 RAM 执行代码? 我尝试过这种方法、但我面临着问题。 我看到有一些异常出现、或者有时从 RAM 运行的函数中仍然存在控制、并且永远不会出现。

>>如何设置代码以从 RAM 执行? 您会得到什么例外情况?

此致、
Sunil

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

    答案如下:

    1. MPU 初始化文件是 attached.e2e.ti.com/.../0333.MPU_5F00_init.txt

    我执行的指令如下所示:

    //Start Code

    将 GPIO 切换为低电平

    uint32 = uint32 + uint32;

    uint32 = uint32 + uint32;

    … 18次

    将 GPIO 切换为高电平

    //结束代码

    GPIO 用于测量时间(如上所示)

    2.未启用缓存时、调试器显示值。 启用高速缓存后、仅显示零。 我的问题是、对于启用缓存以查看调试器中的运行时间值、我们是否需要执行任何特殊设置?

    3.我使用#pragma 代码从 RAM 中运行函数:

    pragma CODE_SECTION (FunctionName、"APPRAMFUNC")

    我不会得到一些例外、但控制永远不会从 RAM 运行的函数中产生。 但是、一旦我禁用高速缓存、一切都可以完美运行。 因此、我的问题仅与缓存启用有关、否则没关系。

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

    对于#1、您能否明确地将 RAM 配置为回写、然后再配置为直写、并再次进行测量? 您的执行时间可能会受到另一个存储器(闪存)属性的影响。

    2。 在 CPU 处于调试状态时、调试器通过 DAP 端口访问 RAM。 这需要暂停 CPU 以读取存储器内容。 当您使用调试器读取存储器位置时、CPU 代码执行是否停止?

    3号。 如何将代码段复制到 RAM、然后调用函数?

    此致、
    Sunil