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

 
 
> свой драйвер АЦП, два пути
TigerSHARC
сообщение Jun 13 2013, 11:29
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Надобно написать драйвер(модуль ядра) АЦП.

Прочитав Linux Device Drevers вижу очевидный путь: пишу модуль ядра, который представляет собой standalone программу, принимающую данные от АЦП поп рерыванию от АЦП(сигнал когда данные готовы), и оформленную как собственно модуль/драйвер для Linux (благо доступ к регистрам есть из пространства ядра)

Но! Вижу что устройства "по-хорошему" регистрируются в sysfs, а вот этот путь не совсем понятен.

Вопрос: чем чреват первый путь и и как писать для второго(статейки может какие есть с примерами...)?

Сообщение отредактировал TigerSHARC - Jun 13 2013, 11:30
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tarbal
сообщение Aug 22 2013, 15:14
Сообщение #2


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

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



в /sys драйвер появится усилиями операционной системы. Никаких усилий прилагать к этому не надо.

Маленький ликбез.
Драйвер в ОС Линукс.

Драйверы в Линуксе построены на "дереве". Ветки называются шинами (bus). Причем поначалу они соответствовали физическим шинам, а потом осталось только название. Название зачастую вносит путаницу в понимание вопроса. Запомнить нужно одно шина в Линуксе это просто название и ничего больше.
список шин вы можете посмотреть в /sys/bus:
acpi i2c mdio_bus mmc pci pci_express platform pnp scsi sdio serio spi usb virtio

Шина определяет тип драйвера и соответствующие типу методы. например метод найти соответствие (match). Вообще-то все рассказы про драйверы надо начинать с того, что создаются две субстанции драйвер и устройство. Осутствие одной из них не даст нужного результата. В каждой из них есть поле идентификации. Так вот поле идентификации в драйвере и устройстве должны совпадать. Какя идентификация используется и как определить если поля совпадают зависит от шины в PCI или USB это vendor_id:product_id. Для шины platform это поле имени (name). К шине platform принадлежат все устройства, которые нельзя отнести к другим шинам. АЦП принадлежит к шине platform.

При создании устройства оно регистрируется в шине к которой и принадлежит. Драйвер может быть создан как модуль и при загрузке модуля он тоже регистрируется в шине.
Шина имеет два списка один для драйверов, другой для устройств. При загрузке модуля, регистрация его вызовет просмотр всего списка устройств в шине. match метод шины проверит идентификационного поле устройств и только в случае соответствия поля драйвера полю устройства драйвер будет подключен (вызовется метод probe). Все необходимые псевдофайлы появятся в sys.

Вместо вышеизложенного метода можно сделать модуль и работать через procfs, однако это неправильно.
Я сделал некоторые упрощения, чтобы не перегружать второстепенной информацией.
Если есть вопросы по теме -- постараюсь помочь найти ответ. К сожалению сам не все знаю. Только то с чем приходилось работать.


Вот лучшаее руководство из тех что я знаю по написанию модулей:
http://www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf

