我开发了一个嵌入式系统(Linux 和 C),可以手动读取两个传感器(5Hz 和 200Hz)轮询,检查两个文件中是否有可用数据。
现在,我想使用 Poll 或 Select POSIX 功能来节省 CPU 使用率。我一直在阅读有关它以及套接字中一些可能的延迟的信息。我想知道 poll 和 select 函数是否很慢,或者我读过的这个“延迟”只是微不足道的。
传感器每 5 毫秒发送一次数据,算法可能需要 1-2 毫秒(卡尔曼滤波器)。因此,系统在下一个传感器样本之前有 2-3 毫秒的时间,否则对于我的应用程序来说太慢了。
轮询和选择机制都旨在达到相同的目的。通过this链接。这将有助于深入了解这两种机制的性能。之后你就可以做出决定了。
对于
Poll
机制,请通过 man poll 页面了解更多信息。
对于
select
机制,请通过 man select 页面了解更多信息。我建议仔细阅读它的Multithreaded applications section
。
还要看看
epoll
机制。这可以帮助您拓宽您的实施思路。