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.
你好
我希望从 Linux 尝试一个简单的 RPMsg 回声到 R5F 内核、然后再尝试一次。 对于 R5F 内核、我使用了 MCU SDK 中的演示工程。 但是、我在使用 Linux 部分时遇到了麻烦。 当我检查 EVM 上/dev 目录的内容时、我发现了以下字符器件文件:rpmsg0 ... rpmsg4和 rpmsg_ctrl0 ... rpmsg_ctrl3。
在我的初始测试中、我希望像附件中一样从 rpmsg0文件中写入和读取。 启动 R5F 演示项目后,我想从附件启动该程序,但事实证明 rpmsg0和 rpmsg1消失了。 这可能是什么原因造成的?
我不知道我的方法是否正确。 我找不到有关如何使用这些器件文件及其功能的任何文档。 是否有相关文档? 我的在线研究总是引导我 在这里,但这个例子没有回答我的问题。 最后、我只希望能够从远程内核(R5F、M4F 和 PRU)收发消息。
如果您能为 Linux 提供有关 RPMsg 的任何帮助、我将不胜感激。
非常感谢
莱昂·里戈尼
加法:
我在第一个 R5F 内核上运行示例项目 ipc_rpmsg_echo_linux_am64x-evm_r5fss0-0_freertos_ti-arm-clang。 使用调试器我发现 FreeRTOS 任务在第300行阻断: 状态= RPMessage_waitForLinuxReady(SystemP_WAIT_FOREVERLY );。
我必须在 Linux 端做些什么才能向远程内核发出 Linux 已准备就绪的信号? Linux 学院中关于 RPMsg 状态的要点4
但是 Linux 是如何启动这种消息交换的呢? 我在任何地方都找不到演示。 我曾尝试在附件中以一个/dev/rpmsgX 设备文件作为参数运行该应用程序、但从未收到任何消息。
许多 thankse2e.ti.com/.../rpmsg_5F00_demo.c
利昂
您好、Leon、
对于 R5F 的初始化卡在 状态= RPMessage_waitForLinuxReady (SystemP_WAIT_FOREVER);、请参阅我们在上一主题中的讨论: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1289532/am6442-problems-loading-demo-project-into-r5f-from-linux
R5F 代码正在等待 Linux 返回、并表示它已初始化 DDR 中的资源表、并指向用于 RPMsg 通信的 VRING 位置。 如果您从 CCS (而不是从 Linux)启动 R5F、那么 Linux 将永远不会知道 R5F 已初始化并正在等待。
请确保按照"在 Linux 运行时通过 CCS 调试远程内核程序"部分中的步骤操作、确保首先让 Linux 初始化 R5F、然后仅将 CCS 连接到 R5F (而不是使用 CCS 重新加载固件): https://dev.ti.com/tirex/explore/node?node=A__AVn3JGT9fqm0PbS.pegO-g__AM62-ACADEMY__uiYMDcq__LATEST
有关如何使用 RPMsg 的指导、请在此处查看入门文档:
https://dev.ti.com/tirex/explore/node?node=A__AAtN.uvfmDSx4mvQ7f4R.w__linux_academy_am64x__7qm9DIS__LATEST (AM64x 版本)
https://dev.ti.com/tirex/explore/node?node=A__AXINfJJ0T8V7CR5pTK41ww__AM62-ACADEMY__uiYMDcq__LATEST (AM62x 版本)
然后、如需了解更多详细信息、请参阅此处的 RPMsg 文档:
https://dev.ti.com/tirex/explore/node?node=A__AVjm7chph.4Q-bCWodAr.w__AM62-ACADEMY__uiYMDcq__LATEST
此致、
尼克