主题中讨论的其他器件:TMDS64EVM、 SysConfig
MCU+SDK 9.1
Linux+SDK 8.6
TMDS64EVM
您好:
在测试过程中、我们遇到了一个问题、即程序在 DDR 上的运行速度比在 MSRAM 上的运行速度慢。 上面的链接是我们先前提出的问题、也是我的问题的背景。
首先回答上一链接中提出的问题:
我使用的示例是 GPIO_LED_BLINK、它来自 MCU+SDK 9.1软件包。 该示例的工程名称为 GPIO_LED_BLINK _am64x_evm_r5fss0-0_nortos_ti-arm-clang。 我们可以看到、这是一个在 R5F0-0内核上运行的程序。 我以前看过该程序、只有外设的示例代码控制是 GPIO 的输出、而不是输入。 我的理解是、它不存在上述链接中提到的与输入中断相关的问题。
GPIO_LED_BLINK 示例成功配置为从 Linux 引导到 DDR、可以观察到 LED 指示灯闪烁。
我还看过 AM64x Academy 多核模块开发文档、其中似乎没有提到如何在 Linux 系统的器件树中分配 SRAM 节点。
https://dev.ti.com/tirex/explore/node?node=A__AeMVTHckwFDmFoNkRHpRPw__AM64-ACADEMY__WI1KRXP__LATEST
我要实现 在 MSRAM 上运行的 Linux 系统引导 R5F CPU 项目:
对于 CCS 工程、请参阅并比较在 DDR 和 MSRAM 程序上运行的 linker.cmd 和 example.syscfg 文件。 针对 example.syscfg 文件完成以下配置(可以在 example.syscfg 中修改 MCU+SDK 9.1 linker.cmd、并将资源表大小设置为0x1000)。
MSRAM :origin = 0x70080000、length = 0x40000
更改为
MSRAM0 :origin = 0x70080000、length = 0x1000
MSRAM1 :origin = 0x70081000,length = 0x3F000
更改了部分
MSRAM0 -> resource_table
MSRAM1 -> Text Segments、Code and Read Only Data、Data Segment、Memory Segments、Stack Segments、Initialization and Exception Handling
使用上述更改进行测试后、我发现未成功加载程序。
根据上述测试以及帖子上的回复、我有以下问题:
>首先,如果我记得正确的话,在客户的设备树中修改过的保留内存部分专门用于 DDR。 您可以在 am64-main.dtsi 文件中找到 SRAM 分配。 因此、如果客户要添加 SRAM 分配、则需要将其添加到 SRAM 节点而不是 DDR 节点。
k3-am64-main.dtsi 文件中的 SRAM 节点位于何处? 如何分配 SRAM? 分配 SRAM 后、我需要对 K3-am642-evm.dts 文件进行哪些更改?
>第二,请注意,我们只测试了1MB Virtio 部分作为工作在 DDR ,而不是在 SRAM。 我不确定资源表是否也需要位于 DDR 中、或者它是否可以进入 SRAM 中。 但这是另一项要测试的内容。
是否验证 R5F CPU 程序已由 Linux 系统引导至 MSRAM 存储器? 或者它在理论上工作吗?
如果已经过验证并且可行、TI 能否提供修改示例供我们参考、包括修改器件树文件?