【问题标题】:How can I execute a task at an exact rate of 4kHz in Linux (with PREEMPT-RT if necessary)如何在 Linux 中以 4kHz 的精确速率执行任务(必要时使用 PREEMPT-RT)
【发布时间】:2014-02-19 22:28:29
【问题描述】:

在我的嵌入式 C 代码中,我需要以准确的 4kHz 速率运行一个函数来模拟一些波形。我正在运行一些带有 PREEMPT-RT 补丁的 Linux 3.10 内核。这个问题与这篇文章非常相似: Linux' hrtimer - microsecond precision? 但我的特殊问题是:最近的 PREEMPT-RT 内核是否为此目的提供了一些用户 API 或更方便的方式?

【问题讨论】:

    标签: linux embedded kernel real-time


    【解决方案1】:

    我刚刚提出了一个使用 Xenomai 框架的替代解决方案。我在我的 Linux 中构建并安装了 Xenomai,并安装了 Xenomai 用户空间支持。然后有一个简单的 API rt_task_set_periodic 允许您精确地安排周期性任务。 这是示例: https://github.com/meeusr/xenomai-forge/blob/master/examples/native/trivial-periodic.c

    【讨论】:

      【解决方案2】:

      在我看来.. 不。 PREEMPT_RT 只让内核在需要时被中断。我个人的意见是尝试找到一个延迟程序并用示波器对其进行微调。

      我有一个类似的问题,我发现“睡眠”和“睡眠”不是那么准确,我最终编写了自己的延迟例程。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-15
        • 1970-01-01
        • 2016-03-22
        • 2021-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多