реклама на сайте
подробности

 
 
> О драйверах для юникс на пальцах, На примере сетевого драйвера
Golikov A.
сообщение Oct 14 2014, 19:36
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Всем привет! Для того чтобы править миром не хватает малой части sm.gif
Может кто на пальцах, схематично объяснить как устроены драйверы под юниксом?

Вот допустим у меня есть какой-нибудь ARM, на нем операционная система юникс. У ARM есть USB, и у меня есть Ethernet <-> USB типа LAN9730.

Что надо сделать чтобы можно было создать ТСР сокет который сможет подружиться с миром вокруг через этот езернет?
Я так понимаю что где-то в юниксе должен крутиться ТСР стэк и мне надо как-то умудриться входные данные с этого LAN подать в него, а выходные в LAN. А также настроить этот LAN на работу.

Или допустим я хочу пошевелить ногами или послать данные через UART. Как это делается? Не обращаться же напрямую в регистры проца из юникса, да это и не возможно как я понимаю.

Нужна общая схема, самый самый далек взгляд на систему, максимально популярно.

Заранее спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Oct 15 2014, 13:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
Т.е. написав драйвер для UART-а вы все равно мало что будете понимать в драйверах для Ethernet-а.
Потому что это не драйверы, а целые стековые архитектуры с совершенно неповторимыми API между слоями стеков.

Понятно, спасибо за разъяснения, я глупо надеялся что есть какая-то логика... А как вы с этим живете? Не лезете на уровень драйверов или уже поднатарели и спокойно в этом ковыряетесь?

Цитата
Ок, я понял.
Если "это скорее самообразование", то сслылочки должны немного расширить познания.

Да я читаю, скорее всего это как раз то что мне нужно, правда думал что объемчик будет поменьшеsm.gif

Цитата
Правда про андроид там ни слова, но, ИМХО, андроид нужен только в девайсах с графикой и тачскрином.

андроид - это надстройка, ява машина над юниксом, хороша тем что под нее меньше людей боятся писать, так что иногда и без экрана он имеет смысл, но все же редко...



Цитата
Написание драйвера для LCD дисплея под embedded linux
Разработка драйвера ведомого SPI устройства для embedded Linux


ага спасибо, добавлю в список на прочтениеsm.gif...
книжками затарился на год вперед чувствую...
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 26 2014, 18:05
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(Golikov A. @ Oct 15 2014, 17:32) *
Понятно, спасибо за разъяснения, я глупо надеялся что есть какая-то логика... А как вы с этим живете? Не лезете на уровень драйверов или уже поднатарели и спокойно в этом ковыряетесь?


Я, имея солидный опыт в электронике и программировании микропроцессоров, "лез" на уровень драйверов Линукса несколько лет. Не скажу, что все время этим занимался, но изучал в свободное время. Там надо понимать что такое ядро. Уметь его компилировать, знать как его конфигурировать. Знать как устроена структура исходников ядра. Где расположены файлы платы и мого многое другое, что явно не относится к написанию драйвера. Если на пальцах, то ответ получится точный, но бессмысленный.
Драйвер в Линух (Юних) это код, который бежит в пространстве ядра и имеет интерфейс доступа файла. Написав соответствующим образом функции read/write, вы, читая этот файл или записывая в него будете обмениваться данными с вашим устройством.

Вот эти книжки (их можно скачать из сети) помогут вам разобраться в дополнительных знаниях вокруг драйверов Линукса.
http://www.amazon.ca/Embedded-Linux-Primer...d/dp/0131679848
http://www.kroah.com/lkn/

А на этом сайте можно найти много интересной информации.
http://free-electrons.com/

Цитата(SM @ Oct 17 2014, 19:18) *
Через I2C можно тоже работать из юзер моды. Через SPI, вроде, тоже. I2S (не ошиблись??) это уже прерогатива аудио-подсистемы.
Написать драйвер SPI или I2C-устройства - это элементарщина (см. для примера драйвера в input разных клавиатурных микрух.) Но, повторюсь, через эти интерфейсы можно работать и из юзер-моды через драйвера SPI или I2C мастеров.


Уточнение. В Линукс системе как правило уже есть драйвры SPI и I2C, которыми можно воспользоваться без написания специального драйвера, но также можно и написать драйвер для доступа к определенному устройству на указанных шинах. В документации ядра есть пример доступа к таким устройствам без написания драйвера:
https://www.kernel.org/doc/Documentation/i2c/dev-interface

Документация на I2C
https://www.kernel.org/doc/Documentation/i2c/
Документация на SPI
https://www.kernel.org/doc/Documentation/spi/

Документация на все ядро
https://www.kernel.org/doc/Documentation

