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.

[参考译文] AM625:RPMessage 字符设备文件不显示在/dev 中

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1516946/am625-rpmessage-character-device-files-do-not-appear-in-dev

器件型号:AM625

工具/软件:

尊敬的 TI 团队

我正在尝试让 RPMessage 处理 AM625的 Yocto 构建的映像、但字符设备文件不会显示在/dev 中、即使鼠标已加载且 MCU 宣布其服务也是如此。 我已经有一个使用 Phytec 公司图像的工作示例、但由于我不再使用他们的电路板、因此我想返回到仅由 TI 提供的构建。 不幸的是,我找不到两者之间的任何显著差异,以找到错误。

你有什么想法我可能会错过? 非常感谢!

请检查文本文件以了解有关我的系统和我正在执行的操作的信息。

e2e.ti.com/.../RPMsg_5F00_Debug_5F00_Info.txt

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

    您好 Leon、

    到目前为止,一切都是我所期待的…… 您能否向我展示无法运行的代码?

    根据您将 RPMsg 端点定义为0x1的事实、我假设您不再使用默认的 IPC RPMsg 回波示例(默认情况下定义了13和14的端点)。 https://github.com/TexasInstruments/mcupsdk-core-k3/blob/k3_main/examples/drivers/ipc/ipc_rpmsg_echo_linux/ipc_rpmsg_echo.c

    另外、请在 MCU+代码中向我显示您的服务和终点定义。

    我想确保您正在定义 Linux 可以识别的服务名称、因为服务名称 最近发生了一些变化。   有关 ti.ipc4.ping-pong 的讨论、请参阅 e2e.ti.com/.../faq-am625-how-to-get-the-linux-kernel-rpmsg-example-working-on-linux-sdk-10-0-10-1-11-0。 在 rpmsg-char  驱动程序中、rpmsg_crdev 与 rpmsg-raw 之间也有类似的讨论。

    此致、

    Nick

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

    您好、Nick、

    非常感谢您的快速响应。

    以下是 Linux 和 MCU 的两个代码片段(当然、已经细分了很多):

    e2e.ti.com/.../Failing_5F00_code_5F00_Linux.txt

    e2e.ti.com/.../Code_5F00_MCU.txt

    此致、

    Leon

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

    您好、Nick、

    我刚刚经历了一些奇怪的事情:我将内核从正常更改为 RT (6.1.119)并将设备映射器支持添加到内核配置-看起来不相关。 但现在 rpmsg 设备文件 rpmsg0/1和 rpmsg0/1_ctrl 突然出现并起作用了!

    这可能是什么原因造成的? 我不知道在那里发生了什么...

    谢谢

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

    您好 Leon、

    很高兴听到现在的事情正在运作! 现在、反向工程实际发生了什么...

    您是否确定了哪些变化导致事情开始工作? (即从正常切换到 RT 内核、或添加设备映射器支持)

    今天之前我还没有查看过设备映射器。 我不知道用户空间 RPMsg 通信取决于该驱动程序,但我将做更多的挖掘.

    如果更改内核版本导致事情开始工作,如果你能精确地指向你正在使用的内核存储库和版本,那就好了。

    例如、如果"normal"内核是上游内核、但 RT 内核是 ti-RT-linux-6.1.y、我可以告诉您、我们在内核6.1 ti-linux-kernel 中绝对包含一些与 remoteproc 和 rpmsg 相关且尚未上传的补丁: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-rt-linux-6.1.y

    此致、

    Nick

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

    您好、Nick、

    我没有发现它是否是设备映射器,但我很难相信它。

    在这两种情况下、内核版本均为6.1.119。

    还有其他奇怪的副作用:例如,在正常内核中,我有没有 SCP 的 SSH,在 RT 内部版本中,我有 SCP。 为什么这与内核有任何关系对我来说是完全不清楚的。

    此致、

    Leon