Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Serguei Miridonov                    2:5020/400     07 Apr 2005  05:09:09
 To : Viktor
 Subject : Re: Прямой доступ к железу?
 -------------------------------------------------------------------------------- 
 
 
 Viktor wrote:
 
 > Прошу вас, по возможности, дать ссылки на какие-нибудь доки в сети и 
 > проверить полноту собранного мной из ваших ответов списка мануалов. 
 > Человек, думаю, разберется. Вот только с Linux'ом он только начал 
 > знакомиться.
 > 
 > Итак, man (2) на open, read, write, ioctl, ioperm, inb. Что еще?
 
 Если Вы про драйвер, то только man на вышеперечислинное поможет 
 мало. Это - некий стандартный API, через который практически идёт 
 обращение к функциям драйвера, т.е. из user space в ядро. Самое 
 необходимое - это open, close и ioctl. Эти трое должны иметь точки 
 входа в драйвере. Собственно, это - рабочая часть драйвера. Кроме 
 этих точек входа есть ещё процедуры инициализации и завершения. 
 Первая должна "пощупать" железо, распознать его, и попросить у ядра 
 память под рабочие структуры и пр. Второе - корректно завершить 
 работу, т.е. заявить об освобождении памяти и "погасить" железо, 
 если надо.
 
 Это - необходимый минимум. Далее можно усложнять и расширять - если 
 нужны прерывания - заявить об этом ядру, указав точку входа в 
 процедуру обработки и т.п.
 
 Всё это перечислено здесь в очень общем виде. Кроме этого, важно 
 понять, что пространство адресов в ядре и в задаче, откуда 
 драйверные функции вызываются - разные, поэтому напрямую 
 пользоваться указателями нельзя, данные туда-сюда нужно передавать 
 через ядерные функции copy_from_user и copy_to_user.
 
 В общем, надо много чего ещё знать, чтобы писать драйверы. Потому то 
 мне и кажется, что иногда, если задача простая, если надо только 
 что-то попробовать, то можно попытаться сделать это и прямо в user 
 space.
 
 Hо учиться писать драйверы надо. Самое продуктивное, как мне кажется 
 (по крайней мере я так учился), надо взять и поизучать исходники в 
 ядре. Как правило, в мире редко бывает что-то абсолютно новое. Так 
 что, если поискать, то скорее всего можно найти драйвер под нечто 
 похожее на железяку Вашего приятеля. Или в крайнем случае, и это - 
 наверняка, можно легко найти, как обращаться к PCI.
 
 --- ifmail v.2.15dev5.3
  * Origin: CICESE Research Center, Ensenada, Mexico (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Прямой доступ к железу?   Serguei Miridonov   06 Apr 2005 22:23:34 
 Re: Прямой доступ к железу?   Viktor   07 Apr 2005 00:16:39 
 Re: Прямой доступ к железу?   Serguei Miridonov   07 Apr 2005 05:09:09 
 Re: Прямой доступ к железу?   Viktor   07 Apr 2005 13:11:50 
 Re: Прямой доступ к железу?   RomanM   08 Apr 2005 10:37:52 
Архивное /ru.linux/13396077da3d6.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional