Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Драйвер для клавиатуры  (Прочитано 2666 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Lilyok

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Драйвер для клавиатуры
« : 30 Март 2010, 04:19:17 »
Нужно написать драйвер клавиатуры на уровне ядра, который хотя бы частично реализовывал функции музыкального синтезатора.
#Сразу оговорюсь, клавиатура у ноутбука.
Хотелось бы узнать, с чего начинать.  ???
« Последнее редактирование: 30 Март 2010, 04:23:08 от Lilyok »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Драйвер для клавиатуры
« Ответ #1 : 30 Март 2010, 05:58:46 »
Мммм... с психиатра =) Или с университета по соответствующей специальности (программирование).
Ядро отвечает за обработку прерываний от клавиатуры. Дальше сканкоды клавиатуры переводятся и наименования клавиш добавляется информация о состоянии модификаторов и это отдается на уровень выше. Это все чем является драйвер клавиатуры. (ну там плюс некоторая инициализация по мелочи, но оно отрабатывает 1 раз при старте системы)
Уровнем выше лежит драйвер терминала. Это он отвечает за рисование буковок на экране и интерпритацию имен клавиш+модификаторов в циферки и буковки в нужной кодировке. как это ни странно но драйвер терминала тоже находится в ядре (хотя не странно linux это изначально "маленькая терминальная программка" которую Торвальдс написал для того чтобы коннектиться к настоящим UNIX'ам в университете, учите историю)
read/write - это работа с терминалом (с дескриптором его устройства).
printf/scanf - это уже стандартная C'шная библиотека (пользуется read/write)
это было немного теории

а теперь ложка дегтя. на сколько я помню обычная клавиатура (а в ноуте обычная клавиатура) аппаратно не может обрабатывать нажатие скольки то там клавиш одновременно (если я не прав поправьте меня). так что синтезатор врядли получится. ну разве что по одной/две ноты за раз.

Оффлайн Lilyok

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Драйвер для клавиатуры
« Ответ #2 : 30 Март 2010, 23:44:43 »
Как раз университет по соответствующей специальности (программирование) выдал задание - написать именно драйвер клавиатуры на уровне ядра.
Как написать драйвер для клавиатуры?

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Драйвер для клавиатуры
« Ответ #3 : 31 Март 2010, 05:32:13 »
Как все плохо...
Читай Таненбаума Операционные системы. Может дойдет что к чему. Есть еще Гук М. Ю. Аппаратные средства IBM PC
должно помоч но не сразу. а постом выше я уже написал тебе как это все происходит.
кстати можно попросить более адекватное задание

 

Страница сгенерирована за 0.054 секунд. Запросов: 24.