LINUX.ORG.RU

io порты, cl


0

0

надо работать с usb-портом. Я не имею в этом совершенно никаких знаний. Почитал howto на то как это реализуется на С или асме, с чтением/записью вроде понятно, не понял как выйти на определённый usb-порт, как они адресуются.

пишу на common lisp, хочу спросить касательно этого языка. какие средства стоит использовать? если /dev/port то как? пока нашёл такую инфу, но там походу завязано на CMUCL

всем заранее спасибо

По USB может подключаться 100500 типов устройств. Тебе что именно надо? По ссылке работа идёт с tty, это именно то, чего ты хочешь?

mv ★★★★★
()

>какие средства стоит использовать?

Имхо наиболее очевидное (но не самое гибкое) - ffi

yoghurt ★★★★★
()

Через usbfs, которая обычно смонтирована в /proc/bus/usb. Там есть наборы файлов, которые можно писать и читать для работы с устройствами. Конечно, если где-то есть cl-биндинги к libusb, нужно взять их, а не ковыряться самостоятельно.

ikm ★★
()
Ответ на: комментарий от mv

эмм надо будет узнать. у меня с основной системы по двуи проводкам(витой паре ли?) в формате dcc на промежуточное устройство, а с него по rj45 на преобразователь в usb.

Я не очень понимаю, какая разница какое устройство подключается? Чтобы заюзать готовый драйвер? Я хотел обрабатывать данные у себя в программе и отправлять/принимать просто как последовательность байт.

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от ikm

ffi

/proc/bus/usb

добавил в список изучения)

есть cl-биндинги к libusb

ну я в инете нашёл, что в 97 году кто-то брался их делать

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от ikm

/proc/bus/usb. Там есть наборы файлов, которые можно писать и читать для работы с устройствами.

никак не могу найти как это делается. К примеру у меня есть usb устройство в /dev/sda1, что и как мне с ним делать через /proc/bus/usb/

tty мне, видимо, не подходит, а cffi я хотел бы оставить как вариант, когда ничего больше не останется

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от pseudo-cat

Документация по usbfs лежит в исходниках ядра, Documentation/usb/proc_usb_info.txt. Помню, что в свое время для разъяснения неясных моментов мне приходилось залезать даже и в сами исходники ядра. Впрочем, это было много лет назад.

Самое простое, что приходит в голову - берешь исходники libusb и читаешь, как те или иные функции реализованы. Она вообще не очень сложная.

p.s. Примеры про /dev/sda некорректны. Это блочное устройство, уже полностью абстрагированное от того, usb оно или там scsi. usbfs дает возможность работать с usb-устройствами по их же протоколу, через usb. Если ты не в курсе архитектуры usb в целом (эндпоинты, их типы, и так далее), придется начать с того, чтобы разобраться в ней.

p.p.s. Других способов работать с usb пользовательскому софту в linux кроме как с помощью usbfs нет.

ikm ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.