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/TM4C1290NCPDT:Tiva C NDK 连接问题。

Guru**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/656742/rtos-tm4c1290ncpdt-tiva-c-ndk-connection-issue

器件型号:TM4C1290NCPDT

工具/软件:TI-RTOS

您好!

我们客户基于 Tiva C 的应用程序使用 TIRTOS 并将 NDK 模块用于 TCP 客户端应用。
客户端(网关)和从器件(Tiva C)。

TI-RTOS veriosn - 2.16.01.14

启动后、TCP 连接在客户端请求后建立。
然后通过 NDK 的 recv()函数接收来自客户端的 MODBUS 请求
然后、在处理此请求后、使用 FIN ACK 关闭 TCP 连接
来自客户端的数据包。

TCP 连接请求->Modbus 请求->Modbus 应答->FIN ACK 请求

当这个过程被重复多次(大约10次)时、NDK 被击中并且
该控件不会从 recv()中退出。

请告诉我是否有任何解决此问题的想法。
以防我附加 Wireshark 日志详细信息 e2e.ti.com/.../RST-ACK.zip

此致
Paddu

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

    感谢您的详细描述。 只需确认一下、客户端的 IP 地址是10.240.1.130、TM4C 是10.240.1.56... 对吧?

    您是否可能内存不足? 当连接关闭时、您是否清洁 TM4C? 一个简单的测试是增加 NDK 的存储器并查看其运行时间是否更长。 下面是 NDK 中存储器使用情况的概述: processors.wiki.ti.com/.../TI-RTOS_Networking_Stack_Memory_Usage

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

    非常感谢您的快速回复!

    是的、客户端的 IP 地址为10.240.1.130、TM4C 为10.240.1.56。
    实际上、我们已经将主程序的堆栈/堆设置加倍。

    关于 NDK 中的存储器使用情况、
    我们是否必须增加 Wiki 中提到的内存管理器缓冲区、PBM 缓冲区、Netwrok 任务栈大小、缓冲区设置?

    实际上、我们尝试将"静态网络缓冲器"更改为60、
    结果是相同的(10次),但控制权是从 recv()中产生的,
    但它停留在任务关闭函数"TaskExit()"中。

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

    您可能不必增加内存、但我认为这可能会导致内存泄漏。

    您可以在 NDK 中启用调试。 查看 NDK 用户指南的"应用调试和故障排除"部分、了解如何启用调试输出。

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

    这是否得到了解决?

    Todd