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/TM4C129XNCZAD:如果网络上的目标 IP 单元为 n#39;t、则 NDK 被阻止

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/590798/rtos-tm4c129xnczad-ndk-is-block-if-the-target-ip-unit-isn-t-on-the-network

器件型号:TM4C129XNCZAD

工具/软件:TI-RTOS

您好!

我正在使用

- CCS 版本:6.1.0.00104、
- TIRTOS:tirtos_tivac_2_16_01_14

- xdctools_3_32_01_22_core

我的客户端有一个很大的问题、我们正在为客户端提供定制的 VoIP、并且我们正在使用 UDP 套接字将语音部分解压到大量节点。 如果其中一个目标出于任何原因关闭、UDP 封包将不会传输、并且稍后返回错误将是 sendto 的55 。

由于关闭单元、NDK 中的内部缓冲区将满、这是一个大问题、它将阻止任何传输到开启单元的试验、直到缓冲区被自身清除。 这将导致语音抖动。

因此、请提供建议、如何在 NDK 中解决此问题?

此致、

Mohammed Fawzy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您使用的是 IPv4还是 IPv6?
    UDP 数据包的大小是多少?
    您有多少个插座?
    您对以下内容有哪些值;
    -Global. pktNumFrameBuf
    -Global. pktSizeFrameBuf
    - Global. memRawPageCount
    - Global. memRawPageSize
    -默认系统堆(可能是 BIOS.heapSize)

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

    您使用的是 IPv4还是 IPv6? 我们同时使用这两者

    UDP 数据包的大小是多少? 可变长度从23字节到1000字节

    您有多少个插座? 我们有 http 服务器、http 客户端、3个 UDP IPv4、2个 UDP IPv6、1个 TCP IPv4和1个 TCP IPv6

    您有以下哪些值;

    -Global. pktNumFrameBufs 11.

    -Global. pktSizeFrameBuf  1536

    - Global. memRawPageCount 12.

    - Global. memRawPageSize 2048

    -默认系统堆(可能是 BIOS.heapSize)我们正在系统中使用两个堆、请检查所附的 cfg 文件

    e2e.ti.com/.../1832.ICG.cfg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。 是否可以将 Global. pktNumFrameBuf 增加到更大的值...比如32或64?

    供参考...下面是有关 NDK 中存储器使用情况的说明: processors.wiki.ti.com/.../TI-RTOS_Networking_Stack_Memory_Usage

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

    当然、增大缓冲区大小无法解决我的问题、因为我将向大约30个目标发送数百个数据包(语音数据包)、如果其中一个由于任何原因而关闭、NDK 的内部缓冲区将会满、无论其大小如何。 我将得到误差(55)。

    我知道内部缓冲器会在一段时间后释放。

    那么、如果目标 IP 在网络上不可用、为什么数据包要等很长时间才能发布?

    如何减少此延迟?

    正如我提到的、我正在发送语音数据包、内部堆栈可能导致数据包之间的延迟会导致语音抖动、因此使用 NDK 堆栈是否是我的应用的可行解决方案?

    无论如何、请找到所附的简单演示我的问题。

    谢谢、

    e2e.ti.com/.../udpEcho_5F00_DK_5F00_TM4C129X_5F00_TI.rar

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

    有关此主题的任何更新?

    谢谢、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    目前仍在研究这一问题。 您是否有任何更新? 注意:我将其移至器件论坛、只是为了进行家居清洁。

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