|
这种抖动的原因可能与启动时Linux实时控制器的随机种子生产有关。在系统每次启动时,Linux从IO活动获得随机字节存储到/dev/random和/dev/urandom。此操作无具体限制;它可能发生在任何位置,需要从几秒到几个小时,但平均来说,需要几分钟。如果这个过程在实时应用程序开始执行之前没有完成,它可能在相当慢的循环速率下引起实时高优先级VI的抖动。例如,在启动后几分钟内,您可能会看到FPGA中实时VI在1kHz的循环中产生偶发延迟。
有几种方法可以防止这种情况对系统产生负面影响: ·
此问题存在于所有版本的NI Linux Real-Time
人工生成随机种子
如果发现由此过程引起的抖动在你的系统上是不可预测的,那么想要消除这种不确定性,您可以自己生成人工随机种子。重要的是注意人工生成随机种子具有安全隐患 - 生成假熵理论上使用任何随机生成的数据,如SWS / AWS中的X509证书,SSL会话密钥和密码更可预测,因此更容易受到暴力破解。
见附件一个简单的C示例程序。此程序需要以root用户身份运行。
http://www.ni.com/product-documentation/53098/en/
https://decibel.ni.com/content/groups/ni-linux-real-time
http://www.ni.com/tutorial/52578/en/
|