тайминги высокого разрешения в ядре?

Я пишу модуль ядра, который требует, чтобы функция вызывалась с интервалом 0,1 мс, измеренным с точностью не менее 0,01 мс. Процессор ARM с тактовой частотой 250 МГц, переменная HZ (jiffies в секунду) равна 100, поэтому все, что основано на jiffies, не годится, если я не могу увеличить детализацию jiffies.

Есть предложения, где / как смотреть?


person SF.    schedule 14.10.2011    source источник


Ответы (1)


Предполагая, что в ядре, которое вы запускаете, включена поддержка таймера Hi-Res (это параметр конфигурации времени сборки) и что у вас есть подходящее оборудование таймера, которое может обеспечить необходимую поддержку для создания прерывания с такой степенью детализации, вы можете использовать в API ядра hrtimer, чтобы зарегистрировать таймер в соответствии с вашими требованиями.

Вот документация по hrtimer: http://www.mjmwired.net/kernel/Documentation/timers/hrtimers.txt

Однако помните, что для получения действительно непрерывных ответов в таком масштабе вам, скорее всего, также потребуется применить и настроить исправления Linux RT (также известные как PREEMPT_RT).

Вы можете узнать больше здесь: http://elinux.org/Real_Time

person gby    schedule 14.10.2011