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

 
 
> свой драйвер АЦП, два пути
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
сообщение Sep 5 2013, 15:01
Сообщение #2


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

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



Моя проблема в том, что в ссылке, что вы дали под линком:
How to use DMA and interrupts?

Вот такая страничка.

http://www.comedi.org/doc/drivercallbacks.html

Мне мало информации, чтобы понять как это работает, а о том как писать драйверы под кернел и куча книг и в интернете полно информации. Про ПДП в нарушение обещания данного в названии ссылки ни слова не нашел. Вы сами драйвер писали? Для нового устройства. Так чтобы там ДМА контроллер был специфический. Я подозреваю, что там начнется песня с пляской.

Вот сейчас мы работаем со стандартной Линукс библиотекой OPAL она нужна для организации видео телефонных звонков через интернет. Автор легко добавил необходимые нам свойства и оно легко заработало на х86 железе. А дальше начались сюрпризы с портингом на iMX53. И это заметьте все в пространстве пользователя происходит. Ни строчки из кернела не затронуто. Автор библиотеки уже два месяца бьётся над решением возникающих проблем.

Вы поймите, я не против использования фреймворка, мне интересно разобраться если оно мне надо.

Кстати ZIO должна быть серьёзной системой, но самое смешное, что там нужно знать ту информацию, которую я давал. Вот выдержка из manual:

3 The Bus Abstraction
The ZIO core module is called zio.ko and it creates a new bus item in Linux. A bus is a
software abstraction for kernel-related software modules; it splits the role of the device from the
role of the driver. In order to have a new peripheral working in your system you thus need both
items: the driver is in charge of any device that appears in the system, while the device is a data
structure that describes the parameters of the specific hardware instance. The two structures
are bound by calling a match function, which is at the core of the bus abstraction. If the device
and the driver match, the driver is asked to manage the new device instance.



Цитата(vshemm @ Sep 5 2013, 18:32) *
тупой драйвер будет лучше.


Метод бритвы Оккама призывает делать вещи проще.

Цитата(vshemm @ Sep 5 2013, 18:32) *
с которыми работать удобнее, чем с read/write абстрактого драйвера

зачем read/write драйверы содержат IOCTL функции для этой цели, Второй метод через procfs.

Сообщение отредактировал Tarbal - Sep 5 2013, 15:08
Go to the top of the page
 
+Quote Post
vshemm
сообщение Sep 5 2013, 15:25
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 15-08-07
Пользователь №: 29 803



Цитата(Tarbal @ Sep 5 2013, 19:01) *
Моя проблема в том, что в ссылке, что вы дали под линком:
How to use DMA and interrupts?

Вот такая страничка.

http://www.comedi.org/doc/drivercallbacks.html

Мне мало информации, чтобы понять как это работает, а о том как писать драйверы под кернел и куча книг и в интернете полно информации.


А вы в \comedi\drivers\skel.c заглядывали? Там половина текста - комментарии что и как и зачем и когда реализовывать. И это актуальная инфа. В отличие от "книг по..". Так или иначе разбираться с этим придется, и чтение кода просто необходимо. Это нормально для инженера, перестаньте слушать маркетинговую чушь sm.gif

Ок, опишу свои действия, если бы мне поставили подобную задачу (при условии, что я такого раньше не делал). Первое - это провести исследование на предмет решения подобных проблем. Т.е. сразу же появляются варианты - raw driver, comedi, IIO, ZIO... Это пара часов. Далее, я бы изучил за и против данных подходов с точки зрения реальной задачи (для чего этот драйвер пишется, сроки, бюджет, кому он нужен, требования, срок жизни, стоимость поддержки и т.п.). Это день, максимум, два. В результате у меня на руках была бы _аргументированная_ точка зрения, почему я выбрал то и то. Все, далее согласование (если нужно) и кодирование. Профит.

Конечно, это по-хорошему должны делать архитекты/техлиды или хотя бы сеньоры. А кодировать можно уже поручить и кодеру. А вы хотите, чтобы на форуме телепаты сказали как _вам_ лучше? Не бывает такого. А если и бывает, то либо лгут, либо ораторы идиоты, либо банальщина полная.

Так что вперед, изучайте доки и код, направление задано. Это единственный путь sm.gif

З.Ы. Доки пошаговые есть, код есть, мейллисты (списки рассылки есть) - это не недостаток информации, а избыток sm.gif

Сообщение отредактировал vshemm - Sep 5 2013, 15:26
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Sep 5 2013, 19:08
Сообщение #4


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

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



TigerShark если у вас будут вопросы по реализации стандартного Линукс драйвера я вам отвечу. Какой процессор и какой АЦП вы используете?

Сообщение отредактировал Tarbal - Sep 6 2013, 00:07
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
- - Tarbal   в /sys драйвер появится усилиями операционной сист...   Aug 22 2013, 15:14
|- - 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
|- - 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 Текстовая версия Сейчас: 29th July 2025 - 21:25
Рейтинг@Mail.ru


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