Цитата(gerber @ Oct 17 2014, 21:38) *
Вот когда после загрузки вашего драйвера в систему что-то пойдёт не так - вот тогда и будет место подвигу.
А оно обязательно будет! rolleyes.gif

100%

Сообщение отредактировал Tarbal - Oct 26 2014, 18:07
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Golikov A.   О драйверах для юникс на пальцах   Oct 14 2014, 19:36
- - Lagman   http://dchekmarev.ru/blog/article/1252939707   Oct 15 2014, 09:37
|- - Dubov   Цитата(Lagman @ Oct 15 2014, 13:37) http:...   Oct 15 2014, 10:08
|- - AlexandrY   Цитата(Dubov @ Oct 15 2014, 13:08) Касате...   Oct 15 2014, 10:44
- - Golikov A.   что-то я не настолько просветлен... можно чуть бол...   Oct 15 2014, 10:00
- - Golikov A.   Незнание другого человека вызывает приступы сарказ...   Oct 15 2014, 11:29
|- - samike   Цитата(Golikov A. @ Oct 15 2014, 15:29) Т...   Oct 15 2014, 12:06
|- - AlexandrY   Цитата(Golikov A. @ Oct 15 2014, 14:29) Т...   Oct 15 2014, 12:59
- - Golikov A.   1 - да наверное. Я их путаю, наверное линукс 2 - с...   Oct 15 2014, 12:45
|- - samike   Ок, я понял. Если "это скорее самообразование...   Oct 15 2014, 12:57
|- - Harvester   Цитата(Golikov A. @ Oct 15 2014, 16:45) Ж...   Oct 15 2014, 13:30
- - krux   если совсем на пальцах, то USB kernel API с одной ...   Oct 15 2014, 17:23
- - Golikov A.   понятно дело что как работает железка - это извест...   Oct 15 2014, 19:23
- - krux   я к сожалению не знаю что за RNDIS - это по моему ...   Oct 15 2014, 19:57
- - Golikov A.   изначально да виндовое, но есть мнение что некотор...   Oct 16 2014, 05:01
|- - AlexandrY   Цитата(Golikov A. @ Oct 16 2014, 08:01) и...   Oct 16 2014, 07:20
|- - krux   Цитата(AlexandrY @ Oct 16 2014, 11:20) Ба...   Oct 16 2014, 09:44
- - Golikov A.   И что делать? Брать готовые сборки от производител...   Oct 16 2014, 09:31
|- - samike   Цитата(Golikov A. @ Oct 16 2014, 13:31) Г...   Oct 16 2014, 11:01
- - Golikov A.   а закрытую часть то откуда брать? На просторах инт...   Oct 16 2014, 12:39
|- - samike   Вы как-то беспокоитесь до появления предмета беспо...   Oct 16 2014, 12:49
- - Golikov A.   Я пытаюсь собрать полную картину. Это так называем...   Oct 16 2014, 13:16
- - SM   Полная картина тут заключается в том, что, в подав...   Oct 16 2014, 15:14
- - Golikov A.   ага спасибо, вот читаю, вникаю. Ближе к делу появя...   Oct 16 2014, 16:14
|- - SM   Цитата(Golikov A. @ Oct 16 2014, 20:14) Б...   Oct 16 2014, 17:23
- - Golikov A.   да я пока про ядро и архитектуру читаю применитель...   Oct 16 2014, 18:52
- - SM   Драйверы в линукс являются частью ядра, и имеют вс...   Oct 17 2014, 07:28
- - Golikov A.   то есть добавление драйвера - это всегда модификац...   Oct 17 2014, 09:00
- - SM   Не, я же писал - есть ДВА способа. Первый - собрат...   Oct 17 2014, 09:16
- - Golikov A.   у меня 2 варианта либо через usb в ethernet, и на...   Oct 17 2014, 10:45
|- - mdmitry   Цитата(Golikov A. @ Oct 17 2014, 14:45) у...   Oct 17 2014, 10:50
|- - SM   Цитата(Golikov A. @ Oct 17 2014, 14:45) л...   Oct 17 2014, 15:18
- - Golikov A.   спасибо   Oct 17 2014, 10:59
- - Golikov A.   I2S там какой-то аудио выход что ли... А SPI чуть ...   Oct 17 2014, 17:12
|- - gerber   Цитата(Golikov A. @ Oct 17 2014, 21:12) т...   Oct 17 2014, 17:38
|- - SM   Цитата(Golikov A. @ Oct 17 2014, 21:12) А...   Oct 17 2014, 18:53
- - Golikov A.   понятно, спасибо на добром слове   Oct 17 2014, 19:52


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th August 2025 - 22:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016