Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Отладочные платы » SK-MAT91SAM9XXXXX
Подключение usb устройств
KakTyzzz
Добавлено 17.05.2010 17:53
0
Сообщение: 1
KakTyzzz
5

Пункты: 86
Регистрация: 28.01.2010
Пол: Мужчина
Из: Орёл
Появилось желание подключить к плате различные usb девайсы.
Для начала интересно подцепить клавиатуру и мышку, естественно usb. Задача подключить устройство и написать программку, которая отслеживает сигналы с этих девайсов. Соответственно, если это клавиатура то сканкоды символов, если мышка - приращение координат.

Полагаю, для начала, решение проблемы заключается в поиске драйвера. При подсоединении мышки происходит общение с ней в результате чего камень понимает что подсоединена именно мышь. Но предполагаемого появления файла устройства в /dev я не наблюдал.
Появилась мысль, что этот драйвер необходимо искать и заливать самим. Но где его брать и какой необходим я пока не знаю.

И ещё проблема, как получить доступ к этому драйверу из самописной программы.

Если кто сталкиваелся с таким вопросом и знает решение, пожалуйста опишите каких результатов вы достигли и, самое главное, поэтапное выполнение ваших действий) Хотелось бы получить механизм, который будет практически универсальный для всех usb устройств, если такой существует))
Заранее спасибо!)

Учение - свет, а неучение - чуть свет и на работу
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 17.05.2010 18:16 Сообщение: 2
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Все usb драйвера в ядре - нужно их вкомпилить внутрь или модулями. Для того что бы они "появлялись в /dev" надо что бы был запущен какой нибудь hotplug агент. Ну хотя бы udev или mdev. Работа с usb от "большого Линукса" на ARM устройствах ничем не отличается - так что читайте доки по Линукс
Спуститься к концу Подняться к началу
Персональная информация
KakTyzzz
Добавлено 17.05.2010 18:48 Редактировалось 17.05.2010 18:55 Сообщение: 3
KakTyzzz
5

Пункты: 86
Регистрация: 28.01.2010
Пол: Мужчина
Из: Орёл
Так, вот с этого момента по подробнее.
Как узнать, какие драйвера уже вкомпилены в ядро?
Нельзя ли привести примерчик "вкомпиливания" драйвера в ядро, причём я так полагаю, для это дела можно взять драйвер от "большого линукса" для сего устройства или класса подобных устройств?
И, я так понял, необязательно, чтобы они появлялись в /dev, или всё таки необходимо для работы с ними?

Цитата
Работа с usb от "большого Линукса" на ARM устройствах ничем не отличается

Ну, например, когда пишется прога для обработки клавиатуры мы тупо используем функции getch или scanf, даже не задумываясь о наличии драйверов и всем, что с этим связано. Мне кажется, что здесь дело обстоит не так, или я ошибаюсь?

Учение - свет, а неучение - чуть свет и на работу
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 17.05.2010 20:17 Сообщение: 4
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Здесь дело обстоит точно также. Линукс он и в Африке Линукс.
Спуститься к концу Подняться к началу
Персональная информация
KakTyzzz
Добавлено 17.05.2010 20:32 Сообщение: 5
KakTyzzz
5

Пункты: 86
Регистрация: 28.01.2010
Пол: Мужчина
Из: Орёл
Цитата
Здесь дело обстоит точно также. Линукс он и в Африке Линукс.

Тоесть Вы хотите сказать, что если я сейчас подоткну usb клавиатуру, и буду в программе запрашивать ввод с клавиатуры, то будет работать??

Мне как то не очень верится))
Хотя бы потому, что драйвер, даже если он есть, захвачен бизибоксом, я так думаю

Хочу отметить, что я пока не гуру в общении с этой платой, и ядро только то, которое шло в комплекте.

