На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! Правила раздела Hardware:
1. Если вы не уверены в правильности ответа, напишите об этом, или не отвечайте вообще, не давайте дезинформацию!
2. Не забывайте указывать полное наименование, модель, изготовителя и краткие характеристики оборудования.
3. Аргументируйте свое мнение - приводите развернутое высказывание или источник информации.
4. Прежде чем задать вопрос посмотрите, нет ли ответа на него на перечисленных ниже ресурсах:
FAQ
Полезные ссылки
www.ixbt.com
www.overclockers.ru
www.fcenter.ru
www.3dnews.ru
www.thg.ru
www.nvworld.ru
www.radeon2.ru

Здесь вы можете выразить мнение о модераторе этого раздела, ^D^ima.
Модераторы: DimA3
  
> Ликбез по hardware и нижнему слою software, Нужна помощь в освоении материала
Можете помочь? Можно в двух словах объяснить и дать ссылку на ресурс, где можно понять, как происходит на современных PC (под windows) обработка нажатия клавиши на клавиатуре (подключена через usb или ps/2) и вплоть до вывода символа в соответствующее окно на мониторе? Особых тонкостей не надо, но хотя бы обозначить все этапы и участников такой обработки (устройство, контроллер, драйвер, шина, процессор, прерывания и т.п.).
Это не просто любопытство, мне надо освоить новый материал и быстро
Долгих вам дней и приятных ночей
Спасибо. Еще остались вопросы, например, как определяется драйвер для конкретного типа устройства, кто определяет, какому драйверу передать управление и т.п. детали
Я просмотрел книгу Таненбаума, весьма солидный труд, но там фокус сделан на несколько других вещах.
Пока не закрываю тему, может быть еще источники подскажете
Цитата lg54 @
Я просмотрел книгу Таненбаума

которую именно и какой версии издания? Кинга Современные операционные системы, издание 4, глава 5 и вперед к академическим знаниям
Долгих вам дней и приятных ночей
Я смотрел Архитектуру компьютера, 6-е издание. Всем спасибо! Пойду учиться
Сообщение отредактировано: lg54 -

Ну и бред там понаписан местами.
IRQ у всех типов хост контроллеров есть (UHCI, OHCI, EHCI, xHCI). Правда срабатывает он не от клавиатуры, а вообще при завершении цепочки транзакции по шине USB для любого устройства. Клавиатура следует спецификации HID и имеет как минимум одну Interrupt-In конечную точку. Interrupt-In КТ имеет низкий приоритет в иерархии USB-транзакции, такие транзакции выполняются как бы "в фоне". Хост отправляет запрос и сразу же получает от клавиатуры ответ - текущее состояние калвишь, ЕМНИП - это 8 байт, где каждый ненулевой байт означает скан код (отличный от PS/2) нажатой клавиши (одновременно может быть нажато несколько плавишь). Обработчик прерывания находится внутри драйвера хост-контроллера, он считывает состояния регистров и если транзакции выполнились успешно, то устанавливает соответствующие события, далее драйвер шины "просыпается" и определяет какому драйверу принадлежит пакет и передает ему управление. Механизм несколько сложнее, чем для PS/2, но таких фундаментальных отличий не имеет.

Добавлено
Цитата lg54 @
Еще остались вопросы, например, как определяется драйвер для конкретного типа устройства, кто определяет, какому драйверу передать управление и т.п. детали

Вопроса (проблемы) не понял. Каждому устройству на шине сопоставляется драйвер (у устройства есть уникальный ID изготовителя или код класса совместимости), далее работа с устройством это уже забота драйвера.

Добавлено
При запросе на прерывания IDT никак не меняется и не обновляется. Оттуда (а на самом деле вообще из кэша) просто по номеру вектора берется указатель на обработчик прерывания и все.

Добавлено
пруфлинки:
ftp://ftp.slackware.com/pub/netwinder/pub...ign%20guide.pdf
http://www.scaramanga.co.uk/stuff/qemu-usb/hcir1_0a.pdf
http://www.intel.com/content/dam/www/publi...ion-for-usb.pdf
https://www.intel.com/content/dam/www/publi...ce-usb-xhci.pdf
http://www.usb.org/developers/hidpage/HID1_11.pdf
https://software.intel.com/sites/default/fi...2abcd-3abcd.pdf (глава 6)
Сообщение отредактировано: shm -
Цитата TheMachine @
т.е. в общем случае вы правы конечно, а мне надо спать больше а пить меньше
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


[ Script Execution time: 0,0979 ]   [ 19 queries used ]   [ Generated: 24.05.17, 09:37 GMT ]