Реализация сигналов аппаратных часов в ядре Linux

Я ищу некоторые указатели для понимания того, как ядро ​​Linux реализует настройку различных аппаратных часов. Это в основном относится к работе с настройкой различных часов, которые будут использовать аппаратные функции, такие как ЖК-дисплей, UART и т. Д. Например, когда Linux загружается, как он обрабатывает настройку часов для UART или USB. Может быть, что-то вроде диспетчера часов или что-то в этом роде.

Я в основном пытаюсь реализовать что-то подобное для другой ОС на новом оборудовании, над которым я работаю.Любая помощь могла бы быть полезна.

[Изменить]
Спасибо за ответы и ссылки. Итак, вот что я реализовал до сих пор. Это должно дать вам представление о том, куда я направляюсь.

Я просмотрел Справочное руководство по аппаратному обеспечению для конкретной системы, на которую я нацелен, и написал код для отслеживания / изменения сигналов / контактов периферийных устройств, которые меня интересуют, т.е. их включения / выключения из командной строки. сбор этих часов / сигналов вместе управляет периферийным устройством. HRM сказал бы, что если вы хотите включить UART или что-то еще, включите такие-то сигналы / контакты. И @BjoernD: да, я использую что-то вроде функции mmap () для связи с периферийными устройствами.

Суть моего вопроса заключается в том, что я хочу разобраться в конструкции и реализации диспетчера часов / периферийных устройств, который использует уже написанную мной утилиту. Этот менеджер часов / периферийных устройств даст мне возможность управлять включением / отключением периферийных устройств, которые мне нужны. Обычно этот менеджер позволяет мне вносить изменения в код инициализации, который сейчас работает. Также во время выполнения процессы могут вызывать этот диспетчер для включения / выключения устройств, чтобы оптимизировать энергопотребление. Возможно, это не имело смысла, но я сам пытаюсь осознать это.

Теперь я уверен, что что-то подобное было бы реализовано в Linux или, если уж на то пошло, в любой другой ОС из-за проблем с производительностью (никто не захочет тратить энергию, включая все периферийные устройства во время загрузки). Я хочу понять его программную архитектуру. Ссылка из любой ОС на данный момент подойдет, по крайней мере, для начала. Кроме того, я не пишу свою собственную ОС, она уже есть, но я больше смотрю на программное обеспечение на уровне платы, известное как BSP, для работы. Но в любом случае спасибо за ссылку на ОС, они действительно хороши. Ценить это.

Спасибо!

12
задан The Stig 3 July 2011 в 02:41
поделиться