Сообщение отредактировал Tarbal - Aug 22 2013, 15:17
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TigerSHARC   свой драйвер АЦП   Jun 13 2013, 11:29
- - DASM   Ну вообще доступ к регистрам можно и из пользовате...   Jun 13 2013, 12:21
|- - TigerSHARC   Цитата(DASM @ Jun 13 2013, 16:21) Ну вооб...   Jun 13 2013, 13:39
- - DASM   Не, так делать не надо. Но можно.. Мне если лень д...   Jun 13 2013, 14:37
- - Hoodwin   С sysfs пробовал немного, все же это не совсем фай...   Jun 13 2013, 21:50
|- - Муравей   Цитата(Hoodwin @ Jun 14 2013, 01:50) Собс...   Jul 12 2013, 10:47
|- - DASM   Цитата(Муравей @ Jul 12 2013, 14:47) Тоже...   Aug 6 2013, 02:47
- - Idle   Цитата(TigerSHARC @ Jun 13 2013, 15:29) В...   Jun 18 2013, 03:57
- - Ya_Mike   Как-то пользовался драйвером АЦП для at91-adc, для...   Jun 28 2013, 13:13
|- - denyslb   Цитата(Ya_Mike @ Jun 28 2013, 16:13) Как-...   Jun 29 2013, 01:38
|- - Ya_Mike   Цитата(denyslb @ Jun 29 2013, 05:38) Мне ...   Jul 4 2013, 13:24
|- - sasamy   Цитата(Ya_Mike @ Jul 4 2013, 17:24) Можно...   Jul 4 2013, 14:52
|- - denyslb   Цитата(Ya_Mike @ Jul 4 2013, 16:24) Откры...   Jul 26 2013, 09:22
- - vshemm   В ядре (хоть и в staging) есть специальный фреймво...   Jul 5 2013, 11:44
|- - sasamy   Цитата(vshemm @ Jul 5 2013, 15:44) В ядре...   Jul 5 2013, 19:29
|- - Dubov   Цитата(Tarbal @ Aug 22 2013, 19:14) в /sy...   Aug 26 2013, 13:38
|- - Tarbal   Цитата(Dubov @ Aug 26 2013, 17:38) интере...   Aug 26 2013, 14:34
- - Dubov   Ну а кроме устарелости моей практики, что можно ск...   Aug 26 2013, 15:16
|- - Tarbal   Цитата(Dubov @ Aug 26 2013, 19:16) Ну а к...   Aug 27 2013, 01:25
- - Hoodwin   В новой модели драйверов тоже есть свои неудобства...   Aug 27 2013, 14:17
|- - Tarbal   Цитата(Hoodwin @ Aug 27 2013, 18:17) В но...   Aug 27 2013, 22:50
||- - Tarbal   Цитата(Tarbal @ Aug 28 2013, 02:50) Это н...   Aug 28 2013, 13:08
||- - A. Fig Lee   Цитата(Tarbal @ Aug 28 2013, 09:08) А как...   Aug 29 2013, 00:26
||- - Tarbal   Цитата(A. Fig Lee @ Aug 29 2013, 04:26) Н...   Aug 29 2013, 19:57
||- - A. Fig Lee   Цитата(Tarbal @ Aug 29 2013, 15:57) What ...   Aug 29 2013, 22:20
||- - Tarbal   Цитата(A. Fig Lee @ Aug 30 2013, 02:20) h...   Aug 30 2013, 11:21
||- - A. Fig Lee   Цитата(Tarbal @ Aug 30 2013, 07:21) Если ...   Aug 30 2013, 16:04
||- - Tarbal   Цитата(A. Fig Lee @ Aug 30 2013, 20:04) ...   Aug 30 2013, 22:08
||- - A. Fig Lee   Цитата(Tarbal @ Aug 30 2013, 18:08) Это н...   Aug 30 2013, 23:57
|- - A. Fig Lee   Цитата(Hoodwin @ Aug 27 2013, 10:17) В но...   Aug 28 2013, 02:28
- - psL   Драйвер АЦП, имхо, по простому - это символьное у...   Aug 30 2013, 15:33
|- - Tarbal   Цитата(psL @ Aug 30 2013, 19:33) Драйвер ...   Aug 30 2013, 16:21
|- - psL   Цитата(Tarbal @ Aug 30 2013, 20:21) V4L э...   Aug 30 2013, 20:09
|- - Tarbal   Цитата(psL @ Aug 31 2013, 00:09) по повод...   Aug 31 2013, 17:11
|- - sasamy   ЦитатаНо если вы настаиваете, то имея ПДП фифо не ...   Aug 31 2013, 17:37
||- - Tarbal   Цитата(sasamy @ Aug 31 2013, 21:37) Скоро...   Aug 31 2013, 17:57
||- - sasamy   Цитата(Tarbal @ Aug 31 2013, 21:57) Был в...   Aug 31 2013, 18:17
||- - Tarbal   Цитата(sasamy @ Aug 31 2013, 22:17) Приме...   Aug 31 2013, 19:51
||- - sasamy   Цитата(Tarbal @ Aug 31 2013, 23:51) я не ...   Sep 2 2013, 14:07
||- - Tarbal   Цитата(sasamy @ Aug 31 2013, 18:07) Кольц...   Sep 3 2013, 13:29
||- - sasamy   Цитата(Tarbal @ Sep 3 2013, 17:29) Я пола...   Sep 3 2013, 16:14
||- - Tarbal   ЦитатаУ процессора может и не быть ПДП к АЦП. Тогд...   Sep 3 2013, 16:24
||- - sasamy   Цитата(Tarbal @ Sep 3 2013, 20:24) самое ...   Sep 3 2013, 17:46
|- - psL   Цитата(Tarbal @ Aug 31 2013, 21:11) имея ...   Sep 2 2013, 16:48
- - Tarbal   Интересно стало: есть ли здесь кто-нибудь кто писа...   Sep 4 2013, 17:26
|- - sasamy   Цитата(Tarbal @ Sep 4 2013, 21:26) Интере...   Sep 5 2013, 06:58
- - vshemm   Есть, писали Comedi самый старый фреймворк, для ...   Sep 5 2013, 07:30
|- - sasamy   Цитата(vshemm @ Sep 5 2013, 11:30) Comedi...   Sep 5 2013, 11:11
- - Tarbal   Теперь такая проблема. У меня ЦПУ Freescale Cortex...   Sep 5 2013, 12:26
|- - vshemm   Цитата(Tarbal @ Sep 5 2013, 16:26) Теперь...   Sep 5 2013, 13:00
|- - Tarbal   Цитата(vshemm @ Sep 5 2013, 17:00) Так, к...   Sep 5 2013, 13:29
|- - vshemm   Цитата(Tarbal @ Sep 5 2013, 17:29) И чем ...   Sep 5 2013, 14:32
- - Tarbal   Моя проблема в том, что в ссылке, что вы дали под ...   Sep 5 2013, 15:01
|- - vshemm   Цитата(Tarbal @ Sep 5 2013, 19:01) Моя пр...   Sep 5 2013, 15:25
||- - Tarbal   TigerShark если у вас будут вопросы по реализации ...   Sep 5 2013, 19:08
|- - sasamy   Цитата(Tarbal @ Sep 5 2013, 19:01) Кстати...   Sep 6 2013, 07:49
- - Tarbal   Вопрос знатокам. В данный момент я делаю драйвер e...   Sep 6 2013, 11:04
- - vshemm   Цитата(Tarbal @ Sep 6 2013, 15:04) Вопрос...   Sep 7 2013, 17:27
- - Tarbal   Цитата(vshemm @ Sep 7 2013, 21:27) Выбор ...   Sep 8 2013, 21:11
- - sasamy   Цитата(Tarbal @ Sep 9 2013, 01:11) Kак сд...   Sep 9 2013, 05:44
- - Tarbal   Цитата(sasamy @ Sep 9 2013, 09:44) Ваш во...   Sep 9 2013, 11:50


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

 


RSS Текстовая версия Сейчас: 27th July 2025 - 04:09
Рейтинг@Mail.ru


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