在我的嵌入式C代码中,我需要以精确的4kHz速率运行函数来模拟某些波形。我正在使用PREEMPT-RT补丁运行一些Linux 3.10内核。问题与这篇文章非常相似: Linux' hrtimer - microsecond precision? 但我的特殊问题是:最近的PREEMPT-RT内核是否提供了一些用户API或更便捷的方式用于此目的?
答案 0 :(得分:2)
我刚刚使用Xenomai框架提出了另一种解决方案。我在我的Linux中构建并安装了Xenomai,并安装了Xenomai用户空间支持。然后有一个简单的API rt_task_set_periodic允许您精确地安排周期性任务。 这是一个例子: https://github.com/meeusr/xenomai-forge/blob/master/examples/native/trivial-periodic.c
答案 1 :(得分:1)
在我看来..没有。 如果需要,PREEMPT_RT只允许内核被中断。我个人的意见是尝试找到一个延迟程序,并在示波器上进行修整。
我有一个类似的问题,我发现“睡眠”和“睡眠”都不是那么准确,我最终编写了自己的延迟程序。
希望这有帮助。