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.

[参考译文] TMS570LC4357:除非 RX 后跟 TX、否则 lwIP 停止接收

Guru**** 2406520 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/792740/tms570lc4357-lwip-stops-receiving-unless-rx-followed-by-tx

器件型号:TMS570LC4357

您好!

我有一个使用 lwIP 的实现,它显示出一个奇怪的问题,我希望有人可以提供一些见解或提示:)  

接收到的第一条消息会立即调用 tcp_recv 并进行处理。

2.在调用 tcp_recv 之前,第二条消息可能需要5到10s。

3.第三类等在向 TMS570发送数据和进行回调之间可能需要很长时间(或永远)。

我的代码基于以下回显服务器: https://github.com/dreamcat4/lwip/blob/master/contrib/apps/tcpecho_raw/echo.c

请注意、在回显服务器的初始实现中、不会出现此问题、但是、我的实现会将读取和写入分开(例如、它不再是回显服务器)。 因此、在读取时会解析/存储消息、然后释放 pbuf 并调用 tcp_recved、而不是将其发送回。 如果我在存储消息后插入了一个 tcp_write、并且在我取消分配 pbuf 之前仅发回一些随机(常量)字符串-每个人都将再次工作(接收后续数据包时没有延迟)。 我很难解释原因。 是否有人发现回显服务器代码存在问题、如果不要求它发送数据、它就会停止工作?

看起来差不多有点像 :https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/675413?RM46L852-Modbus-Over-TCP-IP-control-hand-in-TCP-Rx-interrupt 

顺便提一下- lwIP v2是推荐使用还是可用于此微控制器、还是仅为1.4.1?

谢谢、

Thomas

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

    我们的 LWIP 演示仅适用于1.4.1 TCP/IP 堆栈。 我们没有计划将 v2端口连接到我们的 EMAC 驱动程序。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    啊,好的,我会坚持1.4,谢谢你们。

    我已在下面上传代码。 请注意、在函数 CONT_READ 中、如果我删除"tcp_write(tpcb、"ack"、3、1);"这一行、我会在接收后续消息之前开始遇到极端延迟。

    有什么想法吗?

    谢谢、

    Thomas

    e2e.ti.com/.../7838.echo_5F00_mod.c

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

    我将邀请我们的以太网专家来看看。 很抱歉耽误你的时间。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 QJ -期待再次听到:)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Thomas:

    我希望你们已经解决了这个问题。 很抱歉、我没有得到专家的建议。