LINUX.ORG.RU

Подскажите с LPT


0

0

Подскажите пожалуйста док или библиотеку для работы с параллельным портом (LPT) - чтение/запись в самопальную железку. Насколько я слышал, с записью какие-то проблемы на 2.6 ядрах.

Зараннее благодарю!

★★★★

ну а напрямуюю в порт писать? через in() и out()?

anonymous
()
Ответ на: комментарий от anonymous

> Почему напрямую нельзя в порт писать ?

Я не говорил "нельзя" - можно, конечно. Просто лучше так не делать. Во-первых, тогда программе нужны рутовые (или около того) права. Во-вторых, /dev/port уже давно deprecated. В-третьих, ты фактически предлагаешь писать свой драйвер устройства - зачем?. Драйвер LPT уже написан, отлажен, поддерживает много всяких режимов - бери и пользуйся.

Единственный случай, когда оправдано использование /dev/port - это когда у тебя какое-нибудь очень простое (ISA-)устройство, в котором ни DMA, ни прерываний, ни сложной настройки нет.

Если ты говоришь не о /dev/port, а о _реальных_ командах in/out, то все возражения остаются в силе ;)

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

Про parapin -- это хорошо. У меня девайс управляется пятью сигналами (0 либо 1). Надо выставлять на пинах нужную их комбинацию. Я почитал доку по parpin, а потом сделал управление через ioctlы для /dev/parport?. Там их всего ничего надо.

Первая прога была примерно такая. Выставляет комбинацию пинов на порте (пины 2-9): =============CODE================== #include<fcntl.h> #include<sys/ioctl.h> #include<unistd.h> #include<linux/ppdev.h>

char ttynam[] = "/dev/parport0"; int cfile; int tmp; unsigned char mask;

int main ( argc, argv ) int argc; char *argv[];

{ if ( ( cfile = open ( ttynam, O_RDWR) ) < 0 ) { printerr ( "cannot open port", ttynam, PERROR ); exit ( 1 ); }

tmp=0; ioctl(cfile, PPCLAIM,&tmp); tmp=0; ioctl(cfile,PPDATADIR,&tmp);

if (argc < 2) {mask = 0;} else {mask = (unsigned char) atoi(argv[1]);// SOD_2|SOD_R;

} ioctl(cfile,PPWDATA,&mask);

close(cfile); return 0; } ============CODE===========

Ростислав

anonymous
()
Ответ на: комментарий от anonymous

Поддерживаю. В свое время, когда понадобилось кое-что запрограммировать, использовал ioctl. При использовании модуля ppdev рутовые права не нужны.

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