器件型号:TDA3
大家好、
是否可以从引导加载程序解析和启动 IPU1_0 (主)内核、并从应用程序(在 Vision SDK 2.12.01中)解析和启动 IPU1_1内核?
我想启动 IPU1_0、稍后再启动将解析、加载和引导 IPU1_1的应用程序。 这是可行的吗? 这两个内核之间是否存在任何可能导致问题的特殊连接?
提前感谢、
Jho。
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.
器件型号:TDA3
大家好、
是否可以从引导加载程序解析和启动 IPU1_0 (主)内核、并从应用程序(在 Vision SDK 2.12.01中)解析和启动 IPU1_1内核?
我想启动 IPU1_0、稍后再启动将解析、加载和引导 IPU1_1的应用程序。 这是可行的吗? 这两个内核之间是否存在任何可能导致问题的特殊连接?
提前感谢、
Jho。
您好 Jho、
您可以按照以下步骤从 Vision SDK 应用程序引导 IPU1_1映像。 您还需要修改 SBL 代码才能实现这一点。
SBL 会在 DDR 的 while 环路中保留 IPU1_1循环、以防找不到相应的应用程序映像。 您需要删除此代码。
代码为:
/*设置 while (1)循环*/ HW_WR_REG32 (((SBLLIB_IPU1_Core1_BOOT_ADDRESS_NO_IMAGE - 1U)、0xE7FE7FEFEFEEEU); SBLLibPrintf (SBLLIB_TRACE_LEVEL_IMP_INFO、 "\n 未找到 IPU1 CPU1应用程序、切换到 while Loop \n"); HW_WR_REG32 (SBLLIB_IPU1_CORE_1_INPLE_POINT_ADDRESS、 SBLLIB_IPU1_Core1_BOOT_ADDRESS_NO_IMAGE);
2.执行1会导致 IPU1_1在 OCMC RAM 中的 while 循环中。 Vision SDK 应用程序不应使用0x0到0x200偏移的 OCMC RAM。
3、VISION SDK 应用应解析/加载 IPU1_1的应用映像、并在 SBLLIB_IPU1_CORE_1_INPLE_POT_ADDRESS 设置入口点。
通过这些更改、两个 IPU 内核都可以正常工作。 应注意、IPU1_1映像不会重新配置 Ammu、因为它可能会导致 IPU1_0崩溃。
此致、
Rishabh
您好 Jho、
IPU1是一个双核系统、其中 Core0是主器件、Core1是从器件。 当 RBL 将控制权交给 SBL 时、Core1保持在 WFE 中。
为了获得可配置矢量表、SBL 将把0x0重新映射到 IPU RAM 而不是 ROM。 如果在重映射0x0后 SEV 被发送到 core1、则会发生硬故障。 因此、SBL 在重映射0x0之前唤醒 Core1。
SBL 在 OCMC 中设置 while 循环。 SBL 将 OCMC 地址传递给 AUXBOOT、以便在发送'EV' Core1时跳转到 OCMC 并在那里循环。 解析应用程序映像后、SBL 将 IPU1_1的入口点传递给它、IPU1_1从 OCMC 跳转到此位置。
此致、
Rishabh