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.

[参考译文] R5FSS0-1:内核 MCU-PLUS-SDK R5FSS0-1 和 R5FSS1-1 的双中止

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1531677/mcu-plus-sdk-am263px-dual-unhalting-of-cores-r5fss0-1-and-r5fss1-1

器件型号:MCU-PLUS-SDKAM263PX-AM263PX

工具/软件:

大家好、向 AM263P 的 SDK 专家提问。

背景是我在跳转到应用程序后 core1-1 无法启动时遇到问题、而 CPU 复位后、内核按预期工作。

我使用的是 SDK 版本 10_01_00_31。 注意、版本 10_02_00_15 也是如此。

在 通过函数 Bootloader_parseAndLoadMultiCoreELF () 将映像段加载到各种 SBL 中每个内核(例如 sbl_ospi_morple_elf)各自的段之前、我们需要为每个 r5f 岛初始化锁步/双核配置。 为了实现这一点, 每个内核都运行 Bootloader_initCpu ()(如果该内核存在段)。

通过 initCpu、为每个内核运行 Bootloader_soccpuPowerOnReset()。 如果为 RFSS0 或 RFSS1 选择了双核模式、则在(通过 Bootloader_socCpuResetRelease)中为相应岛的 core1 添加了内核解除停止:

RFSS0:

RFSS1:

但是、initCpu 函数在为相应的内核加载任何段之前运行。 因此、对于双核模式、这似乎是过早地取消 core0-1 和 core1-1 的停止、因为内核可能会在加载到相关 tcma/ocram 段之前尝试访问特定代码。

针对所有内核以及作为 Bootloader_runCpu 函数的一部分在 SBL 结束时(在内核自复位之前)取消停止。 这似乎是不停止发生的适当地方。

在这一点之前、在 initCpu 取消停止 cores0-1 和 1-1 的原因是什么?

谢谢、Rens

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

    可以确认这导致了 HS-SE 器件的 Launchpad 应用程序上的问题。 过早取消停止会导致 core3 出现异常、因为代码尚未加载到正确的区域。 调用 Bootloader_socCpuResetRelease () 时注释掉、仅依赖最终的 SBL 单个内核 unhalt、core3 按预期运行。

    unhalt 调用必须是某种旧代码?

    谢谢、Rens

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

    尊敬的 Rens:

    是的、您说得对。 只有在存储器中加载了指令后、才需要取消停止 CPU。 否则、它可能会导致您观察到的异常。 我来记录一个内部错误、以便在下一个 SDK 版本中修复此问题。

    谢谢、

    Sahana

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

    好的、感谢您确认 Sahana。