器件型号:BEAGLEBK
工具/软件:Linux
我在 Linux 中传输1ms 循环流量时遇到问题、它将导致大约2ms 的抖动。 我想使用 BeagleBone 的 PRU 来实现这一点。 是否可以使用 PRU 精确地传输1ms 周期性 UDP 流量?
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.
器件型号:BEAGLEBK
工具/软件:Linux
我在 Linux 中传输1ms 循环流量时遇到问题、它将导致大约2ms 的抖动。 我想使用 BeagleBone 的 PRU 来实现这一点。 是否可以使用 PRU 精确地传输1ms 周期性 UDP 流量?
尊敬的 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