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.

[参考译文] AM625SIP:用于从 M4F 访问 DRAM 的 RAT 配置

Guru**** 2914580 points

Other Parts Discussed in Thread: AM625, SYSCONFIG, AM625SIP

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1644828/am625sip-rat-configuration-for-accessing-the-dram-from-m4f

器件型号: AM625SIP
Thread 中讨论的其他器件: AM625SysConfig

您好、

此应用是针对 AM625 SIP 上的 M4F 内核开发的。 由于代码大小超过了可用内存、我需要将全局 RAM 变量放在 DRAM 中。 我已经相应地修改了链接器文件、但不确定如何配置 RAT 和 MPU 设置。

我附上了更新后的链接器文件和 example.sysconfig 文件。 请查看它们并建议正确的配置。

linker_sysconfig.zip 

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

    您好、

    有关以下内容、请参阅此常见问题解答:  【常见问题解答】SK-AM62:如何使用 M4F 内核从外部存储器执行代码?  

    此致、
    会面。

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

    您好、

    我参考了之前共享的链路并获得了 RAT 区域 4 中的重叠错误。 请参阅随附的屏幕截图。

    ...

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

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

    已将区域 4 的大小配置为 512 MB、必须将其更改为 256 MB。

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

    您能解释一下什么是本地地址和翻译后的系统地址吗? 这是如何工作的? 任何一份解释 RAT 的文档都很有帮助。

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

    本地地址是处理器内核 (R5、M4F) 在其代码和链接器文件中内部使用的 32 位地址。 转换后的系统地址是存储器或外设物理驻留在系统总线上的实际 SoC 级地址。

    有关 RAT 实际工作原理的更多信息、请参阅 TRM 中的第 9.2 节: https://www.ti.com/lit/ug/spruiv7c/spruiv7c.pdf#page=778 

    您还可以参阅此常见问题解答: 【常见问题解答】AM62x、AM64x:更新基于区域的地址转换 (RAT) 设置  

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

    谢谢与 Thakar 会面。

    您能解释一下链接器文件中定义的以下内容吗?

      /*当 M4 内核提前使用 Linux 引导时、资源表必须放置在 DDR_0 的开头*/
      DDR_0   :origin = 0x9CC00000 、length = 0x1000
      DDR_1   :origin = 0x9CB00000 、length = 0x100000

    我有以下疑问。

    在 RAT 区域 4 中、地址指定为 0x90000000、区域大小为 256MB、链接器从 0x9CC00000 开始。 为什么?
    运行 Linux 的 A‑内核如何确定为 M‑内核保留的 DDR 部分? 是否有必要修改链接器文件以反映此保留?
    我的场景只需要 1MB 的 DDR 空间、因此在 链接器配置RAT 设置中都需要进行哪些更改
    4、M‑内核具有 64KB 的内部 DRAM、我想在此 DRAM 中放置一些关键的全局缓冲区、同时在 DDR 中分配剩余的缓冲区。 实现这种存储器放置的正确方法是什么? 以及所需的更改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何‑确定为 M‑内核保留的 DDR 部分? 是否有必要修改链接器文件以反映此保留?

    M4 的链接器文件是根据 Linux 为 M4 内核保留的存储器分割区配置的、您需要相应地配置链接器文件以反映此保留、请参阅以下地址: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/12_00_00_07_04/exports/docs/linux/Foundational_Components_ ipc62x.html#dma-memory-carveouts 

    由于 我的场景只需要 1MB 的 DDR 空间、因此在 链接器配置RAT 设置中都需要进行哪些更改

    这已经涵盖了常见问题,我认为你需要交换 DDR_0 和 DDR_1 原点和长度,这应该是可以的。

    实现这种存储器放置的正确方法是什么? 以及需要进行哪些更改。

    如果您的应用需要额外的存储器、您可以将一些部分放在 DDR 中、常见问题解答已经涵盖了所需的更改、正如我提到的、常见问题解答所需的唯一更改是您需要交换 DDR_0 和 DDR_1 区域。 如果您遇到这方面的任何具体问题、请告诉我。

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

    是否有效

      DDR_0   :origin = 0x9CB00000 、length = 0x100000
      DDR_1   :origin = 0x9CC00000 、length = 0x100000  

    RAT 区域 4 大小为 256MB、这是否意味着为 M 内核保留 256MB DDR? 或者这只是可访问的范围。 实际保留发生在 Linux 存储器映射和 M-Core 链接器文件中。

    配置 RAT 区域 0 至 3 的用途是什么
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有效

    是的

    RAT 区域 4 的大小为 256MB、这是否意味着为 M-Core 保留 256MB DDR? 或者这只是可访问的范围。 实际保留发生在 Linux 内存映射和 M-Core 链接器文件中。

    这只是配置 RAT 区域、而不是实际为 DDR 中的 M 内核分配内存。

    什么是配置 RAT 区域 0 到 3

    根据以下表执行此操作: https://www.ti.com/lit/ug/spruiv7c/spruiv7c.pdf#page=47 

    如此处所述 、0x0084_0000 至 0x441F_FFFF 是 M4 的保留区域、因此我们配置 RAT 以访问该区域中的任何存储器/外设寄存器。

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

    什么是 DDR 状态和结束地址?

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

     AM625SIP 的寄存器为 0x80000000 至 0x9FFFFFFF