LINUX.ORG.RU

LPT & freeBSD


0

0

да, я знаю что это форум для линукса, но всеж ;)
надо переслать в ltp порт данные.
набрал во фре man 4 ppi - почитал, и сделал такй код:

#include <unistd.h>
#include <fcntl.h>
#include <dev/ppbus/ppi.h>
#include <dev/ppbus/ppbconf.h>

int main (void) {
int fd;
u_int8_t val;

fd = open("/dev/io", O_RDWR);
if (!fd) {
perror("open");
}

val = 0xFF;
ioctl(fd, PPISDATA, &val); perror("1");
ioctl(fd, PPIGCTRL, &val); perror("2");
val |= STROBE;
ioctl(fd, PPISCTRL, &val); perror("3");
val &= ~STROBE;
ioctl(fd, PPISCTRL, &val); perror("4");

close(fd);
return 0;
}

код выдает следующее:

bash-2.05b# gcc 1.c -o 1; ./1
1: Operation not supported by device
2: Operation not supported by device
3: Operation not supported by device
4: Operation not supported by device

если строки про открытие fd убрать, то имеем:

bash-2.05b# gcc 1.c -o 1; ./1
1: Bad file descriptor
2: Bad file descriptor
3: Bad file descriptor
4: Bad file descriptor

вопрос в следующем: как мне всетаки организовать запись данных в этот порт ?
может кто писал, или ссылку на описание видел ?

да, сктати, если я заменяю /dev/io на /dev/lpt0 - долго думает вначале, а потом:
bash-2.05b# gcc 1.c -o 1; ./1
1: Bad file descriptor
2: Bad file descriptor
3: Bad file descriptor
4: Bad file descriptor

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

можно, но от этого ничего не меняется. вот в этом то и проблема.

ЗЫ: был скрипт на perl'е (http://www.linux.org.ru/jump-message.jsp?msgid=1317240), который делал эту задачу (писал в порт), причем тогда был линукс.
сейчас надо повторить этот скрипт, и вот думаю как это сделать.
пока не придумал...

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