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.

[参考译文] SK-AM64:SKAM64 -A (多核加载)

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1233247/sk-am64-skam64--a-multiple-core-loading

器件型号:SK-AM64

您好!  

是可以在 skam64中同时加载多个内核,还是可以从另一个 ARM 内核加载一个 ARM 内核,就像我们使用 R5F 和 PRU 时可以实现的…… 例如,如果我考虑 R5F0作为我的主内核,而另一个 R5F1作为我的远程内核,那么是否有办法从主内核加载远程内核,而不是手动加载它? 我的用例是我要处理多个东西、对于每个参数、我希望使用不同的内核进行计算。 我正在检查 SDK 中给出的示例代码为 IPC notify echo ,有人提到,对于一个多核程序,所有的可执行文件都需要加载和运行,这个加载可以从一个单核完成,或者换句话说, 是否有办法一次刷写多个 SOC 初始化二进制文件?

此致、

Shruti Gupta

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

    您好 Shruti:

    您如何引导电路板?

    MCU+ SDK 中的 SBL 引导方法将在进行 Linux 引导之前初始化多个远程内核。 Linux SDK 中默认的 SPL 引导方法使用 Linux RemoteProc 驱动程序在 Linux 引导期间初始化远程内核。 对于这两种引导方法、启用的所有内核都将进行初始化(虽然并不是在完全相同的纳秒)。

    另一个问题:"同时"(即、您是否关心特定的时间窗口?)是什么意思? 如果您尝试在特定的时间窗口内初始化多个内核、您想要通过执行此操作来实现什么目标?

    此致、

    Nick

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

    您好,Nick,  

    感谢响应,所以是的,我有一个测试时间3秒,其中我将在2秒内进行数据采集和数据处理,因此,我需要同步多个内核, 要同时开始捕获和处理,我没有使用 Linux ,使用 FreeRTOS 为我的程序,在这里分享我想要实现的简要概述,希望这有助于更好地理解用例

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

    尊敬的 Shruti:

    您是否具有每个内核的可执行文件且希望一次引导所有内核? 如果是、您可以创建一个 Appimage、它将包含每个内核的可执行文件。 然后、运行时的 SBL 将解析该 Appimage 并加载每个内核的可执行文件。 最后、SBL 将逐个运行这些内核。

    此致、

    Prashant

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

    您好,Prashanth,  

    我确实有二进制 文件(.out 文件),我想使用的每一个核心,你是否有任何文件,我可以参考,以创建应用映像,包括多个核心?  我想您的建议适用于我的用例。

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

    尊敬的 Shruti:

    对于您的用例、您可以参阅以下指南的"Out2RPRC"和"多核映像生成"部分: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/08_04_00_17/exports/docs/api_guide_am64x/TOOLS_BOOT.html

    基本来说、步骤如下:

    • 使用 elf2rprc 工具将每个.out 文件转换为.rprc 文件。
    • 使用 multioreImageGen 工具、将每个.rprc 文件合并到一个.appimage 文件中。

    如果使用示例的默认 makefile、则也不需要执行第一步、因为 makefile 会在构建过程中生成.rprc 文件。 然后您可以获取这些.rprc 文件并自行生成最终的.appimage。

    如果在第二步中有疑问、您也可以参考以下常见问题解答。

    https://e2e.ti.com/.../faq-am6442-am64x-multi-core-image-gen-for-gp-and-hs---fs-hw-versions

    此致、

    Prashant

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

    感谢 Prashanth ,将检查这些文件  

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

    您好、Prashanth、  

    是否有一个特定的序列,内核正在加载,就像它依赖于内核 ID ...from 我的观察,它只是这样出现,你能确认它 是否正确吗?

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

    尊敬的 Shruti:

    我相信没有必须遵循的具体顺序。 可以按任何顺序加载可执行文件。 在需要运行内核时、除 R5FSS0之外的所有内核都必须在 R5FSS0自复位之前运行、之后会最终运行、并将控制权交给 R5FSS0应用。

    我检查 SBL_OSPI 并发现订单是:M4F -> R5FSS1 -> A53 -> R5FSS0。 如果此订单不符合您的用例、您可以修改 SBL 以更改订单。

    此致、

    Prashant

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

    从 Linux 终端方面为未来读者发表评论:

    /sys/class/remoteproc/remoteprocX 到特定处理器的映射没有固定的。 无论 MCU+ SBL 初始化远程内核、还是 Linux RemoteProc 驱动程序初始化远程内核、我都认为情况属实。 (例如,R5F0_0在一个引导中可能是 Remoteproc0,而在另一个引导中可能是 Remoteproc1)

    在通过 Linux 终端开始与 Remoteproc 进行交互之前,请检查 Remoteproc 的名称。 如需更多信息、请参阅 https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__ANKEb6LZY6VAX.9xvGwQ-g__linux_academy_am64x__7qm9DIS__LATEST

    此致、

    Nick