工具/软件:Linux
我在 AM57 (PSDK 3.2)上使用 IPC 消息队列示例2
当我重新绑定 DSP 时、IPC 主机应用程序会收到传输错误:
TransportRpmsg_put:发送失败:108 (在传输端点关闭后无法发送)
如果我重新启动主机应用程序、它工作正常、
如何在 重新加载 DSP 而不重新启动主机应用程序的情况下刷新 IPC 传输以获取 DSP MessageQ?
谢谢
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
我在 AM57 (PSDK 3.2)上使用 IPC 消息队列示例2
当我重新绑定 DSP 时、IPC 主机应用程序会收到传输错误:
TransportRpmsg_put:发送失败:108 (在传输端点关闭后无法发送)
如果我重新启动主机应用程序、它工作正常、
如何在 重新加载 DSP 而不重新启动主机应用程序的情况下刷新 IPC 传输以获取 DSP MessageQ?
谢谢
是的、启动时加载 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
谢谢