【问题标题】:Fast periodic tasks in RT LinuxRT Linux 中的快速周期性任务
【发布时间】:2010-01-06 22:49:08
【问题描述】:

RT Linux 可以执行(实时)周期性任务的最短间隔是多少?

我正在研究用于科学数据采集应用的硬件与软件解决方案。要求包括以大约 40kHz 的频率对生理过程进行实时反馈控制。有硬件解决方案(使用可编程 DSP 芯片),但我很好奇实时 linux 任务是否可以处理整个问题。任务很简单:从 A/D 板读取样本,执行一些简单的算术运算,然后将样本写入 A/D 板。 RT Linux 可以将这个任务调度到 40k 次/秒还是这个速度不合理?

如果我们可以在 CPU 上执行周期性任务,我们就可以编写应用程序而无需依赖硬件。如果没有,我们将不得不使用混合 CPU/DSP 系统。显然,我希望是前者。

【问题讨论】:

    标签: linux real-time


    【解决方案1】:

    根据http://www.ibm.com/developerworks/linux/library/l-real-time-linux/,即使是在不错的处理器上的非 RT linux 也可以提供平均 20μs 的计时器间隔,对应于 50kHz。同一篇文章提到,带有一些 RT 模块的 2.6 内核中的高分辨率计时器可以提供 1μs 的间隔,或 1000kHz。因此,我认为期望 RT 内核能够可靠地提供 40kHz 并不是不合理的。

    【讨论】:

    • non-RT linux 可以很容易地提供平均 50kHz,但是这个系统的要求是最坏情况下的 40kHz,所以 non-RT linux 被淘汰了。计时器的分辨率并不能保证它可以以特定的速率定期触发;可能是您可以让计时器以 232µs 的频率定期触发,但 20µs 太快了。
    • 是的.. 我的观点是,如果非 RT 平均可以提供 50k (由于某些间隔被抢占,导致延迟),那么 RT系统应该能够可靠地提供 40k。我并不是建议您使用非 RT,只是将其用作“最坏情况”的比较。
    猜你喜欢
    • 1970-01-01
    • 2012-01-08
    • 2019-05-25
    • 2015-04-11
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多