Работа с железом

Everything you can't fit into other forums
  • There are some articles on the wiki at www.osdev.org that might be of interest.
    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
  • Классику надеюсь читал?

    Сам почти не читал, но вроде хорошая книга: Владимир Кулаков "Программирование на аппаратном уровне. Специальный справочник". Но там конечно не про всё железо.
    А какое железо в первую очередь интересует?

    Да и ещё я уже писал ответ на этот вопрос.
  • В деле написания драйверов можно выделить две проблемных области:

    1. Как отдельная железка функционирует (модель, машина состояний) и как она отдает свои ресурсы (как подключена) системе на аппаратном уровне (набор управляющих регистров и т.п.) . По этому пункту необходимы базовые знания об архитектуре эвм, плюс изучение даташитов на интересующее устройство. В основном, но не всегда, нужно еще изучать некоторые системные устройства, такие как таймеры, контроллер прерываний, DMA и т.п. если нужное устройство работает через них.

    2. Как драйверу предоставлять свои услуги операционной системе и приложениям. Эта область, естественно, зависит от архитектуры операционной системы и принятых в ней соглашений - т.н. "драйверная модель".

    То есть я хочу сказать, что ответ на вопрос "с чего начать ?" зависит от того, что из вышеприведенного ты уже знаешь.
    UnКайF - это некоторое число такого же размера, как указатель. Что оно означает, знает только ядро. Драйвер может только передавать его ядру, когда хочет что-нибудь сделать. (c) CleverMouse
  • Бегло поискал, вот, по 1 пункту: http://dfiles.ru/files/xfjk455jy .
    Сам когда-то читал:
    "Аппаратура персональных компьютеров и её программирование" Вегнер В.А., Крутяков А.Ю и др. -- М.: Радио и связь, 1995 -- 224с.
    "Разработка устройств сопряжения для персонального компьютера типа IBM PC", Ю.В.Новиков, О.А.Калашников, С.Э.Гуляев, издательства ЭКОМ, 1997
    Но это, конечно, уже безбожно устарело.
    UnКайF - это некоторое число такого же размера, как указатель. Что оно означает, знает только ядро. Драйвер может только передавать его ядру, когда хочет что-нибудь сделать. (c) CleverMouse
  • Юров, Пирогов, Зубков, Кулаков, Фигурнов, Авгуров, Гук
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Как знал, что получу тут ответы по существу, а не кучу "умных" советов. Всем спасибо. Теперь понятно с чего начинать и в каком направлении двигаться.
    to infinity and beyond
  • Asper wrote:Классику надеюсь читал?

    А какое железо в первую очередь интересует?
    Конечно читал, но надо теоретическую часть подтянуть. Пока интересуют тачпад и ACPI.
    to infinity and beyond
  • punk_joker wrote:Пока интересуют тачпад и ACPI.
    Touchpad должен уже работать - если он был PS/2, то уже давно. А если он USB - то после того, как CleverMouse написала поддержку USB. Поэтому лучше начать с баг-репорта, если что-то в нём не работает. А ACPI по сложности по сравнению с тачпадом, это как от земли до неба :-)
  • yogev_ezra, тачпад работает в режиме эмуляции, тобишь без поддержки мультитача к которому я прывык, да и вообще брагодаря мультитачу я привык работать на ноуте именно с тачпадов, к тому же это устройство для меня интересно. Насчет разности сложностей понятно, ну что сделаешь коли так интересы пали.
    to infinity and beyond
  • А, я так понимаю, USB-тачпад?
  • SoUrcerer wrote:А, я так понимаю, USB-тачпад?
    Скорее вего да. ElanTech.
    to infinity and beyond
  • SoUrcerer wrote:А, я так понимаю, USB-тачпад?
    ETPS/2 Elantech Touchpad - всетаки ps/2, к тому же вспомнил, что он у меня работал еще в сборках без usb.
    to infinity and beyond
  • Работа с USB сильно отличается от работы с железками подключенными к системе традиционно. Рекомендую Кулакова (кроме той части, где описано программирование хост-контроллера) и "USB in nutshell" (есть на русском) для начала. Сама спецификация USB - вещь довольно запутанная, но необходимая. Тачпад относится к HID устройствам, - читаем соответствующую часть спецификации. USBAPI от CleverMouse. Затем разбираем Колибривский драйвер HID, как пример. Полезно повозиться с USB-снифферами под виндой или линухом при изучении целевого устройства.
    Spoiler:Не могу точно сказать, относится ли мультитач к стандартным HID устройствам, - если нет, то нужно будет писать загружаемый драйвер, дабы не возникало проблем с совместимостью. А это наталкивается на некоторые вилы, имхо.
    UnКайF - это некоторое число такого же размера, как указатель. Что оно означает, знает только ядро. Драйвер может только передавать его ядру, когда хочет что-нибудь сделать. (c) CleverMouse
  • Вообще, PS/2 тачпады тоже встречаются, у них часто свой протокол. Для начала можно взглянуть на
    http://www.win.tue.nl/~aeb/linux/kbd/scancodes-13.html
    http://www.synaptics.com/decaf/utilities/ACF126.pdf
  • Who is online

    Users browsing this forum: No registered users and 0 guests