[Devel] Драйверы canbus4linux, can4linux и advcan. Was: [Задача 5496] Поддержка 512 PDO библиотекой UCan2

Pavel Vaynerman vpashka на gmail.com
Вт Фев 8 16:02:53 MSK 2011


> Нет, сначала ты всё верно понял. Я адаптировал UCan2 для нового
> драйвера advcan-2.10 в объекте SimpleCanDevicePCI_1680, вместо старого
> который не работал.
> 
> Стоит ли внести эти изменения в основную ветку UCan2? 
   Если работает. Можешь вносить.

> > canbus - хорошо тем, что (главное) обладает модульной архитектурой с
> > единым интерфейсом (для пользователя) и позволяет делать "модули" на
> > разные платы (как comedi).
> > И ещё обладает "полезностями" типа:
> > 1. Возможность создать вирутальное устройство
> >  Очень нужная вещь для наладки в отсутствии железа.
> > Хотя сейчас мы пока не использовали этого, но просто потому-что не
> > работали на UCan2..
> 
> Я не пробовал. У нас есть документация на этот счёт?
  У нас нет. Это же относится к canbus4linux. Это его документация..
(кажется она состояит из одного readme)


> > 2. Управление через /proc
> >  Тоже мы пока не используем всех преимуществ.. Хотя обмен можно написать,
> > чуть-ли не на баше..
> 
> Это архитектурное решение (/proc интерфейс) имеет преимущества (доступ
> к управление и состоянию из скриптов) и недостатки (отсутствие
> стандартного программного управления)
> 
> Если управление доступно через ioctl(), то достаточно создать суидную
> утилиту, которой можно назначить права, в отличие от
> proc-интерфейса...
  В canbus4linux ioctl тоже есть.. 


> Я заметил, что в can4linux подобная архитектура, что и в нашем
> canbus4linux. Забавно, что в Advantech решили сохранить внешний
> интерфейс can4linux (семантику read/write и номера ioctl), но сам
> драйвер переработали под свои драйвера.
> 
> Вместе модуля can появился модуль advcan. Вместе с нашим драйвером
> canbus, это получается три вида can-драйверов.
> 
> Мне кажется разумным, после правки canbus4linux для новых ядер,
> адаптировать его интерфейс под общий can4linux интерфейс.
  Я не держусь сильно за canbus4linux (тем более проект уже "не живой").
Поэтому если всё легко переносится на can4linux, то можно и "перехать на 
него". А можно собственно создать  ещё один тип в UCan2-интерфейсах.
Важно собственно сколько на это бдет убито времени..


> Существенные отличия, которые я заметил:
> - чтение и запись проводятся с помощью вызовов read и write, при этом
> указывается не число читаемых и записываемых байт, а число структур
   ну в can200 так сделано (у Элкус). Это хорошо тем, что можно вычитывать 
сразу много.. освобождая буфер ядра для новых сообщений..
Но это всё детали UCan2.. для пользователя это должно быть всё-равно..






Подробная информация о списке рассылки Devel