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.

[参考译文] RTOS/OMAP-L138:IPC_START()在 ARM 内核上挂起、似乎始终在 DSP 内核上传递

Guru**** 2609895 points
Other Parts Discussed in Thread: OMAP-L138, SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/582662/rtos-omap-l138-ipc_start-hangs-on-arm-core-seems-to-always-pass-on-dsp-core

器件型号:OMAP-L138
Thread 中讨论的其他器件: SYSBIOS

工具/软件:TI-RTOS

我正在尝试获取基于 ListMP 的示例、以在 OMAP-L138的 DSP 和 ARM 内核之间传递大型链接列表。  我修改了 Syslink 示例、以便 ARM 内核使用 SYS/BIOS 而不是 Linux。  我不确定要附加哪些文件可能会有所帮助、因此我将等待响应。  我的大多数问题似乎与我的 SharedRegion 配置有关、但我无法解决。

我正在使用:

- CCS v7

- XDCtools 3.25.3.72

-SYS/BIOS 6.35.1.29

IPC 1.25.3.15

我已从 Syslink 2.21.01.05修改 ex06_listmp 示例项目。  DSP 代码不变、但在 main_host.c 中将模式复制到 ARM 端(用 SYS/BIOS 等效项替换 IPC 调用和 Linux/syslink 特定调用)。  我已经尝试了"Ipc.procSync = IPC.ProcSync_pair"和"Ipc.procSync = IPC.ProcSync_All"两种方法。  第一个中断在 IPC_ATT()上,第二个中断在 IPC_START()上(这根据我对这些配置的理解是合理的)。

我现在可以在两者上构建和运行代码。  我可以单步执行每个处理器上的 IPC_START()函数。  据我所知、DSP 必须先按 IPC_START()、然后按 ARM。  在成对模式下、DSP 将直接通过 IPC_START(),但会挂起 IPC_ATT()。  即使在我单步执行到 ARM 上的 IPC_ATT()等效项后,它也将保持在该位置。  所有 Procsync 的这种行为都是一样的,但将发生在 IPC_START()而不是 IPC_ATT()。

我之前使用 Notify 示例成功运行了 IPC_START(),这里唯一的区别似乎是 SharedRegion 配置,尽管它在 Notify 示例中起作用。

我应该在这里看到什么?

谢谢!

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

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哦、我不知道 OMAP-L138被视为 Sitara 系列的一部分
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已通知 SYSBIOS 团队。 他们的反馈将在此处发布。

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

    其他一些问题可能会为我澄清问题:

    -两个内核的配置(cfg)文件是否需要包含 SharedMemory 声明?

    -如果应用程序如此简单(只是尝试在 ARM 和 DSP 内核之间传递数据)、我是否需要大于"0"的共享存储器空间?

    -此处理器上的两个内核运行 IPC_START()是否有特定顺序?  (是否使用 IPC_attach(),取决于配置)?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    结果显示共享区0映射与 DDR 存储器重叠、而 DDR 存储器是 ARM 和 DSP 代码所在的位置。 将 SR0 (和 SR1)移到另一个部分(使用适当的平台配置)后、工作正常。

    对于这些问题、我是否可以获得不同类型的支持? 我不确定论坛方法是否对我很有效。