Board.KolibriOS.org

Official KolibriOS board
It is currently Tue May 21, 2019 2:07 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 17 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Sun Aug 25, 2013 8:32 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1148
Уже давно интересует тема программирования оборудования, написание дров и т.п. Но если раньше не было ни компа ни достаточного уровня в знаниях, то сейчас все порядком лучше :) Можно конечно начать с ковыряния дров KolibriOS, но так, мне кажеться далеко не уедишь. Так вот, с чего все это начать? С чтения материалов на какую тему? Оценнивая свои знания как неочень, я не собираюсь сразу бросаться в написания дров, а хочу для начала повысить свой общий теоретический уровень знаний.

_________________
я лишь учусь


Top
   
PostPosted: Sun Aug 25, 2013 8:45 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Fri Jun 30, 2006 9:01 am
Posts: 1247
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


Top
   
PostPosted: Sun Aug 25, 2013 9:34 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
Классику надеюсь читал?

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

Да и ещё я уже писал ответ на этот вопрос.


Top
   
PostPosted: Sun Aug 25, 2013 10:52 pm 
Offline

Joined: Mon Jun 17, 2013 3:17 pm
Posts: 17
В деле написания драйверов можно выделить две проблемных области:

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

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

То есть я хочу сказать, что ответ на вопрос "с чего начать ?" зависит от того, что из вышеприведенного ты уже знаешь.

_________________
UnКайF - это некоторое число такого же размера, как указатель. Что оно означает, знает только ядро. Драйвер может только передавать его ядру, когда хочет что-нибудь сделать. (c) CleverMouse


Top
   
PostPosted: Sun Aug 25, 2013 11:22 pm 
Offline

Joined: Mon Jun 17, 2013 3:17 pm
Posts: 17
Бегло поискал, вот, по 1 пункту: http://dfiles.ru/files/xfjk455jy .
Сам когда-то читал:
"Аппаратура персональных компьютеров и её программирование" Вегнер В.А., Крутяков А.Ю и др. -- М.: Радио и связь, 1995 -- 224с.
"Разработка устройств сопряжения для персонального компьютера типа IBM PC", Ю.В.Новиков, О.А.Калашников, С.Э.Гуляев, издательства ЭКОМ, 1997
Но это, конечно, уже безбожно устарело.

_________________
UnКайF - это некоторое число такого же размера, как указатель. Что оно означает, знает только ядро. Драйвер может только передавать его ядру, когда хочет что-нибудь сделать. (c) CleverMouse


Top
   
PostPosted: Mon Aug 26, 2013 12:11 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Юров, Пирогов, Зубков, Кулаков, Фигурнов, Авгуров, Гук

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
 Post subject:
PostPosted: Mon Aug 26, 2013 12:24 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1148
Как знал, что получу тут ответы по существу, а не кучу "умных" советов. Всем спасибо. Теперь понятно с чего начинать и в каком направлении двигаться.

_________________
я лишь учусь


Top
   
PostPosted: Mon Aug 26, 2013 9:36 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1148
Asper wrote:
Классику надеюсь читал?

А какое железо в первую очередь интересует?
Конечно читал, но надо теоретическую часть подтянуть. Пока интересуют тачпад и ACPI.

_________________
я лишь учусь


Top
   
PostPosted: Mon Aug 26, 2013 9:42 am 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
punk_joker wrote:
Пока интересуют тачпад и ACPI.
Touchpad должен уже работать - если он был PS/2, то уже давно. А если он USB - то после того, как CleverMouse написала поддержку USB. Поэтому лучше начать с баг-репорта, если что-то в нём не работает. А ACPI по сложности по сравнению с тачпадом, это как от земли до неба :-)


Top
   
PostPosted: Mon Aug 26, 2013 9:51 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1148
yogev_ezra, тачпад работает в режиме эмуляции, тобишь без поддержки мультитача к которому я прывык, да и вообще брагодаря мультитачу я привык работать на ноуте именно с тачпадов, к тому же это устройство для меня интересно. Насчет разности сложностей понятно, ну что сделаешь коли так интересы пали.

_________________
я лишь учусь


Top
   
PostPosted: Mon Aug 26, 2013 10:21 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
А, я так понимаю, USB-тачпад?


Top
   
PostPosted: Mon Aug 26, 2013 10:47 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1148
SoUrcerer wrote:
А, я так понимаю, USB-тачпад?

Скорее вего да. ElanTech.

_________________
я лишь учусь


Top
   
PostPosted: Mon Aug 26, 2013 11:00 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1148
SoUrcerer wrote:
А, я так понимаю, USB-тачпад?

ETPS/2 Elantech Touchpad - всетаки ps/2, к тому же вспомнил, что он у меня работал еще в сборках без usb.

_________________
я лишь учусь


Top
   
PostPosted: Mon Aug 26, 2013 11:31 am 
Offline

Joined: Mon Jun 17, 2013 3:17 pm
Posts: 17
Работа с USB сильно отличается от работы с железками подключенными к системе традиционно. Рекомендую Кулакова (кроме той части, где описано программирование хост-контроллера) и "USB in nutshell" (есть на русском) для начала. Сама спецификация USB - вещь довольно запутанная, но необходимая. Тачпад относится к HID устройствам, - читаем соответствующую часть спецификации. USBAPI от CleverMouse. Затем разбираем Колибривский драйвер HID, как пример. Полезно повозиться с USB-снифферами под виндой или линухом при изучении целевого устройства.
Spoiler: Show
Не могу точно сказать, относится ли мультитач к стандартным HID устройствам, - если нет, то нужно будет писать загружаемый драйвер, дабы не возникало проблем с совместимостью. А это наталкивается на некоторые вилы, имхо.

_________________
UnКайF - это некоторое число такого же размера, как указатель. Что оно означает, знает только ядро. Драйвер может только передавать его ядру, когда хочет что-нибудь сделать. (c) CleverMouse


Top
   
PostPosted: Mon Aug 26, 2013 1:08 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Вообще, PS/2 тачпады тоже встречаются, у них часто свой протокол. Для начала можно взглянуть на
http://www.win.tue.nl/~aeb/linux/kbd/scancodes-13.html
http://www.synaptics.com/decaf/utilities/ACF126.pdf


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 17 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited