синхронизация с высоким разрешением в ядре? - PullRequest
1 голос
/ 14 октября 2011

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

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

1 Ответ

4 голосов
/ 14 октября 2011

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

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

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

Вы можете прочитать больше здесь: http://elinux.org/Real_Time

...