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.

[参考译文] RTOS/TM4C129ENCPDT:使用多个 TCP 客户端时、TI NDK 会挂起

Guru**** 2617695 points

Other Parts Discussed in Thread: TM4C129ENCPDT

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/578756/rtos-tm4c129encpdt-ti-ndk-gets-hanged-while-using-multiple-tcp-clients

器件型号:TM4C129ENCPDT

工具/软件:TI-RTOS

大家好、

我不熟悉 TI e2e 论坛。 我目前正在从事一个串行(RS232)转以太网转换器项目。

我的工作环境如下:

控制器- TM4C129ENCPDT

2. TI RTOS 版本:2.1.0.03

NDK 版本:2.24.0.11

我的原型板有一个 RS232端口和一个以太网板。 目前有5台 TCP 服务器在从设备上运行5个 TCP 连接。

我必须将来自 RS232的任何数据推送到5个 TCP 从设备、反之亦然。 一个时刻的最大数据长度、我假设为255字节。  

此项目可用于 TCP 连接上的少量数据流量。 我的意思是、如果我以最短时间延迟2-3秒、最大10字节的时间间隔推送数据。

但是、当我反复推送数据(255字节)时、几秒钟后所有 TCP 任务都会被阻止。

能不能有人告诉我问题是什么。

谢谢、此致、

Renil Raju  

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有任何原因阻止您升级到支持 Tiva 的最新 TI-RTOS 产品?

    software-dl.ti.com/.../index.html

    这样、我们就可以排除自2.01发布以来两年内已解决的故障。

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

    感谢您的回复。

    目前、我们正在基于"TI RTOS 版本:2.1.0.03"执行我们的所有项目。 因此、如果我要迁移到最新版本、我认为这会导致支持较旧项目的问题。

    您能告诉我这是 TI RTOS 版本2.1.0.03的已知问题吗?

    在我的当前项目中、我将不断地将串行数据推送到 TCP 客户端。 如果我做出任何延迟、它会解决这个问题吗?

    谢谢、此致、

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

    software-dl.ti.com/.../

    没有什么突出的。

    您是否有可能超出 PBM? 您需要定期为接收端提供服务、以便可用的 PBM 池不会被耗尽。

    此论坛讨论是否以任何方式有所帮助?:

    e2e.ti.com/.../490959

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

    尊敬的 Alan:

    非常感谢您的回复。

    问题是 、我一直将数据直接从 UART 推送到 TCP 客户端、在我的代码中、我使用了20ms 的固定延迟

    UART 读取超时。

    因此、只要使用较低的波特率、它就会将数据分为几个部分、并逐个发送到 TCP。 现在我更改了程序逻辑、以便它将根据配置的 UART 参数计算所需的超时、因此这将等待整个数据集、并作为一个块传输。

    上述逻辑 暂时解决了我的问题,但我不确定这是实际的问题。

    Alan 能否让您了解一下我的 PBM 配置、并建议我选择最佳缓冲区大小。 从 UART 到 TCP 客户端的最大数据大小为255字节一次性。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您将'readTimeout'设置为零,则 UART_read()将仅在收到请求的字节数后返回。 这是否适合您?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Alan:

    抱歉我迟到了。

    现在、使用 UART 读回调用函数方法可以解决该问题、并且可以按预期工作。

    非常感谢您在讨论期间的支持。

    谢谢、此致、

    Renil Raju