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.

[参考译文] AM6422:rpmsg send

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1523883/am6422-rpmsg-send

器件型号:AM6422

工具/软件:

您好、关于在 Linux 和 RTOS 之间使用 SDK 8.6进行的内核间通信(其中每帧仅传输512字节(496字节实际有效)、只需修改基于消息的方法即可将每帧传输的数据长度从512字节增加到1024字节或更多字节是否可行? 如果可能、需要对实时内核(RTOS)和非实时内核(Linux)器件进行哪些修改? 如果不可能、请解释具体原因吗? 目前、我们倾向于不使用共享 RAM 来实现此目的。 非常感谢!

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

    您好:

    有关专家今天已离职。 请预计响应会延迟。 如果您在下周星期三之前没有回复、请随时 ping 通此主题。

    此致、

    Nihar Potturu。  

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

    您好、Wanglili、

    不可以、TI 不支持为 Linux 和 MCU+ SDK 之间的消息增加 RPMsg 数据帧的大小。

    两个 MCU+实例之间的 RPMsg 确实支持配置缓冲区大小。 但是、Linux RPMsg 框架需要一个512字节的固定缓冲区和16字节的标头。

    更多信息、请参阅 MCU+ SDK 的 RPMsg 驱动程序文档:
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/10_01_00_32/exports/docs/api_guide_am64x/DRIVERS_IPC_RPMESSAGE_PAGE.html 

    此致、

    Nick

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

    您好、

       当您说不支持修改(长度)时、您的意思是、即使修改内核、我们仍然不能将长度增加到超过512? 这是什么决定因素? 我在 Linux 源代码中找到了以下代码片段。 根据我的理解,这两个定义可以修改,但在实践中,更改在我修改后没有生效。 能否介绍一下这个器件?

       

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

    您好、Wanglili、

    更改 RPMsg 缓冲区的大小

    我们可以在这些论坛上回答有关 TI 软件的问题、但我们不支持有关修改 TI 软件以进行定制的问题。

    Linux RPMsg 框架不支持除512字节之外的任何缓冲区大小。 此值可能被硬编码到 remoteproc、rpmsg、virtio 驱动程序中的许多不同文件中。

    更改 RPMsg 缓冲区的数量

    我希望我们能够从每个方向的256个缓冲区(总共512个、256个 RX 和256个 TX)中修改 virtio 缓冲区的数量。 然而,我上次尝试深入研究它时,我无法让它工作。 如果你能得到一个减少的 virtio 缓冲器的工作,我想看看你做了什么,以便我可以记录它。

    virtio 缓冲区的数量应在 MCU+项目的资源表中列出。 用户所指的这些变量会列出最大缓冲区数量。 如果不重新检查驱动程序、我认为它被视为上限、而不是实际的缓冲区数量。

    对我来说、PRU RPMsg 默认情况下在每个方向使用16个缓冲器、而不是256个缓冲器。 也许我们可以将其用作模板、以确定为 R5内核执行类似的操作需要进行哪些更改。

    以下是 PRU 资源表:
    https://git.ti.com/cgit/pru-software-support-package/pru-software-support-package/tree/examples/am64x/PRU_RPMsg_Echo_Interrupt 0/resource_table.h

    在 Linux SDK 8.6中、PRU rpmsg 使用与 MCU+内核不同的驱动程序。 直到 SDK 11.1将组合 PRU RPMsg 驱动程序和 MCU+内核的 RPMsg 驱动程序时、我们才会这样做。

    此致、

    Nick