【发布时间】:2011-10-14 16:02:14
【问题描述】:
我正在编写一个内核模块,该模块需要以 0.1ms 的间隔调用函数,并以至少 0.01ms 的精度进行测量。 250MHz ARM CPU,HZ 变量(每秒 jiffies)是 100,所以任何基于 jiffies 的东西都是不行的,除非我可以增加 jiffies 粒度。
有什么建议在哪里/如何看?
【问题讨论】:
标签: linux-kernel timing high-resolution-clock
我正在编写一个内核模块,该模块需要以 0.1ms 的间隔调用函数,并以至少 0.01ms 的精度进行测量。 250MHz ARM CPU,HZ 变量(每秒 jiffies)是 100,所以任何基于 jiffies 的东西都是不行的,除非我可以增加 jiffies 粒度。
有什么建议在哪里/如何看?
【问题讨论】:
标签: linux-kernel timing high-resolution-clock
假设您正在运行的内核启用了高分辨率计时器支持(这是一个构建时间配置选项)并且您有一个适当的计时器硬件可以提供所需的支持来以这种粒度引发中断,您可以使用内核中的 hrtimer API 来根据您的要求注册一个计时器。
这里是 hrtimer 文档:http://www.mjmwired.net/kernel/Documentation/timers/hrtimers.txt
请记住,要真正获得如此大规模的不间断响应,您很可能还需要应用和配置 Linux RT(又名 PREEMPT_RT)补丁。
您可以在这里阅读更多内容:http://elinux.org/Real_Time
【讨论】: