Глава 5, Драйверы встраиваемых устройств

Предыдущая  Содержание  Следующая V*D*V

Перенос драйверов устройств из других RTOS (Real-Time Operating System, Операционных Систем Реального Времени) для встраиваемого Linux является сложной работой. Драйверы устройств являются частью подсистемы ввода-вывода Linux.Подсистема ввода-вывода обеспечивает доступ для приложений к низкоуровневому оборудованию с использованием чётко определённого интерфейса системных вызовов. Рисунок 5.1 даёт общий обзор того, как приложения используют драйверы устройств.

 

Рисунок 5.1 Обзор архитектуры драйверов устройств Linux.

Рисунок 5.1 Обзор архитектуры драйверов устройств Linux.

 

Драйверы устройств в Linux делятся на три типа:

 

Драйверы символьных устройств: они используются для управления устройствами с последовательным доступом. Объём адресуемых данных не ограничен по размеру. Приложения обращаются к драйверам символьных устройств с помощью стандартных вызовов, таких как open, read, write. Например, драйвер последовательного порта является драйвером символьного устройства.

Драйверы блочных устройств: они используются для управления устройствами с произвольным доступом. Обмен данными происходит в терминах блоков. Драйверы блочных устройств используются для хранения файловых систем. В отличие от символьных драйверов, приложения не могут обращаться напрямую к драйверам блочных устройств; они могут быть доступны только через файловую систему. Файловая система монтируется на блочное устройство, в результате чего драйвер блочного устройства становится посредником между накопителем информации и файловой системой. Например, дисковый драйвер является драйвером блочного устройства.

Драйверы сетевых устройств: драйверы сетевых устройств рассматриваются как отдельный класс драйверов устройств, потому что они взаимодействуют со стеком сетевых протоколов. Приложения не обращаться к ним напрямую; с ними взаимодействует только сетевая подсистема.

 

Эта глава объясняет некоторые из наиболее часто используемых подсистем драйверов устройств на встраиваемых платформах. Мы обсуждаем последовательные, сетевые, I2C драйверы, а также драйверы периферийных устройств (gadget) USB и сторожевого таймера.

 

Предыдущая  Содержание  Следующая