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.

[参考译文] AM2634:Sitara AM2634启动内核、无 booltoader

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1377907/am2634-sitara-am2634-starting-cores-without-booltoader

器件型号:AM2634

工具与软件:

你(们)好  

尝试在没有引导加载程序的情况下启动多个内核时、始终会出现错误。 例如、在内核1在内核0之后启动之后、内核1始终在数据异常句柄中。

在没有任何引导加载程序的情况下为 Sitara AM2634启动多个内核的正确方法是什么?

谢谢你  

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

    你好、熊猫!

    在不详细查看错误的情况下、说明听起来器件可能已被配置为锁步模式。 您能否共享用于配置 Core 0的 GEL 文件?

    通常、在开发引导模式下没有引导加载程序、您可以使用 GEL 文件初始化每个内核。

    此致、

    Ralph Jacobi

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

    你好、Ralph

    感谢您的回答。 我将尝试以其他方式表述:

    目前我们有一个映像并加载两次、因此内核1和0 从输入点到主映像已准备就绪。

    但我们需要直接从内核0启动内核1。  

    在 Aurix 体系结构中、有一种能力、即内核0就像一个主内核。 内核0启动后、内核0可以启动所有其他内核。

    我的问题是、我们如何在一次映像加载的情况下从内核0启动内核1?

    谢谢你

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

    你好、熊猫!

    IPC 应该能够处理内核0中的内核1配置、但目前不清楚的是您期望实现的确切用例是什么。

    在没有引导加载程序的情况下启动内核当然是可行的、但我们现在也讨论图像加载-这些都是为了开发目的、还是您希望最终应用在不涉及引导加载程序的情况下加载多个内核?

    此致、

    Ralph Jacobi

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

    我们希望内核0由引导加载程序加载、然后内核0启动内核1、后者执行与内核0相同的映像。 该应用程序是为多核编写的。  

    如果我们有通过 BL 加载并从内核0开始的多内核映像、则会不到1 MB。 然后、当内核0启动时、它会激活内核1以执行相同的映像。

    我们已经修改了多内核的启动脚本等

    每个内核都分配了不同的堆栈等

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

    我们希望内核0由引导加载程序加载、然后内核0启动内核1、后者执行与内核0相同的映像。 该应用程序是为多核编写的。  

    如果我们有通过 BL 加载并从内核0开始的多内核映像、则会不到1 MB。 然后、当内核0启动时、它会激活内核1以执行相同的映像。

    我们已经修改了多内核的启动脚本等

    每个内核都分配了不同的堆栈等

    SET (MULTI_CORE_IMAGE_PARAMS ${BOOTIMAGE_CORE_ID_r5fss0-0}${RPRC_IMAGE}${BOOTIMAGE_CORE_ID_r5fss0-1}${RPRC_IMAGE}) SET (MULTI_CORE_IMAGE_PARAMS ${BOOTIMAGE_CORE_ID_r5fss0-1}${RPRC_CORE_IMAR_IMAR_IMAGE_IMAGE_IMAGE_IMAGE_IMAGE}${R0}${R5F0}

    这就是我们现在创建 APPIMAGE 的方式。 您可以看到两个内核使用了相同的映像 RPRC_IMAGE。 这会产生双图像。

    如果我们设法从内核1启动内核1、我们将创建 APPIMAGE、如下所示:set (MULTI_CORE_IMAGE_PARAMS ${BOOTIMAGE_CORE_ID_r5fss0-0}${RPRC_IMAGE})、这会将 APPIMAGE 的大小减小2倍。

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

    您好!

    对此延迟响应深表歉意。 如果我正确理解您的要求、请更正我:

    Core0未停止并由 RBL 加载(目前尚未停止其他内核)

    2. Core1未被 Core0停止、而 Core0仅将二进制文件加载至 Core1。

    3. Core0 / Core1二进制文件是相同的,因此您正在寻找优化应用程序映像创建作为其他映像的副本?

    如果是、我会进一步检查、 看看在这个流程中是否可以做到这一点、以及如何做到这一点。

    此致、Shiv