Учение - свет, а неучение - чуть свет и на работу
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 17.05.2010 20:38 Сообщение: 6
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Я говорю о том (и пока только о том) - что у вас проблема не "с этой платой", а с Линукс вообще. Этот Линукс и "тот" - это один и тот же Линукс. А конкретно - про подключение usb _клавиатуры_ на этом форуме уже писалось.
Спуститься к концу Подняться к началу
Персональная информация
KakTyzzz
Добавлено 17.05.2010 20:57 Редактировалось 17.05.2010 21:38 Сообщение: 7
KakTyzzz
5

Пункты: 86
Регистрация: 28.01.2010
Пол: Мужчина
Из: Орёл
Честно говоря не находил про подключение клавиатуры, вернее находил, но ничего конкретного.

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

Я не до конца понимаю в каком направлении двигаться и собственно, что мне не хватает для реализации задуманного. Знаю, что точно не хватает знаний, возможно в направлении линукса.
Если между обычным линуксом и тем что у нас на плате нету разницы, почему тогда "там" заводиться а "тут" нет))

Учение - свет, а неучение - чуть свет и на работу
Спуститься к концу Подняться к началу
Персональная информация
Artemius
Добавлено 17.05.2010 21:36 Редактировалось 17.05.2010 21:37 Сообщение: 8
Artemius
0

Пункты: 3655
Регистрация: 02.12.2009
Цитата
Но опять же, цель этой темы не просто разобраться с подключением отдельно взятого девайса, а подобрать универсальный механизм для работы с любым устройством в своей самописной программе, поддерживающим usb интерфейс, опять же если это возможно.

Универсальный механизм - самому писать драйвер для usb устройства.
Драйвер usb клавиатуры уже давно есть в linux'е, причем написан так, чтобы пользовательская программа не отличила его от ps/2 или другого аппаратного интерфейса. Это просто клавиатура. Как работать с ней вам и нужно искать.

Цитата
Но где его брать и какой необходим я пока не знаю.

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

Цитата
Тоесть Вы хотите сказать, что если я сейчас подоткну usb клавиатуру, и буду в программе запрашивать ввод с клавиатуры, то будет работать??

Скорее всего вы будете получать ввод с ком-порта, через который работает консоль.

P.S. У меня usb-клавиатуры нет, рассуждаю теоретически...
Спуститься к концу Подняться к началу
Персональная информация
KakTyzzz
Добавлено 17.05.2010 21:49 Сообщение: 9
KakTyzzz
5

Пункты: 86
Регистрация: 28.01.2010
Пол: Мужчина
Из: Орёл
Цитата

Скорее всего вы будете получать ввод с ком-порта, через который работает консоль.

Именно это и будет проиходить. Тут и проверять не нужно!

Цитата
Универсальный механизм - самому писать драйвер для usb устройства.

Я полагаю это самый крайний случай)

Цитата
Драйвер usb клавиатуры уже давно есть в linux'е, причем написан так, чтобы пользовательская программа не отличила его от ps/2 или другого аппаратного интерфейса. Это просто клавиатура. Как работать с ней вам и нужно искать.

То есть выходит, что у нас всё есть?
Если да, то натыкаемся на вопрос, который я задавал ещё в начале темы, как организовать взаимодействие с драйвером?
Я никогда не программировал программы прямого взаимодействия с драйверами устройств.
По идее они должны быть отображены в память. Ну и как вариант использование mmap?

Учение - свет, а неучение - чуть свет и на работу
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 18.05.2010 00:17 Редактировалось 18.05.2010 00:22 Сообщение: 10
sasamy
4.71

Пункты: 83603
Регистрация: 14.08.2009
Для начала неплохо было бы почитать про linux. Вроде бы вопросы простые но скажи вам что нужно в конфиге ядра включить поддержку hid и прочего и новые вопросы будут как снежный ком обрастать - начиная от того как готовое ядро и свои бинарники залить и заканчивая тем есть понятие терминала и библиотеки ncurses, xlib и прочие чтобы не заниматься ерундой.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-MAT91SAM9XXXXX