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/AM5728:重新加载 DSP 后、IPC 主机应用程序收到传输错误

Guru**** 2582875 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/583679/linux-am5728-ipc-host-app-gets-transport-errors-after-dsp-is-reloaded

器件型号:AM5728

工具/软件:Linux

我在 AM57 (PSDK 3.2)上使用 IPC 消息队列示例2

当我重新绑定 DSP 时、IPC 主机应用程序会收到传输错误:  

TransportRpmsg_put:发送失败:108 (在传输端点关闭后无法发送)

如果我重新启动主机应用程序、它工作正常、  

如何在 重新加载 DSP 而不重新启动主机应用程序的情况下刷新 IPC 传输以获取 DSP MessageQ?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用]当我重新绑定 DSP 时、IPC 主机应用程序会收到传输错误:

    TransportRpmsg_put:发送失败:108 (在传输端点关闭后无法发送)[/quot]

    我在这里有点困惑。 我知道您的主机应用正在运行、当您重新绑定 DSP 时、对吧? 您能否共享您的序列、以便我可以在 AM57xx GP EVM 上对其进行测试。

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

    是的、启动时加载 DSP、主机应用正在运行。
    如果 DSP 被重新加载(解除绑定和绑定)、则主机应用程序会收到传输错误。

    循环中运行的传输线程(rpmsgThreadFxn)将打印出来
    Recvfrom 失败:链接已断开(67)
    rpmsgThreadFxn:FD 11上的 transportGet 失败、返回-20

    当我尝试发送消息时、我得到了

    TransportRpmsg_put:发送失败:108 (在传输端点关闭后无法发送)

    不知怎么说、我需要一种方法来检测它、并更新 Slave MessageQ 句柄或其他内容。

    由于我从 MessageQ_Put 收到错误、我想重置 MessageQ 传输。

    我尝试使用 Module.slaveQue 执行 IPC 停止/启动、然后执行 MessageQ_Close 和 MessageQ_open、
    但这不起作用。

    ipc_stop();

    /*配置运输工厂*/
    IPC_transportConfig (&TransportRpmsg_Factory);

    ipc_start();


    另一种方法是、我可以在主机应用程序中发送子程序、并向父应用程序发送错误信号、以终止并重新启动已链接的主机应用程序

    是否有办法对连接状态进行"重置"?

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

    如果您能找到解决您问题的方法、我会很感兴趣。 我还会定期在取消绑定/绑定 DSP 时看到"nameserver_getRemote:发送失败:108、在传输端点关闭后无法发送"错误。

    此外、40800000.DSP 甚至无法识别:

    bash-4.3# echo 40800000.dsp >/sys/bus/platform/drivers/omap-rproc/bind
    bash:echo:write error:no such device

    谢谢