|
свой драйвер АЦП, два пути |
|
|
|
 |
Ответов
|
Aug 28 2013, 13:08
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(Tarbal @ Aug 28 2013, 02:50)  Это не относится к новой или старой модели. Просто драйверы принадлежат шинам. Новое это как делать pipes в /dev. При помощи скрипта или система сама сделает посредством udev. У меня есть несколько книг по Линукс драйверам. Не скажу за все, но три, которые самые крутые (на мой взгляд) написаны как справочники. Из них трудно получить информацию о том, чего не знаешь. Я описал вам самый сокровенный механизм установки драйвера. Будете вы создавать pipe или нет неважно. Устройство создавать обязательно надо, иначе драйвер не встанет. Ну разве что если работать через procfs. Но зачем делать через одно место? Есть вспомогательный механизм доступа, но он не основной и использовать его вместо основного неправильно. Вот как то, что я описал описывается в довольно завуалированной форме в Библии драйверов Линукса: Add a Driver A PCI driver is added to the PCI core when it calls the pci_register_driverfunction. This function merely initializes the struct device_driver structure that is contained within the struct pci_driver structure,as previously mentioned in the section about adding a device. Then the PCI core calls the driver_register function in the driver core with a pointer to the struct device_driver structure contained in the struct pci_driver structure. The driver_register function initializes a few locks in the struct device_driver structure,and then calls the bus_add_driver function. This function does the following steps: • Looks up the bus that the driver is to be associated with. If this bus is not found, the function instantly returns. • The driver’s sysfs directory is created based on the name of the driver and the bus that it is associated with. • The bus’s internal lock is grabbed,and then all devices that have been registered with the bus are walked,and the match function is called for them,just like when a new device is added. If that match function succeeds,then the rest of the binding process occurs, as described in the previous section. (LINUX DEVICE DRIVERS THIRD EDITION Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman) Тот кто не знает о чем речь скажет, мне надо не PCI, а другой драйвер и читать это не будет, а это ключевой для всех драйверов механизм. Для нас главное понимать драйверы так как понимают их те, кто разработал систему -- иначе все встанет криво. Вот я недавно делал аудио драйвер для чипа CX20709-Z21. Вроде драйвер, но в понимании драйвера Линуксом, в нем три драйвера. на все кроме одного в теле "драйвера" созданы устройства, но разработчик системы должен создать еще одно устройство в файле где конкретный борд настраивается. Это вообще I2C driver. Так что надо прояснить то, что мы называем драйвером и как оно соотносится с тем как это понятие соответствует понятию, использованную в системе. Грустно, что индусы каждое слово хватают, а мы норовим каждый по своему сделать. Цитата(A. Fig Lee @ Aug 28 2013, 06:28)  А вот в V4L эта проблема решена А какие шины там используются? Мне кажется, что только platform. Ссылку на код можешь дать?
|
|
|
|
|
Aug 29 2013, 00:26
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(Tarbal @ Aug 28 2013, 09:08)  А какие шины там используются? Мне кажется, что только platform. Ссылку на код можешь дать? Ну я вот ковыряю em28xx драйвер, хочу добаить поддержку КWorld UB-435 ver 2. USB, I2C шины пользуются, все на каллбэках. Цеплящешь ем28 как транспорт только. Там USB транспорт EM2874B, она по I2C болтает с EEPROM, тюнером tda18271 и демюксом LGDT3305. Вот, оно все создается и поднимается: em28xx.ko, em28xx_dvb.ko, lgdt3305.ko, dvb_core.ko .. Создаются под /dev/dvb/ дивайсы и еще под видео по моему, лень в подвал ковырять к линуху, проверять. Вот он весь v4l в этой директории. http://lxr.free-electrons.com/source/drivers/media/ем28хх под usb
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Aug 29 2013, 19:57
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(A. Fig Lee @ Aug 29 2013, 04:26)  Ну я вот ковыряю em28xx драйвер, хочу добаить поддержку КWorld UB-435 ver 2. USB, I2C шины пользуются, все на каллбэках. Цеплящешь ем28 как транспорт только. Там USB транспорт EM2874B, она по I2C болтает с EEPROM, тюнером tda18271 и демюксом LGDT3305. Вот, оно все создается и поднимается: em28xx.ko, em28xx_dvb.ko, lgdt3305.ko, dvb_core.ko .. Создаются под /dev/dvb/ дивайсы и еще под видео по моему, лень в подвал ковырять к линуху, проверять. Вот он весь v4l в этой директории. http://lxr.free-electrons.com/source/drivers/media/ем28хх под usb What is КWorld UB-435 ver 2.?
|
|
|
|
|
Aug 30 2013, 16:04
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(Tarbal @ Aug 30 2013, 07:21)  Если хочешь обсудить проблемы, то может откроем новый топик? Да проблемы там больше не линуксовые. Послать правильные данные хочется. Както оно все не то, что виндоус посылает. Пример я просто привел как показатель использования разных шин
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Aug 30 2013, 22:08
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(A. Fig Lee @ Aug 30 2013, 20:04)  Да проблемы там больше не линуксовые. Послать правильные данные хочется. Както оно все не то, что виндоус посылает. Пример я просто привел как показатель использования разных шин Это не противоречит тому, что я сказал. Там несколько драйверов и несколько устройств создаётся. В разных шинах. Каждому драйверу создается хотя бы одно устройство. На I2C один драйвер, на USB другой, на Video третий и не удивлюсь если это не предел.
|
|
|
|
Сообщений в этой теме
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         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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|