我正在编写一个内核模块,需要以0.1ms的间隔调用函数,测量精度至少为0.01ms。 250MHz ARM CPU,HZ变量(每秒jiffies)为100,所以任何基于jiffies的东西都是禁止的,除非我可以增加jiffies的粒度。
任何建议在哪里/如何看?
答案 0 :(得分:4)
假设您运行的内核启用了Hi-Res计时器支持(它是一个构建时配置选项),并且您有一个适当的计时器硬件,可以提供所需的支持来提高这种粒度的中断,可以使用in kernel hrtimer API根据您的要求注册计时器。
以下是hrtimer文档:http://www.mjmwired.net/kernel/Documentation/timers/hrtimers.txt
但请注意,为了真正获得如此大规模的不间断响应,您很可能还需要应用和配置Linux RT(也称为PREEMPT_RT)补丁。
您可以在此处阅读更多内容:http://elinux.org/Real_Time