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/BEAGLEBK:实时发送 UDP 数据包

Guru**** 2589265 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/591063/linux-beaglebk-transmit-udp-packet-in-real-time

器件型号:BEAGLEBK

工具/软件:Linux

我在 Linux 中传输1ms 循环流量时遇到问题、它将导致大约2ms 的抖动。 我想使用 BeagleBone 的 PRU 来实现这一点。 是否可以使用 PRU 精确地传输1ms 周期性 UDP 流量?

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

    您能否提供有关您正在使用的 SDK 的更多详细信息? 是 RT (实时)版本还是普通 Linux? 您能描述抖动测量环境吗?

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

    尊敬的 Tsvetolin:

    我通过以下链接使用 SDK-RTOS-AM335x。

    http://software-dl.ti.com/processor-sdk-rtos/esd/AM335X/latest/index_FDS.html

    我将 BeagleBone 直接连接到我的 PC (windows 7 64位)、并让 BeagleBone 每1ms 在用户空间中发送一次 UDP 流量(简单的套接字程序)(使用 nanosleep()提高时间精度)。 我使用 PC 上的 Wireshark 来监控流量。 在大多数情况下、抖动在1ms 内。 但最大抖动将超过2ms。 是否可以精确地发送数据包?

    此致、

    Daryl Lin

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

    Daryl、

    默认情况下、用户空间中的网络堆栈具有低优先级、2ms 的抖动是预期行为。 有一些更改 CPU 调度的技术、但它对系统的稳定性非常危险、并且有可能卡住。 您可以尝试在网络中搜索"如何设置 SCHED_FIFO"以将调度程序属性更改为 SCHED_FIFO、或参阅以下说明:
    access.redhat.com/.../1174673
    man7.org/.../sched.7.html
    www.admon.org/.../

    BR
    Tsvetolin Shulev

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

    尊敬 的 Tsvetolin:

    感谢您的回答。 我发现我的错误是没有注意到 BeagleBone 没有从 SD 卡引导。 我认为它运行的是 TI-RTOS、但它实际上运行的是 Linux RT。 也许我应该删除这个主题...