/
Студентам/
ПОИП/
ЛР 3
Лабораторная работа #3
Разработка драйверов устройств для ОС Linux
Цель работы
Целью данной работы является изучение принципов разработки драйверов
символьных устройств для ОС Linux и написание простого драйвера для
встроенного динамика ЭВМ i386.
Порядок выполнения работы
- Изучить устройство таймера i8253/4 и алгоритмы работы с ним
(см. Лабораторную работу #1)
- Изучить основные правила написания драйверов символьных устройств
в ОС Linux
При изучении этих правил можно воспользоваться следующими материалами:
- Изучить исходные тексты шаблона драйвера (серия ядер 2.6)
- Дописать драйвер, реализовав функции
pc_speaker_setfrq(),
pc_speaker_on(),
pc_speaker_off()
Для работы с портами ввода-вывода используйте следующие макроопределения:
outb(val, port);
inb(port);
Первое из них предназначено для записи значения val
в порт номер port, возвращаемого значения не имеет. Второе
предназначено для чтения содержимого порта номер port,
возвращает, собственно, это содержимое.
- Для компиляции драйвера нужно выполнить команду
make -C /usr/src/linux M=`pwd` modules
(в каталоге, где находятся его исходные тексты)
- Загрузите драйвер (команда insmod).
После этого с помощью команды dmesg посмотрите
сообщения, выданные драйвером при загрузке. Кроме этого, посмотрите
информацию о специальном файле устройства, который
создается в процессе загрузки драйвера; сопоставьте
информацию об этом файле с исходным текстом драйвера
- Разработайте и отладьте программу (на языке программирования C или Pascal),
которая выводит на динамик заданную мелодию, используя для этого
обращения к драйверу
- Убедитесь в работоспособности драйвера и программы
- Проделайте следующие действия: во время работы
программы запустите ее второй экземпляр
(желательно проигрывающий другую мелодию).
Объясните наблюдаемую картину.
- Продемонстрируйте работу программы преподавателю
- Выгрузите драйвер (команда rmmod)
Пример более сложного драйвера
(драйвер магистрально-модульного приборного интерфейса CAMAC, для серии ядер 2.4)
Еще пример (подробно изучается в курсе лекций)
(драйвер модема, подключенного к SSC NGW100/Atmel AP7000)
Дата последней модификации: 2012-03-21
/
Студентам/
ПОИП/
ЛР 3