На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное 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 -
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0294 ]   [ 15 queries used ]   [ Generated: 28.03.24, 14:07 GMT ]